tknhs’s blog

ー ごちゃごちゃしてるブログ ー

Coderetreat in K.I.T.

| Comments

coderetreat

2014/05/31 Coderetreat in K.I.T. に参加してきました.

まず驚いたのが学生が多いこと.そして1年生が結構いたこと(優秀ですわぁ.
飲み友達(隠語)も結構いたので,気持ち的には楽に始めることができました(悪習慣?)

内容

  • 入門: うるう年の計算
  • ふつう: コンウェイのライフゲーム
  • チャレンジ: ボーリングスコア計算

目的

内容は当日までわからなかったけど,TDD をちゃんと理解するためにも全セッション中に一度は TDD で開発する.

ペアプロ

セッション #1 - うるう年の計算

使用言語 : Python
ペア   : 学生
役割   : ドライバー

普通に実装したらすぐ終わっちゃうよねということだったので if文禁止を制約に加えて実装.
実装内容は「対象年において4で割り切れるか100で割り切れるか400で割り切れるかという値を持ち,割り切れる状態が奇数個あればそれはうるう年である」というものになった.この回は「紙でテスト -> 実装 -> テストコード」という順番で行った.

セッション #2 - うるう年の計算

使用言語 : C#
ペア   : 社会人
役割   : ナビゲーター

この回は実質 C# のお勉強.C# の言語仕様的な話を聞くことをメインにおいていたため実装は完成せず.ただ,TDD な感じで実装はしていた.やっぱり IDE は便利だよなぁとか思ってたりもしたけど,宗教変更までには居たらず.言語仕様自体はラムダとか型推論とかあって,まぁ入りやすいかなとは感じました(モダンな言語が増えてきて選択が難しいの意.

セッション #3 - コンウェイのライフゲーム

使用言語 : PHP
ペア   : 社会人
役割   : ナビゲーター

研究室の同期ということもあり,最近どう?みたいな話をしていて中身に入るまでにちょっと時間を費やしてしまった感じ.ロジック・実装ともに,とりあえず愚直に行っていった.完成はしていない.

セッション #4 - コンウェイのライフゲーム

使用言語 : Python
ペア   : 学生
役割   : ナビゲーター

Python2.6 当初から使ってるということで Python の先輩.ライフゲームにおいては,誕生・生存辺りをもっとうまく判断したいなぁとか言ってたら終わった.

セッション #5 - ボーリングスコア計算

使用言語 : Python
ペア   : 社会人
役割   : ドライバー

TDD でやりましょうと.テスト書いてそれが通る実装を書く.また他のテストを書くそれが通る実装を書く.また他のテスt(ry の繰り返し.ちゃんと TDD を実感できるやり方だったため,非常に気持よく書くことができた.ただペア考えた起こりうるだろうすべてのテストが通って,すんなり実装できてしまったと思って達成感に浸っていたら,横から◯◯は通る?と言われ,「Failed…」その後すぐに時間終了してしまい,完璧な実装にはならなかったorz
また,テストが通らなかった際に,デバッグの仕方をちゃんと勉強していなかったのもあり,その場その場テストが通る実装だったのもありで可読性の低いものになってしまったのが反省点.次からデバッグは pdb でやります.

おわりに

前回(2013/12/14 Global Day of Coderetreat in Fukui 2013 にも)参加していたので,Coderetreat 自体は実質二回目.ただ,前回はいまいちよくわからない状態で参加していたので今回どうなるかなーと思っていたけど,前回に比べて理解は進んでいたし,その後いろいろしていたので十二分に楽しむことができた.また年内に開催するらしいので次回の開催を待ち望んでいます.各スポンサーの企業様,ありがとうございました.

coderetreat

Comments