こんにちは!! 虎の穴ラボ とらコインチームでエンジニアとして働いてるgodanです。今回は会社の制度を利用して購入して読んでいた「Good Code, Bad Code」が読み終わったのでご紹介したいと思います。
書籍情報
項目 | |
---|---|
タイトル | Good Code, Bad Code |
副題 | 持続可能な開発のためのソフトウェアエンジニア的思考 |
著者 | Tom Long |
訳者 | 秋勇紀, 高田新山 |
監修 | 山本大祐 |
出版日 | 2023-1-28 |
版元 | 秀和システム |
ISBN | 978-4798068169 |
「Good Code, Bad Code」について
本書はGoogleでテックリードを努めたTom Long氏が培ったノウハウをまとめ上げた書籍になっています。
3部構成で1部は「理論編」2部が「実践編」、3部は「ユニットテスト編」と進んでいきます。 理論編では例を用いながら 「Good Code」とは何なのかを掘り下げていきます。その中で「コーディング4つのゴール」「品質6つの柱」という「Good Code」書くための論理を示しいきます。
その後の実践編は「品質6つの柱」のうち5つについてGood CodeとBad Codeをコードを交えて紹介していきます。最後のユニットテスト編ではコードの品質を担保するユニットテストについて掘り下げていきます。
この部では「ユニットテストの原則(10章)」「ユニットテストの実践(11章)」と2つの章で構成されており、この部の中で論理編と実践編が用意されています。
感想
全体的に章立てが細かくされており、自分のペースで考えを深めれるようになっています。 第一部の序盤では図やイラストを使い「Bad Code」が引き起こす現象を現実で起こる問題に置き換えて説明してくれたりします。例えば誤用しないコードを書く重要性を電源ケーブルとHDMIにたとえて説明してくれます。章が進むと擬似コードを用いていくつかの観点でGood Codeに付いて掘り下げていきます。 個人的にはエラーに対するGood Codeは経験が薄い部分でもあったので参考になりました。 この書籍では全体を通して「良いコードとはいったいどんなものなのか?」を読者に問いかけつつ著者が提唱している「品質6つの柱」を様々な視点で説明していきます。
本書で紹介している「品質6つの柱」は次のものです。
- コードを読みやすくする
- 想定外の自体をなくす
- 誤用しにくいコードを書く
- コードをモジュール化する
- コードを再利用、汎用化しやすくする
- テストしやすいコードを書き、適切にテストする
先述した「エラーに対しての考え方」以外にも「複数人で開発する問に他の人はどうやってあなたのコードを理解するのか?」といった観点は他の書籍ではあまり見られない観点だったように感じて楽しく読めました。
後半の実践編では前半で示した論理を用いつつコードを交えて紹介しています。その紹介もBad Codeを例示して、「どこが問題点なのか?」「どうすれば良くなるのか?」を示していく構成でわかりやすかったように思います。
本書をおすすめしたい人
章立てが細かいこともあり個人的には輪読会、特に会社での輪読会に向いているように感じました。というのも本でわかりやすく紹介しているものの、実際にそういった場面に遭遇しないと想像しづらい、自分ごとにできない部分も多いと思っています。会社のプロダクトコードを肴に本書で紹介されている理論をどう当てはめれそうか、実際にBad Codeは存在しているのかをチームメンバーや会社のメンバーで議論するのが楽しい本ではないかと思います。
本書の「はじめに」で著者は通読をおすすめしていますが、ボリュームもある本書では一人で読み切るのはかなりハードルが高いと感じています。そういった意味でも輪読会に向いてると感じました。 また、困ったときの逆引き的に使ってもいいのではないかと思います。それでも第一部の論理編は通読をおすすめしたいですが。
最後に
今年もあっという間に年末の足音が聞こえてきました。これから年末年始のお休みに入る方も多いと思います。 寝正月を迎えながら本書をつまんでみるのはいかがでしょうか?
Fantia開発採用情報
虎の穴ラボでは現在、一緒にFantiaを開発していく仲間を積極募集中です!
多くのユーザーに使っていただけるtoCサービスの開発をやってみたい方は、ぜひ弊社の採用情報をご覧ください。