js イベント html 分離 メリット

javascriptのイベントを以下の様に分離するメリット

$('#form').live('click',function(){
//hogehoge
});

メリットは、ない。思い込みだ。
例えば、君がこのコードを記述し、いくつかの外部jsを読み込んでいるhtmlを引き継いで行くとしよう。このイベントの拾い方に気付くのが面倒だという事に気付こう。
つまりメンテナンス性の欠如を引き起こしている。
デザイナーは、htmlができない場合、htmlはできるがjsがかけない場合などがあり、また作業の分離でjsはエンジニアが担当しやすい。この時デザイナーはイベントの発生に気付くために、タグやid名、class名を探しに外部jsを見なければならないのだろうか?ボタンやリンクにイベント処理が記載されていた方が、何倍管理が容易か誰にでもお分りいただけるであろう。
プログラムとhtmlが混在するシステムを導入してしまったケースでも、引数をイベントに渡す事が容易になる。強いてメリットを上げろと言われれば、jsを消去する際に、htmlをいじらなくて済むってことくらいだろう。今時そんなケースがあれば、html毎リニューアルするだろうが...

そして、これがjsの自由度と相まって、さらに迷走する。以下はどうだろう

$('form div.submit a').live('click',function(){
//hogehoge
});

aタグをクリックするとイベントが走るのだが、引き継いだ人は何をキーにjs内を検索するのか
メンテナンス性を考えないプログラマーは、「美しいコードはコメントがなくても読める」とか、
こういった、メリットデメリットも考えないナルシスト思考になっている。

美しいコードって、どんだけ人の作ったプログラム言語やDBに乗っかってほざいているのか、そんな
夢の様な言語やDBは存在しない。我々は発展途上の中に生きている。だからRDBにはORマッパーというIT土方な仕組みを組み込んでいる。理想のシステムならそんなもの導入する必要がない。そして、コメントのないプログラムは、寿命の短いプログラムであるとほぼ断定してよい。

話がズレたが、もし分離を考えるのであれば、「clickイベントは、この外部ファイルに記載する」「このコメントで検索すればjs側で記述を発見出来る」等のルールの設置が必要です。

メンテナンス性のないプログラムが溢れるから、コストが膨らむ。コストが膨らむからエンジニアの人件費が高い。そして、汚いコードを読むという意味不明なスキルを伸ばすという不運なエンジニアであふれ、人の文明は遅れを来す。

  • -

一つjsと分離するメリットがあった。
addEventListener vs onclick

addEventListenerは、重ねて色々な箇所に追加できる。つまり、ライブラリ作成の場合は、他のライブラリに干渉せずにコーディングできる。これは通常のコーディングとケースが異なるが、大規模になり、jsvascripter達の認識に差異がなければ力を発揮するだろう。まずそんな1ページ内で複数の人間が同一タグ目掛けて開発することはないだろうけど