カードゲーム
3時頃、みんなテンアゲだったし、せっかく持ってきたのでカードゲームに興じる。
選んだタイトルはチルノのさんすうゲーム。
朝4時ごろまでがんばった気がする。
『実践テスト駆動開発』を読み込む
朝4時ごろ、寝静まった。このチャンスを生かして講師のTakuto Wada(@t_wada)さんがお持ちになった本を読破することに挑戦することにした。
朝までは3時間程度しかないので、しょうがなく以下の本をチョイス。
テスト駆動開発入門読んだがこれはすごいな。こんなこと真面目に書くのがすごい。ライブ感がぱない。
— ふぁらお加藤 (@PharaohKJ) 2017年2月18日
機能を足した動くコード→よりよいコードをガンガン書いていくライブ感がすごい!
私とかが「慣れろ」で済ませることをちゃんとまとめてあってすごい。プログラム書けるようにはなったけどプロってどんなふうに進めているんだろう? ぐらいの学生や、少し書き始めてきた人間にとてもオススメしたい。
90分ほど寝る。
朝食
健康によさそうな内容だったので完全にブッチして昨日の残りのピザなんかを食べた。
クソコード鑑賞会
まぁクソコードであるが、このコードを書いた人の実力がこれなのか、それともここからまだリファクタできると思ってるのかはわからない。
捨てる勇気
正しいバージョン管理ソフトを使って大量のコメントアウトを捨てよ。正しくバージョン管理システムが動いているところにおいては、コメントすら「必要なのである」としてメンテナンス対象となるのでツライ。
DAY1で習ったとおり、捨てられるのは真意がわかっている人すなわち書いた本人のみである。がんばりたい。
チケットベース開発はいいがやはりコードメンテナとレビューがなければこうなる
対象のコードはビューも含めたウェブアプリのコードだったんだが「内部構造はよくわからないが内部を把握する時間や予算がなかったので、がんばって機能を増やした」というあがきを感じる。
こうなるのはまともなメンテナ(もしくはレビュア)が用意できないなかでチケットベースで指示やバグフィックスをがんばってやるとどうしてもこうなる。
何を申したいかというと、クソコードになるのはクソコードを書いた人間だけをあれこれ言っても解決できず、「仕事のやりかた」「予算のかけかた」などのスコープからも見ないとそりゃクソコードになるわい。ということが言いたい。
レガシーリファクタリング
ライフゲームとお伺いしていたのだが、まさかの「もう動いているライフゲーム」に
- リファクタリングと
- テストを加えよ
というかなり実践的な内容。
いろいろあって、Rubyチームを離れてJavaチームに入った。そのおかげでIntelliJを触る機会を得られて大変よかった。
強力な変数・関数のリネーム機能もあったりしてJavaの強みを活かしていろんなことできてよかった。
とか言いながら、2次元配列を扱うのにXとYを間違えてリネームしてしまったばっかりにハマってしまった。Xを指定してその座標の集合がとれるというテストをまともにやるべきだったか。慢心だな。
お昼ごはん
KPT
前述したが今回の内容では
「プログラム書けるようにはなったけどプロってどんなふうに進めているんだろう? ぐらいの学生や、少し書き始めてきた人間にとてもオススメしたい」
次はこういうものをいかに会社に持ち込むか。どのようなツールが支援してくれるのか。をノウハウとして持ち寄って議論したい。…いや俺無職だった!
解散
終了!おつかれさまでした!#tddbct pic.twitter.com/5JlHrC493F
— mugi (@mugi_uno) 2017年2月19日