Code Craft
Code Craft ~エクセレントなコードを書くための実践的技法~
- 作者: Pete Goodliffe,後藤正徳,鵜飼文敏,平林俊一,トップスタジオ,まつもとゆきひろ
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2007/11/29
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 216回
- この商品を含むブログ (83件) を見る
基本的なことが書いてあり、特に目新しいことはなかったように思いました。ただ、これらの基本を忘れないようにはしたいと思います。特に、「コメントには、「なぜ」このような処理になったかの理由を書く」ということが印象に残りました。
- 防衛的プログラミングで堅牢なコードを書く
- すべての警告をONにしてコンパイルする
- 1つのセクションのコーディングにかかったら、そのセクションを完了するまで(メインフロー+エラーチェック+エラー処理)先に進まない。
- 解析ツールを使用する
- lint
- FxCop
- Fortify
- 制約を書く
- 意味ある物事に意味ある名前をつける
- 関数には、外部の視点から見たその関数の動作を表す名前を付ける。実装に関する情報は名前に含めない
- ×:doxxxx, performxxx
- ○:countApples(), ...
- マクロはすべて大文字で、プロジェクト名などを付加して一意になるようにする
- 関数には、外部の視点から見たその関数の動作を表す名前を付ける。実装に関する情報は名前に含めない
- コードコメントの書き方
- エラーを処理する
- エラー処理の種類
- 戻り値で返す
- エラーステータス変数を使う
- 例外を投げる
- ハンドらをインストールしてシグナルで通知する
- 通知される可能性のあるエラーは1つたりとも無視しない
- エラー処理の種類
- プログラマの道具箱
- デバッガ
- プロファイラ
- コードバリデータ
- メモリの開放、範囲外の配列のアクセス等をチェック
- メトリックツール
- コメントに比率、コードの複雑度について統計値を出す
- 最適化
- 最適化よりもコードの可読性を優先する
- ソフトウェア設計
- 「単純」であることが最も大切
- 「書状が長くて済まぬが、短く書く時間がなかった」by Blaise Pascal
- 1つのエレガントな図に要約できること
- 移植性を考慮する必要があるときは#ifdef NEW_PLATFORMの嵐にならないようにする
- プラットフォームを表す抽象層をつくる方法をつくる等
- 「単純」であることが最も大切
- テスト
- コードを書きながら、できるだけ早期にテストをする
- テスト駆動型開発
- 攻撃的プログラミング★
- テストを確実に行って、問題が発生する部分を積極的に取り除く
- グランドデザイン
- プログラミングを創造的なプロセスととらえ、芸術性を自分の作品に織り込む
- 他のソフトウェアの設計をひたむきに学ぶ
- コードの構造を熟考してから開発に着手する
- 自分が扱うものはすべて満足すべき状態に保ちたいと思う
- まず絡み合ったコードを整理してリファクタリングする
- 良書を読む
- Prgmatic Programmer (Hunt Davis 99)/「達人プログラマ−システム開発の職人から名匠への道」
- Code Complete(McConnel 04)
- The Practice of Programming (Kernighan Pike 99)/「プログラミング作法」
- Design Patterns: Elements of Reusable Object-Oriented Software (Gamma 94)/「オブジェクト指向における再利用のためのデザインパターン」
- Refactoring: Improving the Design of Existing Code (Fowler 99)/「リファクタリング−プロ9グラムの体質改善テクニック」
-
- 中括弧スタイル
- K$Rスタイル
- 中括弧スタイル
foo()
{
int a = 0;
while (a != 10) {
a++;
}
}
-
-
- Allmanスタイル
-
foo()
{
int a = 0;
while (a != 10)
{ //<=ココ!
a++;
}
}