開発覚書はてな版

個人的な開発関連の備忘録

【読書】良いコードを書く技術

概要

保守性の高いコードは何かを考える機会があった時に定期的に読み直す本です。 内容の抜粋や感想等を記載したいと思います。

良いコードを書く技術 ?読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)

良いコードを書く技術 ?読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)

本の目次

  1. 良いコードとは何か
  2. 良いコードを書くための5つの習慣
  3. 名前付け
  4. スコープ
  5. コードの分割
  6. コードの集約
  7. コードのパフォーマンス
  8. ユニットテスト
  9. 抽象化
  10. メタプログラミング
  11. フレームワークを作ろう

内容

良いコードは何か?をベースに構成されています。 プログラムの初心者・中級者・達人の視点からのコメントもあり、どのレベルの開発者でもわかりやすい内容になっています。

アルゴリズム視点での内容としては、以下の箇所で語られています。

  • 名前付け
  • スコープ
  • コードの分割
  • コードの集約

意味のある名前、処理は簡潔に、重複を避ける等の内容です。

また、ステップ数を減らす取り組みとしては以下の箇所で語られています。

メタデータを外部DSLから取得する例が記載されています。 また、アノテーションやリフレクションについての簡単な記載があります。

感想

プログラム初心者~中級者、開発標準を決める人は一度は読んでおいたほうが良い一冊だと思います。
特にスコープ・コードの分割・集約の箇所は意識するのとしないとでは保守性に差が出てきます。
保守でしんどい思いを現在している方々は、後世に保守性の低いコードを残すのではなく読みやすいコードを残しましょう。

個人的に開発時に気を付けていること

個人的には以下の内容に気を付けてコードを書いています。

  • コードを書く時間より、読まれる時間の方が圧倒的に長い
  • 1ヶ月後に自分が見直してもすぐわかるコードを書く
  • 名は体を表す

システムは基本的にはリリースされてからの方が期間は長く他人に読まれます。
他人に読まれることを意識したコードを書きましょう。
名前付けをしっかりしていれば、意図が他の人にも伝わりやすいのでパッケージ名・クラス名・メソッド名・変数名等はしっかりつけましょう。スペルミスや存在しないスペルは論外。

個人的にはトリッキーなコードを書くより、無駄に複雑なコードをシンプルに書き直すのが好きです。

その他関連本

保守性の高いコードを書くための本は他にもあります。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

レガシーコード改善ガイド

レガシーコード改善ガイド

  • 中級~上級者向けの内容です。
  • テストコードやモジュール間の依存度を中心にした内容です。