良いコードを書く技術
良いコードを書く技術 ?読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)
- 作者: 縣俊貴
- 出版社/メーカー: 技術評論社
- 発売日: 2011/04/09
- メディア: 単行本(ソフトカバー)
- 購入: 46人 クリック: 2,459回
- この商品を含むブログ (66件) を見る
今日から読んでいます。
良いコードの定義
- 保守性が高い
- すばやく効率的に動作する
- 正確に動作する
- 無駄な部分がない
言語別の良書の例
Java
プログラミング言語Java (The Java Series)
- 作者: ケン・アーノルド,ジェームズゴスリン,デビッドホームズ,柴田芳樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2007/04
- メディア: 単行本
- 購入: 38人 クリック: 1,044回
- この商品を含むブログ (69件) を見る
JavaScript
- 作者: David Flanagan,村上列
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/08/14
- メディア: 大型本
- 購入: 52人 クリック: 1,011回
- この商品を含むブログ (270件) を見る
Perl
- 作者: ラリーウォール,ジョンオーワント,トムクリスチャンセン,Larry Wall,Jon Orwant,Tom Christiansen,近藤嘉雪
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2002/09
- メディア: 単行本
- 購入: 8人 クリック: 245回
- この商品を含むブログ (129件) を見る
- 作者: ラリーウォール,ジョンオーワント,トムクリスチャンセン,Larry Wall,Jon Orwant,Tom Christiansen,近藤嘉雪
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2002/09
- メディア: 単行本
- 購入: 4人 クリック: 94回
- この商品を含むブログ (61件) を見る
C
- 作者: B.W.カーニハン,D.M.リッチー,石田晴久
- 出版社/メーカー: 共立出版
- 発売日: 1989/06/15
- メディア: 単行本
- 購入: 28人 クリック: 721回
- この商品を含むブログ (206件) を見る
Ruby
- 作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/01/26
- メディア: 大型本
- 購入: 21人 クリック: 356回
- この商品を含むブログ (118件) を見る
PHPはどれかな・・・?ないのかな・・・
名前付け
大学の研究室の教授も「名前は重要」って言ってたな。その通りだな。
名前の省略の例
- 先頭の文字を残す。複数形の場合は最後のsは残すことが多い。
- ingの削除。
- これは初めて知った
- 単語の削除。
- 語頭以外の母音を削除する。
- image→img
- imgはこのパターンだったのか。へー。
- 強い音を残す。
- server→svr
- これも初めて
- 一般的な略語の利用
- database→db
言語別コーディング標準
Java
- オブジェクト倶楽部版 Javaコーディング規約 pdf
- Java 言語 コーディング規約 目次
- 1999年の時点でもうあったのか。そりゃそうか。
メソッド名について
- 動詞
- 動詞+目的語
となっていることが多い。
スコープ
- 変数は使用する直前で宣言する
- メソッドに抽出する
- イテレータの一時変数のスコープをループ内に閉じ込める
- 代入されない変数にはfinalをつける
JavaScript1.6にはブロックスコープがない
関数内で宣言されたローカル変数のスコープは、すべて関数の先頭で宣言されたものと同じ意味になる。
- 見かけ上のスコープ(でもこっちのほうがいい)
function calc() { var total = 0; for (var i = 1; i < 10; i++) { var n = i * i; total += n; } alert(total); }
- 本当のスコープ
function calc() { var total, i, n; total = 0; for (i = 1; i < 10; i++) { n = i * i; total += n; } alert(total); }
メソッド
引数
- 情報量は少ないほうがいい
- ただし引数の数が多くなりすぎる場合は、引数の型をオブジェクトにしたほうがいい(目安として5個以上)
言語別テスティングフレームワーク
こころがけ
- YAGNI - Wikipedia
- Don't repeat yourself - Wikipedia
- 単純に「コードの重複」が悪ではなく、意味をきちんと理解していない「処理の重複」が悪。
抽象化
- ペアで管理する変数がでてきたら、1つのオブジェクトにまとめられる。かも。
コードリーディング
- 静的
- 動的
- 動かしながら
参考文献(抜粋)
- 作者: WINGSプロジェクト佐藤匡剛,山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2006/11/29
- メディア: 大型本
- 購入: 17人 クリック: 227回
- この商品を含むブログ (57件) を見る
リファクタリング―プログラムの体質改善テクニック (Object Technology Series)
- 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/05
- メディア: 単行本
- 購入: 94人 クリック: 3,091回
- この商品を含むブログ (299件) を見る
Code Craft ~エクセレントなコードを書くための実践的技法~
- 作者: Pete Goodliffe,後藤正徳,鵜飼文敏,平林俊一,トップスタジオ,まつもとゆきひろ
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2007/11/29
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 216回
- この商品を含むブログ (79件) を見る
エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented Selection)
- 作者: マーチン・ファウラー,長瀬嘉秀,株式会社テクノロジックアート
- 出版社/メーカー: 翔泳社
- 発売日: 2005/04/21
- メディア: 単行本
- 購入: 10人 クリック: 635回
- この商品を含むブログ (138件) を見る