プログラム設計って何勉強したらええのん?
TIP
プログラム設計について何を勉強したらいいかわからないあなたへ、おすすめの書籍を紹介します。
WARNING
目次
背景
会社でAI系サービスのソースコードを管理していると、膨大な過去の遺産に生かされ、殺されかけます。無計画に追加され続けた結果、悪魔となったプログラム。相手取るためには、知識が必要です。
そこで設計についての勉強を始めたというわけです。「プログラム設計とはいっても何を勉強したらええんや?」と疑問を抱いているあなたへ、読んでおすすめできると感じた本を紹介します。
リーダブルコード
みんな大好きオライリーの決定版。プログラムには、必ず次に読む人がいます。
それが他人にしろ、未来の自分にしろ、わかりやすいに越したことはないわけです。
コード自体が読みやすく、理解しやすくなっていれば、管理もしやすくなる。
薄い!
メリットでもあり、デメリットでもあるんですが、この書籍はそこまで厚くなく、簡単に読み切ることができます。ページにして200ちょい。
読みやすいコードの基本事項が書かれている感じ。読み応えはないですが、プログラム初心者にはかなりおすすめの一冊です。
わかりやすい!
この書籍自体もわかりやすい構成になっていて、読みやすいコードを実例つきで学ぶことができます。実例はJavascriptですが、何か一つ言語をやっていれば、だいたいわかります。
また、皮肉っぽい挿絵もあって、ユーモアもあるので読み物としても面白いです。まず、読みやすいコードの特徴を頭に入れるにはもってこいの一冊です。
リンク
電子書籍・ソフトカバー版
良いコード/悪いコードで学ぶ設計入門
クソコード動画でお馴染みの著者が書いた設計の入門書です。実際には、私が最初に出会ったのはこの一冊でした。最後にリーダブルコードも紹介されていますが、正直こちらの本のほうが中身は濃いし、わかりやすいです。ただ分量はリーダブルコードより多め。
悪いコードの実例が多い
こういう設計だとこういう悪循環に陥る、といったような具体例がたくさん載っていて、納得させられます。反例を見て学ぶ、というわけですね。
わかりやすい!
伝えたい内容で章が分けられ、それに即した実例が載っているため、例は見たけど結局伝わらなかったということがありません。実例はJavaですが、文法がわからなくても説明したいことはわかります。
重要なことが伝わる
リーダブルコードより、標語のように心構えを理解することができます。「疎結合高凝集・明確な命名」です。なぜそれが大切なのか、これまでの炎上経験から理由付きで説明してくれるので、すんなりと頭に入ります。
疎結合とは、クラス同士のつながりが疎であることを示し、高凝集はひとつのクラスに関数がまとまっているということです。
また、変数を外から見えなくしてスコープをできるだけ小さくすること、コメントがなくてもロジックがわかるような命名を心がけることが重要なことも述べられています。
数学ガールで言われている通り、「例示は理解の資金石」というわけですね。こちらもリンクを貼っておきます。ぜひ読んでみてください。これは会社に一冊あってもいいですし、手元に置いておきたい書籍だと思います。
まあ、自分はどちらかというとAIエンジニアなので、ドメイン駆動とかまで深く勉強しようとは思いませんが・・・
次に進むためのおすすめ書籍も載っているので、リファクタリングを極めたい人は道標にもなるかと。
リンク
電子書籍版
ソフトカバー版
まとめ
プログラム設計の勉強におすすめな以下の二冊を紹介しました。
- リーダブルコード
- 初心者におすすめの一冊
- 良いコード/悪いコードで学ぶ設計入門
- 超絶わかりやすい実例多めの設計入門書
「一冊しかやる気しねぇ」という怠け者のあなたには後者を何回か読むことをおすすめします。
それでは、また今度。