ソフトウェアに関わる人間は全員読むべき本

id:uehaj さんが読んでいたので、ちょっと気になって読んでみました。

プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)

プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)

すげぇ!目から鱗落ちまくりです。
Groovyを活用して生産性を上げる具体例もありますので、Javaな人やGroovyな人は買って損はありません。
特に共感したのは、「8.4 オブジェクトの犯罪行為」のとこ。

犯罪に手を染めるような反社会的な人が近所に引っ越してきたらどのようなことが起きるでしょうか。
java.util.Calendarは、Javaの世界において、他の「市民」に色々と「敵対的な行動」をとるので、そういう困った隣人と言えます。

そうそう!そうなんだよ。
以前からCalendarクラスのまがまがしさは気になっていたけど、ちゃんと根拠があったのね。
本書で紹介されているCalendarクラスの犯罪行為の例:

  • 月を表す定数が0から始まる(実際の月数に変換するには常に+1しないといけない)
  • フィールドごとに値が設定できてしまい、整合性をチェックしない(2月31日など実在しない日付をセットできてしまい、かつ、内部で勝手に3月2日などに変換されてしまう)