(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

JUnitワークショップに参加したよー

参加してきた

1/11に新大阪コワーキングで開催されたJUnitワークショップに参加してきました。

13時から18時までで翌日から開催されるTDDBCの予習をしてました。

ちなみにTDDBCの課題としては、以前大阪2.0のときにも使われたものらしいです。

当日の様子はこっち。(正直僕以外ほとんど呟いてませんが… *1 )

学んだこと

  • システム境界が大事
    • システム境界はアクターとシステムの間にある
    • システム境界=インターフェース
    • 自動販売機に120円を入れてボタン押して、冷たいコーラが出てくるなら自動販売機の中におばちゃんが入ってても問題ない。
  • ユースケース駆動開発実践ガイド読んだほうがいい
  • TDDBCで大事なのは外部設計を明確にすること
    • TDDBC大阪課題の用語集は知っておいた方がいい=>ココ
    • インターフェースから作りメソッド名など吟味する
    • テストの為にインターフェースをシンプルにする
  • どんなテストから始めるかも大事
    • 最小限のテストで最大限の効果を出せるように考える
    • ある程度テストがまとまったらテストをリファクタリングする
    • コピペするようなテストがあればパラメタ化テストにしてしまう
      • JUnitはめんどくさいので外部ファイルを使ったりGroovyでやってしまうのも手
  • 機能を足していったときに責務が大きすぎると気付いたら移譲してしまう
  • 責務を分けるのは基本的な所作
    • 「管理」という名前を付けないといけないようなクラスは決まってクソ
    • 責務を分けて移譲することにより振る舞いを差し替えやすくなる
  • 例外の扱いなども責務をわけたときに考える
    • できるだけインターフェースの水際で例外を投げたい
  • EnumSetなどの標準ライブラリの使い方が分からないときもJUnitは使える

…とこんな感じでJUnitの使い方含め、TDDBCの予習をしました。

まとめ

正直、JUnitってまともに勉強したことなかったというか、こういう風に習ったことなかったので新鮮でした。
あと、とても疲れました…*2
頑張って僕もJUnitとかTDDとか布教できるように精進したいです!><

*1:理由としては"そんな余裕ない"です

*2:夜行バスで来たってのと座りぱなしはかなり堪えた…