TDD Boot Camp(TDDBC) - TDDBC横浜3rd/演習 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!お題 : Javaの奇妙なバージョン
""*Limited Updateは20の倍数を割り当てる
""*Critical Patch Update(CPU)には5の倍数を割り当てる。倍数が偶数になる場合にはさらに1を加算して奇数へ変更する
""*Limited UpdateとCPU以外の予定外のアップデート(Security Alert 等)はそれらバージョン番号の間の数字を使用する
!!例
JDK7u40
* 7 : family number
* 40 : update number
!!!バージョンアップ
* LUされたら → JDK7u60
* CPUされたら → JDK7u45 → JDK7u51
* その他 → JDK7u41

!!最初に
''この仕様に矛盾点がないかペアで相談してみよう!''

!!題1 : validかどうか調べよう
  Version.isValid("JDK7u40")
      #=> true

  Version.isValid("hoge")
      #=> false

  Version.isValid("JDK7u9x")
      #=> false

!!題2 : parseしよう
  v = Version.parse("JDK7u40")
      #=> JDK7u40を示すオブジェクトを返す
  v.familyNumber #=> 7
  v.updateNumber #=> 40
  
  Version.parse("JDK7u9x") #=> 例外

!!題3 : 大小比較しよう
  u40 = Version.parse("JDK7u40")
  u51 = Version.parse("JDK7u51")
  jdk8u0 = Version.parse("JDK8u0")
  
  u40.lt(u51)      #=> true
  u40.gt(u51)      #=> false
  u40.lt(jdk8u0)   #=> true
  jdk8u0.gt(u51)   #=> true
  #          ↑ 言語に応じて演算子オーバーロード等はご自由に

!!題4 : 次の番号を計算しよう

  u45 = Version.parse("JDK7u45")
  
  u60 = u45.nextLimitedUpdate()
  u60.updateNumber #=> 60
  
  u51 = u45.nextCriticalPatchUpdate()
  u51.updateNumber #=> 51
  
  u46 = u45.nextSecurityAlert()
  u46.updateNumber #=> 46
    ## next~メソッドはすべて、新たなバージョンを表すオブジェクトを返す
    ## (selfのバージョンを変えて返すのではない)
!ライセンス
[[クリエイティブ・コモンズ・ライセンス|http://i.creativecommons.org/l/by-sa/2.1/jp/88x31.png]]
この演習問題は [[クリエイティブ・コモンズ 表示 - 継承 2.1 日本 ライセンスの下に提供されています。|http://creativecommons.org/licenses/by-sa/2.1/jp/]]