7章アプリケーションの設計
Jason Strimpel
フロントエンド開発者としての経験が長い読者は、MV*ライブラリが大量に生まれた頃のことを覚えているのではないでしょうか。これらはWeb開発をよりよいものにして、同時に複雑なものにもしました。さらに長くこの業界にいる読者は、jQueryが登場する前の日々を思い出してみましょう。筆者にとっては、これらの記憶はフラストレーションに結びついています。大量の関数やクラスもどきが詰め込まれた、数千行ものJavaScriptのデバッグに苦しむ毎日でした。このような時代を知らないという読者も、理解しにくく不満がたまるコードを目にした経験ならあるはずです。
ほとんどの場合、不満の原因はコードに「フォーム」や「ストラクチャー」がないことです。よいアーキテクチャーにとって、これらは必須の要素です。James CoplienとGertrud Bjornvigは『Lean Architecture: For Agile Software Development』(Wiley)で、「フォームとは材質や作られ方にとらわれない、本質的な形状や配置を意味します。また、ストラクチャーはフォームを具現化したものです」と述べています。これから作成しようとしている例に当てはめるなら、フォームとはルーティングの定義を含むApplicationクラスです。そしてストラクチャーは、exportやimportを使ったECMAScript 6のモジュールです。
アーキテクチャーを構成する要素の中で、抽象化は乱用されがちです。必要な時にしか使わないというのが、抽象化を適切に使いこなす鍵になります。抽象化は細部を隠してしまうため、多用するとコードが読みにくくわかりにくいものになります。大量のラッパー関数に複雑な実装が詰め込まれ、時とともに不安定になってゆくでしょう。我々のアイソモーフィックJavaScriptアプリケーションを開発する際には、幅広く発生している少数の問題にのみ抽象化を適用します。具体的には、cookieの読み書きなどが該当します。度を越すのは禁物です。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access