CoderetreatIn Developers’ Summit 2013 Unconference / 今回はさわりだけ(probably next time )
@haradakiro
Coderetreat って何?
• ペアプロでプログラミング技術を学ぶセッション• 1セッション 45 分 / 1日6セッション
• 課題は、 Conway’s Game of Life
• セッション終わったらコードは消す
Coderetreat って何?
• 毎回セッション毎にペア交代
• 言語は何でもいい• 使いたい・使える開発環境は準備してきてね
• 各セッション毎にチャレンジ課題• トライするかは自由• If 文禁止• ループ禁止• 複数行メソッド禁止• 配列利用禁止• しゃべるの禁止• などなど
Coderetreat のルール
• 参加費は無料• まともな昼ご飯が出る
• 45分で終わらせなくてよい
Codereteratスケジュール例
09:00 - 09:15 会場、趣旨説明、準備 09:15 - 10:00 ペアプロ セッション #1
10:00 - 10:15 ふりかえり #1
10:15 - 11:00 ペアプロ セッション #2
11:00 - 11:15 ふりかえり #2
11:15 - 12:00 ペアプロ セッション #3
12:00 - 12:15 ふりかえり #3
12:15 - 13:45 昼食 ( 昼食は提供されます )
13:45 - 14:30 ペアプロ セッション #4
14:30 - 14:45 ふりかえり #4
14:45 - 15:30 ペアプロ セッション #5
15:30 - 15:45 ふりかえり #5 ( おやつのじかん )
15:45 - 16:30 ペアプロ セッション #6
16:30 - 16:45 ふりかえり #6
16:45 - 17:00 全体ふりかえり
Conway’s Game of Life
• 二次元格子のセル• 個々のセルには8つの近傍セル
• 近傍セルのうち 2 個もしくは 3 個が生きていたら、生存
• 近傍セルのうち 3 個が生きていたら、誕生• それ以外の場合 (1 個以下もしくは 4 個以上 ) は、死
亡
セッションふりかえり
• きづいたこと• うまくいったこと• うまくいかなかったこと• 次のセッションでためすこと
• ハッシュタグ #coderetreat
Primitive Obsession
• どんなクラスをつかってセル、格子を表現した?• それは、わかりやすい?誤解をまねかない?
• 言語が提供するクラスを使わないでやってみる。
XP Simplicity Rules
• テスト全部通せ• 意図が分かるコードを書け• すべてを一回、一回だけ書け• 余計なコードはいっさいなしだ
1メソッドの長さは?
• 5行• 3行• 1行
• ちなみに APL では?• life←{↑1 . 3 4=+/,¯1 0 1 . ¯1 0 1 . }⍵∨ ∧ ∘⊖ ∘⌽⊂⍵
McCabe CyclomaticComplexity
• 増えると大変• 10超えのメソッドとか見たくもない
• 増やさないには、どうする?
• 条件分岐禁止 !
Try
• Ping – Pong TDD• 一人がテストコード書く、もう一人がプロダクトコー
ド書く• 配列はもういらないよね• TDD as if you mean it• テストコードなしのプロダクトコード書いてないよね
• そろそろループもいらなくない?• プログラマーならコードで語れ! ( しゃべるの禁
止 )
Closing Circle
• 今日学んだことは ( もしあれば ) 、何ですか?• 今日驚いたことは ( もしあれば ) 、何ですか?
• 休み明けの仕事で、何かやりかたを変えてみますか?
Next Event – To be Announced
• Legacy Code Retreat – 開催(たぶん来月 )• Code Retreat for Legacy Code
Thank You!
• ありがとうございます• スポンサーの皆様• 会場提供の皆様• 参加者の皆様
• Please Try At Your Work Place!• ブログ書いてね• Coderetreat.org をのぞいてみてね
• ご質問などは [email protected] へどうぞ。
Coderetreat 募集要項
• 募集開始は Twitter 上でアナウンス• どこかの参加募集サイト上で• スポンサーが集まったら