終わった後の飲み会懇親会でいい話を聞いたうちの一つで、雑なブログを作った。
いい意味で雑。雑の半分は雅の半分。
なにわPerlに参加してきた
イベント参加の後はブログ書くっていうのはやっていきたい案件なので書きます。
今日はタイトルの通り、なにわPerl に参加してきました。
今回はコードレビューをする回ってことで、事前に告知されてるお題を解くプログラムを、事前 or 当日に書き、
それを著名なPerlモンガーにレビューしてもらうという夢のような回でした。
今回のレビュアーはpapixさんでした。
メインのレビュアーはそうだけど、少人数だったのもあって参加者お互いにあれこれ言い合ってて良かった。
お題がなかなか面白い内容で、僕は訳あって事前に書けず当日にプログラム書いたのだけど、 できれば事前にじっくり書いておきたかったです。
とりあえずかいつまんで書く
例外処理の褒められ
初手でだいぶ嬉しかったこと。
お題としては、入力値の範囲は問題内容で決まっており、その前提でプログラムを書けばOKである。
なので範囲外の入力値は考慮しなくてもOKである。
でも僕は、怖いしやらなきゃダメでしょって気持ちで、入力値を受け取った直後で値をチェックして範囲外ならdieさせてた。
ほとんど癖で、そういうチェックを書いた。
レビューされる直前になって、お題としては不要だったし書かなくてもいい処理を書くのはこの場合どうなんだろうということに思い当たり一瞬不安になった。
ところが、僕のコード見て最初にその値チェックの行を「良い。大事。」と言ってもらえました。
問題を解くアルゴリズムがどうとかコードの可読性とかじゃなくて、そういう身に染みついてることを肯定されたのがマジで嬉しかったし、そういうところの重要性の認識が合ってたのもよかった。
Smart::Args がよさそう
上記の値チェックについて、papixさんがお勧めしていたモジュール。そういうチェックがすごい楽になるっぽい。触ってみよ。
テスタビリティ
papixさんのコードは処理の分離をしっかりやっていて、「一つのことを上手くやる」みたいなところがよかった。
で、そういう風に処理が分けられているのでテストがしやすいみたい。
テスト書きたい。
プロ
コードレビューじゃないんだけど、「プロってなんなんだ」みたいなエモーショナルなこと僕が言っちゃって、
それにpapixさんと主催者のtomchaさんが答えてくれた。
僕が理解できたことをとにかく文字にしておくと、
- それを仕事にしてお金もらっていられているならプロ。
- プロといっても2軍、1軍、メージャーリーガーとかはある
1軍だとしてもホームラン王もいればヒット製造機もいれば守備めっちゃ上手いとかいろいろあるね - プロは早く8割(ある程度以上のライン)を満たすものを作れる
早さってのはたしかにプロらしい。早く出せばフィードバックがもらえて改善していけるし改善していけば8割が9割にもなる。
100%のものってのは無い。趣味の域だと99%を求めることもできるかもしれないけどそれってコストバランス度外視になっちゃってるからプロっぽくない。(ごく一部の分野しか考慮してないけど)
早く及第点のものを作るっていうの、小林賢太郎の本にも書いてあった気がする。 あっちはたしか期日よりだいぶ前にお客さんに観せられる完成品を作り、残りの期間で完成品を更新するみたいな。
良い日だった。