FM牛鍵屋本舗

プログラマ(弱)の日々精進系ブログ

CODE COMPLETE 第2版 下巻

途中までしかまとめられてないけど

第25章 コードチューニング戦略

  1. パフォーマンス ≠ コードチューニング というか、コードの速度向上がパフォーマンス改善の一部分でしかない。 要件、設計レベルの見直しやハードウェアの改善、コンパイラやOSコールなど 改善できるところは多々あるはず。

  2. コードチューニングは基本的に経験則は役に立たない。 立つとすれば、徹底した測定のみ。 ハードウェアや実装言語、コンパイラなどに依存するので 完全な正解は存在しない。

  3. 速いコードを書くことより、たいていの場合正確なコードを書くことのほうが重要だ。 実装が完了してから最適化を行う。

第26章 コードチューニングテクニック

  1. ループのコストが高くなることが多い

    • ループ回数の改善を行うとか
  2. sentinel値 検索の最後に配置し、ループの終了を表す値

    • ループ内の分岐を減らせる
  3. (用途によっては)低級言語の導入

    • Javaもnativeとかある
  4. 基本的に、パフォーマンスの最適化は可読性・保守性はトレードオフになりがち。

【読書】プログラマが知るべき97のこと

全体的に、以下に重点が置かれているのかな、と思う。

「命をふきこむ魔法」「名前重要」の話は特に面白かった。

あまりコードを読んでこなかったので、 今後は新しい言語を学ぶのも含めて、 OSSを色々落として読んでみようと思う。

とりあえず、Javaのsrc.zipから…

01. 分別のある行動

技術的負債 は返す。返せるような仕組みにしておく。

08. ボーイスカウト・ルール

来たときよりも美しく。 コードに編集を加える場合は、チェックアウト時よりも綺麗にして ソースベースにプッシュする。

17. コードに書けないことのみをコメントにする

メソッド名、変数名。

18.
22.
36.
43.

学び方に関する指南。 複数の(パラダイムの)言語を学ぶとか、 勉強会に参加するとかそういう話。

23.

ドメイン特化言語。知らない言葉だった。

25. 見られて恥ずかしいデータは使わないこと

テストデータでふざけたのを投入していて、デモに使われると困る。

33.

OSSで好きなことをやろう。

38. 余分なコードは決して書かない
58.
87.

プログラマとテストエンジニアのあるべき関係について

64. プロのプログラマとは

責任感です。

74. 「イエス」から始める

(要求なども)否定から入るのではなく、 せめて「なぜその仕様変更を行いたいのか」を確認する。 決して無碍にしない。

…次は達人プログラマーを読みたいな。