スポンサーリンク
概要
技術書を古本で買い漁るのが趣味なのですが、読まずに溜まり過ぎてきたのでなんとか消化していこうと思います。
今回紹介するのはオライリージャパンから発売されているメンテナブルJavascript。
発売は2013年と少し古いですが、参考になる点はあったので紹介していこうと思います。
スポンサーリンク
スポンサーリンク
書籍概要
どんな本?
JavaScriptのカリスマ的ハッカーが、「読みやすくメンテナンス性の高いJavaScriptコード」という観点から書いた一冊。JavaScriptを知り尽くした著者が自らの開発経験を通して身に付けた、チームで開発する上で、誰もが読め、そしてメンテナンスしやすいコードを書くための規約、プログラミングプラクティス、環境についてのTipsをまとめたものです。多くのJavaScriptプログラマ、特にチームで開発を行い、効率の良い開発方法を模索している開発者にとって貴重な内容です。
- Nicholas C. Zakas 著、豊福 剛 訳
- 2013年03月 発行
- 256ページ
- 定価2,860円
個人的な感想
ECMAScript5時代に書かれたものなので、現在のJSではかなり一般的になってきた文法や機能には言及がありません。
また、Node.jsに関しては考慮がなくブラウザ上で動くJSでの話が前提となっています。
なので若干の古臭さや、今はこういった注意はもういらないよね的なものは散見しますが、汎用的な考え方やルールなども多く記載されているので参考になります。(ただし、ES6以降の知識はある前提です。無いと今はこんな書き方はしないよねといった点に気が付かずに受け入れてしまう可能性があります。)
イメージ的にはリーダブルコードのJavascript版といったところでしょうか。比較すると、コード例が多くて簡潔にまとめられているのでわかりやすいです。
ツールやCD/CIなどの紹介が後半に続きますが、Javascriptの進化のスピードは凄まじいので紹介されていものは完全にレガシー化して使えるものではないです。
ページも少なくさらっと読めるので、JSのコードの部分で役立つところだけサクッと見るのが良いと思います。
スポンサーリンク
スポンサーリンク
各部概要
第1部 スタイルガイドライン
プログラミングにおけるコードのスタイルに関しての説明が書かれているセクションです。チームで開発する上での可読性の高いコードの書き方を中心に説明されています。
インデントや変数名、コメントなどのプログラミング言語に依存しない定番ネタは参考になりますね。
JS固有の部分としては、for of やClass、変数がvarしかなくて、letやconstがまだ無い時代なのでちょっとこんな書き方はしないよなといった点も散見します。
そう考えると、10年しない間に凄まじい勢いでJSが進化している事を実感できますね。
第2部 プログラミング実践
具体的なコードの実装方法に関する指針が書かれています。
- UI層の分離を行うために、どうやってHTMLとCSSとJavascriptを分離して書く方法
- イベント処理とロジックの分離
- Javascriptにおける例外の使用方法
などが書かれています。
今やAngular,React,VueなどのSPAフレームワークを使用する開発ではこういった層は自動で分離してくれるので、あまり参考にはなりません。
しかし、まだまだ従来のMVCでフロントエンドはjQueryでゴリゴリ実装しています的な場合にはここでここで説明されている内容は参考になりそうです。
他にはなんでもありの、Javascriptならではの型やエラーチェックの方法が書かれています。
Typescriptを使っていない場合には参考になりそうです。
第3部 自動化
Javascriptにおける CD/CIやミニファイなど方法が書かれています。
ツールにはAntを使っていたりなど、かなりレガシーでこのあたりは参考にはならないです。
フロントエンドも含めて、この辺りのエコシステムはNode.jsで作られた各種ツール群が今はや主流なので隔世の念を感じます。
考古学的な興味があれば読んでみるのも良いかもしれません。
スポンサーリンク
まとめ
オライリージャパンから発売されたメンテナブルJavascriptの紹介をしました。
7年くらい前の本になりますが、もはやレガシーといえる技術が多く、改めてここ数年のJavascript周りの進化の速さを感じる事ができます。
Javascriptとのスタイルやコードの書き方の部分に関しては一部参考になるかと思いますが、今や使わない機能などもあるため、ある程度最近のJavascriptのお作法を知った上で読む必要があります。
全体的にサクッと読めるので、軽い気持ちで読んでみると良いと思います。