未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

ソースコードリーディングワークショップ2010に行ってきた。

ソースコード理解と勉強会というタイトルでお話をした。ソースコードを読むことの意義などを話した後、わたしのしょぼいテクニックを恥ずかしながら披露した。

ワークショップは下記にあるようなプログラムになっている。
http://se.naist.jp/events/srw2010.html

Javaアプレットのコードがあって、それぞれのパッチをあててよいかというのを判定するというのを実際のコードを読みながら行う。当初、コードを読むというハンズオンには参加するつもりもなかったのだが、2時間ほどぼーとしているのもヒマだし急遽参加することにした。ソースコードをPCにダウンロードしておけばよかったのであるが、ダウンロードしていなかったので紙でソースコードを読んだ。2時間ちょっと、老眼には小さい文字で書かれたコードを読むのは結構つらくて、へろへろであった。通常はPCを使って読む。紙で読むなんていつ以来だろうか。

IBMの細川さんはクオリティインスペクションの専門家で、様々なテクニックをコードリーディングの後に発表されていた。これはすごいというテクニックがいくつもあったのだが、2月19日の次回のワークショップまではナイショにしておく。

細川さんは本当にすごい。コードを読む専門家の凄みを見せつけられた。このようなワークショップでそのような専門家のベストプラクティスを生で聞けるというのは僥倖である。また、ハンズオンでグループでディスカッションするというのも勉強になった。自分のやり方を伝え、相手のやり方を聞く。そこには何かしらの発見、気づきがある。

http://twitter.com/kwappa/status/8399729598

「ハンズオンの内容は一部2/19(デブサミ)までナイショにしてください(バイアスかかっちゃうから) => それ以降はどんどん喋ってください」 #scr_ws2010

わたしのところのエッセンスは@kwappaがTsudaってくれたので、それを引用することにする。kwappaさんどうもありがとう。

http://twitter.com/kwappa/status/8398782539

プログラマに必要なチカラ => ソース読む、デバッグ、テスト。学校では教えてくれない。現場でいきなり救命胴衣なしで荒海に放り出される。」 #scr_ws2010

http://twitter.com/kwappa/status/8399055109

「プログラムは思ったとおり動かない、書いたとおり動く→(コードリーディングは)コードからプログラマの意図を推定する作業」 #scr_ws2010

http://twitter.com/kwappa/status/8399079664

「コードはHOW、テストはWHAT、ドキュメントはWHY」 #scr_ws2010

http://twitter.com/kwappa/status/8399191645

「勉強会は有益な議論の場。IT勉強会カレンダーで検索。なければ勉強会を作る。」 #scr_ws2010

http://twitter.com/kwappa/status/8399295140

「モットー:コードは読むな、理解しろ〜」 #scr_ws2010

http://twitter.com/kwappa/status/8399486341

「ドキュメントを書く暇があったらテストを書け。テストとコードは1:1。テストのないコードは不完全。」 #scr_ws2010

テストとコードは一対になっていて、開き括弧と閉じ括弧みたいなもので、テストがないというのは不完全なので美しくない。無駄なドキュメントを書く暇があったらテストを書け。
http://twitter.com/kwappa/status/8399611522

Q:LLのデバッグは? A:よくわからない。「print文を入れる…」という話を聞くが、もう少し機械力を活用するべきでは。 #scr_ws2010

http://twitter.com/kwappa/status/8399617307

Q:作り直したい衝動とどう戦う? A:テストを書くと心が落ち着く。 #scr_ws2010

今回このような機会を企画した奈良先端大学院大学の森崎さん、パネルディスカッションで見事なモデレーションをした新野さん、手作り感あふれるワークショップを事務局として仕切った、日本IBMの服部さん、パネルの比嘉さん、サンマイクロシステムズの戸島さん、日本IBMの細川さん、ボランティアの皆さん、参加者の皆さん、ありがとうございました。