質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

1202閲覧

プログラム の論理的な組み方について。

Rin_

総合スコア12

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/05/23 11:02

フロントエンドエンジニア歴半年です。

javascriptの論理的なコードの組み方の身に付け方、おすすめの本などがありましたら、ご教授ください。

一つの処理を言葉にし、記述することは可能なのですが、それを応用が効くように利用できるようにする
となると途端に思考が停止してしまいます。
(こちらは非常に簡単なコードですが、ニュアンスを掴むためあえてわかりやすいコードで書いております。)

例:クリックするとアラートを出す

html

1<div class="item">クリックでアラートを出す</div>

javascript

1$('.item').on('click',function(){ 2 alert("一つ目"); 3});

この様な仕組みが似たようなフォーマットでいくつもある場合、
頭ではもっと効率よく書く方法があるとわかっていても、下記の様に書いてしまう

html

1<div class="item">クリックでアラートを出す</div> 2<div class="item_2">クリックでアラートを出す</div> 3<div class="item_3">クリックでアラートを出す</div>

javascript

1$('.item').on('click',function(){ 2 alert("一つ目"); 3}); 4 5$('.item_2').on('click',function(){ 6 alert("二つ目"); 7}); 8 9$('.item_3').on('click',function(){ 10 alert("三つ目"); 11});

webに落ちている単純な処理を書くことは可能なのですが、それを拡張したり、
もっと効率化したりする場合、紙に書き出すことができないのです。
有り体に言えば コピペから応用が効かないと言いますか・・・

非常に伝わりにくい質問で申し訳ないのですが、
ぜひプログラムを書くに当たっておすすめの本がある。
こんな勉強法がいいよ!など、簡単なアドバイスでも構いません
のでご教授ください。
(可能であればjavascript関連の書籍が望ましいです。)

駄文失礼しました。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

「頭ではもっと効率よく書く方法があるとわかっていても」
わかっているならば書くほうがいいです。それは考えることをやめています。

最初は「もっと効率よく書く」より「ただ羅列して書く」方が早いです。
しかしプログラマは「テキストを書く」のが仕事ではなく「書くテキストを考える」
のが仕事だと私は思っています。いずれ「もっと効率よく書く」時間の方が
「ただ羅列して書く」よりも短くなります。

「ただ羅列して書く」時間の何倍もの時間を使って「もっと効率よく書く」
方法を勉強して理解するのが姿勢として正しいのでは?「ただ羅列して書く」しか
しないので「ただ羅列して書く」ことしかできないのでは?

投稿2018/05/24 00:36

sousuke

総合スコア3828

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/05/24 00:38

> 「書くテキストを考える」のが仕事 いい言葉ですね。思わず「うんうんそうそう」と頷いてしまいました。
guest

0

記事とか色々置いておくので「これかな」と思ったものがあれば手に入れてみてください。

方言や約束事の違いはあれど、どのような言語においても通じるのが「考え方」です。
半年ですとまだまだそこまでたくさんのコードを書いてきたわけではないでしょうし、
まずはたくさんコードを書いてみて「こうすればいける?いやこうかな?もっといい書き方がありそうだ」という感じで試行錯誤を重ねていくと良いです。

正解があるわけではありませんので、まずは「きちんと仕様通り・要件通りに動くコード」を作れるように注力してください。
リファクタリングは後からでもできます(使う側にとってはコードがどうなっているかは関係ありません)

投稿2018/05/23 11:19

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

見た感じjQueryのようですが、新たに始めるのにjQueryはトレンドではないと思いますが
大丈夫なのでしょうか?

jQueryといえばやはり日本語リファレンスが基本だと思います。
機能を確認しつつサンプルを動かして覚えるとよいでしょう。

たとえば今回のケースですと

javascript

1$(function(){ 2 $('.item').on('click',function(){ 3 alert(($('.item').index(this)+1).toString()+"番目"); 4 }); 5});

HTML

1<div class="item">クリックでアラートを出す</div> 2<div class="item">クリックでアラートを出す</div> 3<div class="item">クリックでアラートを出す</div>

のように、なるべく共有して処理した方がよく、そのあたりはマークアップ言語としての
基本的なHTML自体の構造を理解する必要があると思います。

投稿2018/05/23 11:18

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問