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

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

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

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

Q&A

解決済

1回答

867閲覧

イベントリスナの複数登録におけるメリデメ

mukkun

総合スコア882

JavaScript

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

0グッド

0クリップ

投稿2017/04/02 02:01

JavaScriptそんなに詳しくないのですが、何気なく使っていたものでふと気になりましたので質問致します。

自分の中では、addEventListenerを使用するメリットとして複数イベントが登録できると同時にデメリットでもあると考えています。※onclickを使えとか言っているわけではないです。

メリットとしては

  • ライブラリ等外部モジュールを使用する場合にリスナーをオーバーライドしない
  • 複数登録可能

デメリットとしては

  • 独自スクリプト内で複数記述されることにより、発火場所の特定が面倒くさい(可読性が悪い = バグの要因になる)
  • 複数登録可能

チーム開発されている現場ではどう対処しているのでしょうか。

内容薄っぺらいですが、よろしくお願いします

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

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

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

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

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

guest

回答1

0

ベストアンサー

それは独自スクリプトの品質が悪いことのデメリットですね。

投稿2017/04/02 02:31

Zuishin

総合スコア28656

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

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

mukkun

2017/04/02 02:42

回答ありがとうございます。 勿論そうなんですが、チーム開発ではバグ有りきで考えるのが基本だと思っています。 対処方法としてどういった運用を行い、事前に防いでいるか等が知りたく質問させて頂きました。
Zuishin

2017/04/02 02:45

モジュール化しましょう。
mukkun

2017/04/02 02:49

では、1つのイベントリスナの中でモジュール化した関数を呼ぶとかではなく、 イベントを複数登録する事を前提に、機能ごとでモジュールを作成するというやり方なんですかね。
Zuishin

2017/04/02 09:56

場合によります。可能な限りモジュールの中でイベントリスナを登録するのは避けるべきですが、そうしなければならない場合もあります。その時、イベントが一つしか登録できなければ、困ることになります。 昔はイベントを一つしか登録できませんでした。それができるようになったのは需要があるからです。ですから、使い方次第です。 わけわからんソースを書くからわけわからなくなるだけで、イベントが複数登録できることとは何の関係もありません。
mukkun

2017/04/02 10:20

> 昔はイベントを一つしか登録できませんでした。それができるようになったのは需要があるからです。ですから、使い方次第です。 勿論、需要があると思っています。 例えば質問文にも記載している通り、外部ライブラリとの共存に当たりますね。 > わけわからんソースを書くからわけわからなくなるだけで おぉ。極論ですね。。 その場合、近年流行っている型とかの概念も当てはまると思っていて、 例えば開発者がつける変数名で型が分かるようになっていれば型なんか要らないのでは論争が勃発したり するのではないでしょうか。※これもまたメリデメがあるんですけど。 ですが、自分の考え方として間違ってなさそうでした。 ありがとうございます。
Zuishin

2017/04/02 10:23

極論でもなんでもありません。普通の意見です。 イベントリスナを複数登録できることがソースを読みにくくする原因にはなりません。プログラマが使いこなせてないだけです。 JavaScript に限らず、イベントの仕組みを持った言語では複数登録できるのが普通です。読みにくくなるならできなくなる流れになるはずですが、実際はその逆です。
Zuishin

2017/04/02 10:32 編集

変数名と型の件に関しても逆です。 今は「型さえわかれば名前はいらない(匿名型)」という時代です。 いや、変数名と型名を同列に扱うのは例として不適切でした。ただ、今のソースで型名を変数につけるのは決して多数派ではありません。
mukkun

2017/04/02 10:35

> イベントリスナを複数登録できることがソースを読みにくくする原因にはなりません。プログラマが使いこなせてないだけです。 そういうものなんですかね。 ファイルのあちこちにイベントリスナが分散しているよりまとまっている方が可読性が高いと思っています。これも人によるのでしょうね。※そこにかけるコストとかは別として JavaScriptは大規模ソースを呼んだことがないのでGitHub等でOSSを見てみます。 > 型さえわかれば変数名はいらない そういう風に書いたんですが、文章力が足りなかったですかね。 わけわからんソースっていう部分で型も同様に考えられますよ。という意味で記載しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問