ブログのテンプレートを触りながら勉強中です。
表示がおかしいところがありますがご了承ください。
プロフィール
名前:りりぃ
誕生日:3月23日
職業:プログラマー
検索ボックス

<< 2014年07月 >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
最近の記事
最近のコメント
タグクラウド
カテゴリ
過去ログ

2013年12月14日

Global Day of Coderetreat in Fukui 2013 に参加しました。

Coderetreat in Fukuiに参加してきました。
私は初めての参加でした。
世界一斉開催で、終わり際に他の国の人とビデオ通話したり、グローバルな感じでした。
本会場の参加者は福井でプログラマーをやっている方だけでなく、
金沢や愛知からもいらっしゃっていました。
特に、金沢からいらっしゃった学生はとても向上心が高く、
自分で技術的なイベントを開いたり、本を出したりと活躍されているそうです。
いろんな方と触れ合うことができて、それだけでも勉強になりました。
今回の課題はライフゲームでした。
ルールすらきちんと理解していなかったので最初は苦戦しましたが、
回をこなすごとに理解が深まりできることの幅が広がりました。

■初めて体験したこと
1. 設計を頭の中でしてから短時間でプログラム起こす
  最初からオブジェクト指向で、モデルなしで、
  初めて会った他人と同じ認識でプログラムを起こすことはとても難しかったです。
  私は普段、一人で開発したとしても1からプログラムするときは
  モデルを書いてから実装することが多いです。
  全体が不明瞭なまま、部分的に作成するというのは不安なものだと感じました。

2. TDD
  テストを仕様書として先に書くことは、モデリングしなくても
  どんなクラスを作りたいのか2人で把握しやすかったです。
  また、テストが先にあることで、リファクタリングも安心してでき、
  思考しやすかったです。
  しかし、意識していないと、実装を先に書いてテストを後回しにしてしまいます。
  この辺は慣れで補っていきたいです。
  普段の業務では保守が多いので、
  新しい機能を追加するときはテストを先に書いていますが、
  デグレ防止や現在の仕様を確かめるために書いていることが多いです。
  そのため、クラスがない状態でテストを書いてから実装をするというのは新鮮でした。
  しかし、この方法だと補完機能が使えなくて、
  少し作業効率が落ちてしまった気がします。

3. ピンポン
  これは、テストコードを書く人と実装する人が別というやり方です。
  TDDになれていなくても、
  実装をつい先にやってしまうということが無くなるのでいい方法だと思いました。
  しかし、テストを書いた人の意図を理解するのが難しく、
  2人で仕様を話し合うことの大切さも同時に感じました。

■6回のセッションを違う人や違う言語を用いて学んだこと
1. メソッドの命名は中から見た意味ではなく、外から見た意味がよい
  最初、セルクラスにプライベートなisAliveという属性を持たせ、
  setterとgetterを持たせました。
  しかし、外のクラスから値をfalseに書き換えるとき、
  それを操作するクラスからはkill()という名前のメソッドのほうが
  わかりやすくないかと指摘されました。
  そういう概念がなかったので、
  これからはわかりやすいメソッド名を考えるようにします。

2. 乱数はテストしにくい
  シミュレーションフィールドに初期状態として
  生きたセルをいくつか用意したかったのですが、その方法で躓きました。
  初期値は乱数で作成したいと相手の方は仰いましたが、
  乱数で5個生きたセルが作られること、
  というテストしか方法が思いつきませんでした。
  乱数は毎回結果が変わるため、テストはしにくい仕様だと思います。

3. C#のテストコードはある程度自動で書いてくれて楽
  C#でのテストコード作成は初めてだったのですが、
  実装コードのスケルトンだけ作成してテスト作成をすると、
  値を書き換えるだけで済む程度のテストが仕上がっていました。
  Javaでもこういうのできたらいいなと思いました。
  もし有効なプラグイン等ご存知の方がいらっしゃったら共有してください。

4. 世界の境界は必要ない
  最初はシミュレーションフィールドを、高さや幅を指定して作成していました。
  しかし、その境界があることで、端のセルの状態が変化できなくなってしまいます。
  境界を持たないことで、その問題が解決すると教えていただきました。
  最後まで作ることはできなかったので、今度一人で実装してみます。

posted by りりぃ at 23:00 | Comment(0) | イベント
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: