Yoichi's diary


2015-01-08

_ リーダブルコード 社内勉強会その5

今回の範囲:12章 コードに思いを込める、13章 短いコードを書く

  • 使われていないコードを消すべきかどうかで悩ましいことがある。
    • バージョン管理されているので必要になったら戻せる?
      • 過去に実装されたことに気づかなければ再実装しちゃう。
    • ミドルウェアで実装したが、アプリで使われていない機能
      • 他アプリとの組み合わせでの再利用可能性を維持するか
      • 未使用コードを消してメンテナンスコストを節約するか
  • 未使用コードを消す時にコンパイラに頼る
    • リンクエラーにならなければ安心して消せる。
    • ただし、動的に解決される部分(仮想関数、リフレクションなど)には注意が必要
  • APIの廃止を伴うコード削除では、ユーザ側で使わなくなっていることが前提になる。
    • Obsolete属性(.NET)、@Deprecated (Java) でまず予告してから猶予期間を経て削除
  • 将来の再利用を考慮して汎用的なユーティリティを作るか、要件を吟味して必要最小限のユーティリティとするか。
    • 汎用的なものがあるのに、気付かずに再発明してしまうことがある。
      • ほぼ同じ目的を持った、少しだけ違うライブラリがシステム内に複数存在してしまっているケース。
      • std::thread がもっと昔からあれば…
    • 社内ライブラリはググっても引っかからない。