marunomaruno-memo

marunomaruno-memo

プログラミング作法

2010年01月18日 | Weblog
ふとしたことから、また、
「プログラミング作法」
Brian W.Kernighan・Rob Pike著/福崎俊博訳
2000年
http://www.ascii.co.jp/books/books/detail/4-7561-3649-4.shtml
を読む。

参考までに最後のルール集を記しておく。

スタイル
- グローバルにはわかりやすい名前を、ローカルには短い名前を
- 統一しよう
- 関数には能動的な名前を
- 名前は的確に
- 構造がわかるようにインデントをしよう
- 自然な形の式を使おう
- かっこを使ってあいまいさを解消しよう
- 複雑な式は分割しよう
- 明快に書こう
- 副作用に注意
- インデントとブレースのスタイルを統一しよう
- 慣用句によって一貫性を確保しよう
- 他分岐の判定には else-if を使おう
- 関数マクロはなるべく使うな
- マクロの本体と引数はかっこに入れよう
- マジックナンバーには名前をつけよう
- 数値はマクロでなく定数名として定義しよう
- 数値でなく文字定数を使おう
- オブジェクトサイズは言語に計算させよう
- 当たり前のことをいちいち書くな
- 関数とグローバルデータにコメントを
- 悪いコードにコメントをつけるな、書き直せ
- コードと矛盾させるな
- あくまでも明快に、混乱を招くな
- 実装の詳細を隠蔽しよう
- 直交性のある小さなプリミティブセットを選択しよう
- ユーザーに内緒で何かをするな
- 同じことはどこでも同じように実行しよう
- リソースの開放は割り当てと同じレイヤで
- エラーの検出は低いレベルで、その処理は高いレベルで
- 例外は例外的な状況にのみ使用しよう

デバッグ
- おなじみのパターンを見つけよう
- 最新の変更点は要チェック
- 同じ間違いを繰り返すな
- デバッグは今すぐに
- スタックトレースを取得しよう
- 打つ前に読め
- 自分のコードを他人に説明してみよう
- バグを再現できるようにしよう
- 分割統治しよう
- 誤動作を「数字占い」で検証しよう
- 出力表示によってバグ探索範囲を狭めよう
- 自己検証コードを記述しよう
- ログファイルを出力しよう
- 作図しよう
- ツールを使おう
- 記録をとろう

テスト
- 境界をテストしよう
- 事前と事後の状態をテストしよう
- アサーションを使おう
- プログラミングは防御的に
- エラーの戻り値をチェックしよう
- テストはインクリメンタルに
- テストは単純な部品から
- 期待される出力を把握しておこう
- 保存される性質を検証しよう
- 独立した実装同士を比較しよう
- テストの網羅範囲を測定しよう
- 回帰テストを自動化しよう
- 自給自足テストを作成しよう

性能
- 時間計測を自動化しよう
- プロファイラを利用しよう
- ホットスポットに神経を集中しよう
- 作図しよう
- より優れたアルゴリズムやデータ構造を利用しよう
- コンパイラの最適化を有効に
- コードをチューニングしよう
- 関係ない部分を最適化するな
- 共通する式をまとめよう
- 高価な処理を案化な処理に置き換えよう
- ループは展開するか除去しよう
- 頻繁に使われる値をキャッシュしよう
- 専用のアロケータを書こう
- 入力と出力をバッファリングしよう
- 特別なケースは別個に処理しよう
- 結果を事前に計算しておこう
- 近似値を使おう
- より低級な言語で書き直そう
- できる限り小さなデータ型を使って領域を節約しよう
- 簡単に再計算できるものを記憶するな

移植性
- 標準に固執しよう
- 王道のプログラミングをしよう
- 言語のトラブルスポットに気をつけよう
- 複数のコンパイラで試してみよう
- 標準ライブラリを使おう
- どこでも利用できる機能だけ使おう
- 条件コンパイルは避けよう
- システム依存のコードは別個のファイルに
- システム依存部分はインターフェースの裏に隠蔽しよう
- データ交換にはテキストを
- データ交換には固定のバイト順を使おう
- 仕様を変えるなら名前を変えよう
- 既存のプログラムやデータとの互換性を維持しよう
- ASCIIを前提にするな
- 英語を前提にするな


これも参考。
プログラミング作法 - Wikipedia
http://ja.wikipedia.org/wiki/プログラミング作法

最新の画像もっと見る

コメントを投稿