予約してまで買ったものの、なかなか時間が取れず、読めていなかった『ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用』をようやく読み終わりました。
筆者である田中ひさてるさん自身で描かれた表紙の可愛らしさからは想像もできないハードな内容なので、一気に読もうとすると「分かった気」になるだけで全然理解していなかった、ということになりがちなので、3回くらいぐるぐる読むといいと思います(そうです、この本は本文もイラストも丸っと同じ人が書いているのです!!)。
目次
- 第1章 クリーンアーキテクチャ
- 第2章 パッケージ原則
- 第3章 オブジェクト指向
- 第4章 UML(統一モデリング言語)
- 第5章 オブジェクト指向原則 SOLID
- 第6章 テスト駆動開発
- 第7章 依存性注入
- 第8章 デザインパターン
- 第9章 アジャイル開発
目次の章立てを見ると、現代のソフトウェア開発で語られる概念がずらっと並んでいます。それぞれで1冊どころじゃない程の本が書かれてしまうテーマがずらっと並んでいますが、それらが分かりやすい語り口と共に解説されていきます。流し読みしていると、ほんと置いて行かれてしまうスピード感なので、一つ一つの記載について、自身の経験に照らし合わせて、過去のコードや、設計を思い出す、この本を読んだ上で今だったらどうするか考えてみる、という読み方をすると良いでしょう。
いや、もちろん途中で差し込まれる1コマのイラストだけ拾って読んでも全然いいんですけどね!!
この本の良いところは、それらの概念を盲信し、イタズラに完全な方法論だ!これで世界は完璧だ!と宗教じみたことを言うのではなく、「目の前の自分の課題を解決するために必用なところを取り入れて、上手く付き合っていくスタンス」も併せて紹介しているところに有って、そこが幅広いテーマを扱っているにもかかわらず、単なる知識の羅列になっていない、本書の凄いところです。例えば、UMLもばっさりとクラス図、インスタンス図、シーケンス図しか出てこないあたり、「そうだよねー感」が有ります。
「アーキテクチャは動作には貢献しない」「4つの層にそうした名前を付けることをクリーンアーキテクチャと呼ぶと思わないように気をつけてください」「オブジェクト指向を定義することはできない」「データベースがSQLの言語仕様どおり動くかの検証は、データベースベンダがもう終わらせていますよね」......一番好きな言葉が並んでいるのは「第9章 アジャイル開発」ですが、そこはあまりに名言のオンパレードなので、実際に手に取って読んでみてください。
特に、「第3章 オブジェクト指向」は、最近の「オブジェクト指向は何か?」という話題を理解する上での一助になる記載がたくさん載っています。個人的にはこの本に出てくる「犬猫プログラム」は好きじゃない(自分が過去に混乱したから)のですが、それについても一つの考え方、見方が書かれていて、「なるほどなーそういう見方も有るかー」と感心しました。
あとタイトルに"PHP"とは出てきますが、それほどコード量は多くなく、あくまでさまざまなプラクティスを理解するための補助的な役割として出てくるので、PHPに不慣れな人でも大丈夫です(自分もPHPは全然読めないです)。
というわけで、まさにコンパクトな紙面(目次含めても311ページ)に現代のソフトウェア開発における概念が一通り、しかもその考え方に対する付き合い方、スタンスまで学べる上に、めもりーちゃん達のイラストまで堪能できるのはお得感満載ですね。
と言うわけで、この年末年始は”ちょうぜつ”にソフトウェア開発を学んで、知の高速道路の先へすっ飛んでいきましょう。
『ちょうぜつソフトウェア設計入門』、各方面への配慮が行き届いていることが分かる画像 pic.twitter.com/KL8T5Trpu3
— magnoliak🍧 (@magnolia_k_) 2022年12月11日
【追記】
なんかいい表現を見つけた。
一般的な入門書が、教室で講義を聞いている感じだとすると、この本は隣の席で一緒にペアプロしている感じ https://t.co/wSqz6hbLWJ
— magnoliak🍧 (@magnolia_k_) 2022年12月24日