今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

NAgileで始める実践アジャイル開発

全体的にとてもいい感じ。シンプルに考える方向性が、自分の考え方とかなり似ている。
ひとつだけ違うなと思ったところがあったり。

  private bool 日付として正しい
  {
    get { return 年が正しい && 月が正しい && 日が正しい; }
  }

ここんとこ、C# の書き方はよくわからんけど、return のところに論理式を書くのは個人的にはあまり好きじゃない。個人的には(C# の書き方がわからんから Java で書くと)

  private boolean 日付として正しい  {
    if (!年が正しい) {
      return false;
    }
    if (!月が正しい) {
      return false;
    }
    if (!日が正しい) {
      return false;
    }
    return true;
  }

みたいに書く。
あと、コンストラクタで例外を出すのはあまり好みじゃなかったり。というのは、「13月32日」というのを言葉に出す人がいるんだから、概念的には「13月32日」という Date は生成できてもかまわない。現実的な問題としては、それって太陽暦太陰暦では不当な日付だけど、その日付がありうる暦があってもいいやん、て感じ。
そういう観点からすると、

  public boolean 日付として正しい  {
    if (!年が正しい) {
      return false;
    }
    if (!月が正しい) {
      return false;
    }
    if (!日が正しい) {
      return false;
    }
    return true;
  }

として、Date クラスを使う側に正当性の検査を任せたい。