yo-log

@yo-iidaのlog

jsによるイベント駆動設計

jQueryとかZeptoとかで複雑な制御を書くと結構しんどくなる

フォームがたくさんあって、それぞれ入力文字数も異なり、入力可能な文字の種類も異なり、かつエラーの表示がそれぞれのフォームの状態によって変わります、みたいな要件を想像してほしい。

馬鹿正直に組むとそれぞれのフォームにchangeとかkeyupとかのイベントの発火を検知するようにして、その時にチェックする関数が動く、また、そこで同時にエラーの制御も行ってしまう、的なかんじだろう。

 

これがjQueryやZepto系の大きな欠点で、構造化のための仕組みを用意していないのでいくらでも「ぼくのかんがえたさいきょうに長いプログラム」が書かれてしまう。

短くするといってもプラグインとかの話でそれはいろいろなところにあてはまるモデルやコントローラ的な扱いやすい仕組みを提供してくれるわけじゃない。

プラグイン化するということはfunctionで手続き的に分離するのとそこまで変わらない。

 

そういうときにうまくイベントを使って、イベントに紐づく処理を隠蔽化すると。

イベント駆動とでも呼ぶのか知らないけど、データの保持はdata属性に、大きな拡張機能プラグインに、そして、細かい機能はすべて繰り返しを排除するとともに、必要に応じて独自イベントを設定していく。

独自イベントを付与することによって、triggerによって任意にそのイベントを発火させることができる。