CodeComplete(上)読み終わった

CodeComplete(上)を読み終わった.
全体としてはかなりヒドイ内容だった. あんまり悪口は書きたくないので,知ってためになった内容からメモ.

12章(基本的なデータ型) Adaの範囲制限付き整数

type Age is range 0..99

こんな感じに書けて,勝手にアサート付けてくれるみたい.
これは便利そう. C++にも欲しい. 作ってみようかな….

15章(条件文の使用)

  • if節内に正常系のコードを書く.
  • 代表的な実行パスをコード上で近傍に配置する
if( hoge ){
	foo();				// 正常系
	if( hoge2 ){
		bar();			// 正常系
		if( cond ){
			bar.foo();	// 正常系
		}else{
			ore.owata();	// 異常系
		}
	}else{
		sibou();		// 異常系
	}
}else{
	exception.ktkr();		// 異常系
}

確かに読みやすい. 考えたこと無かったので新鮮.

その他

  • あらゆる'プログラム言語の機能'は現実世界の複雑さに対抗するための物である

感想

この本はプログラマのための本じゃなくて, プログラムを書かせる人のための本だと思う.
「<ほげほげ>させたら<ほげほげパーセント>バグが少なくなった.」
という言い回しが非常に多い. そもそもコードを書いた人の力量は考慮に入ってない.
工学としては正しいんだけど, この本のタイトルからしプログラマの質を上げることが目標じゃないのかと小一時間(ry
「ポインタが分からないなら使わ(せ)なきゃいいじゃない」みたいな態度.


あとAdaは凄い. エイダかわいいよエイダ.

わるくち

  • 作者はC,C++,Java,BASICと少しのAdaしか世の中にないと思っている
  • 副作用とは,知らないうちにグローバル変数が書き換えられることを云うらしい.
  • 言語が違っても似たような書き方をしろと再三繰り返すが,違う言語同士で見た目を似せてどうしろというのか意味が分からない.