ソースコード リーディング ワークショップ 2010に参加する
ソースコード リーディング ワークショップ 2010に参加する
1/30(土)、キャンパスイノベーションセンタ 東京で開催された「ソースコード リーディング ワークショップ 2010」に参加してきた。
「ソースコードを読む力を鍛えよう」というテーマのもと、講演・ハンズオン・パネルディスカッションと盛りだくさんの内容。土曜の午後をJava読んで過ごす、というなかなかハードコアなイベントだった。
ちゃんと公式twitterアカウント(@src_ws)もハッシュタグ(#scr_ws2010)も準備されていたのだが、あまり会場からつぶやいている人はいなかった。私は自重せずtsudaり通したので、今回のレポートはそのlogを流用してしまおう。
文中敬称略にて失礼します。
講演
ワークショップ主旨説明
森崎 修司(奈良先端科学技術大学院大学)
講演「ソースコード理解と勉強会」
よしおか ひろたか氏(楽天 / カーネル読書会主宰)
ハンズオン
概説
実施中
グループディスカッション
講演
講演「レビュー専門家がこっそり教えるコード・リーディング・テクニック鉄則集」
細川 宣啓 氏(日本IBM)
17:25:17
「コメントの句読点の入り方が全然違う。二人で書いたか、ひとりで書いたなら時間・場所などが決定的に違うはずだ」=>あたり=>SUGEEE!コードからプロファイリング。 #scr_ws2010
「コメントの句読点の入り方が全然違う。二人で書いたか、ひとりで書いたなら時間・場所などが決定的に違うはずだ」=>あたり=>SUGEEE!コードからプロファイリング。 #scr_ws2010
17:27:24
@furuhouse ソースコードをまるっと秀丸の「行ソート」とかしちゃって、似たような処理の部分、似たようなコメントで揺れてる部分を読むとか、怪しげなところにアタリをつけるとか、そういう手法のお話でした。 #scr_ws2010
( => @furuhouse )
@furuhouse ソースコードをまるっと秀丸の「行ソート」とかしちゃって、似たような処理の部分、似たようなコメントで揺れてる部分を読むとか、怪しげなところにアタリをつけるとか、そういう手法のお話でした。 #scr_ws2010
( => @furuhouse )
パネルディスカッション
パネルディスカッション「私ならこう読む」明日に活かすソースコード読解の戦略
モデレータ:
- 新野 淳一氏 (Publickey)
パネリスト: (50音順)
- 戸島 義徳 氏 (サン・マイクロシステムズ)
- ひが やすを 氏 (電通国際情報サービス)
- 細川 宣啓 氏 (日本IBM)
- 森崎 修司 (奈良先端科学技術大学院大学)
- よしおか ひろたか氏 (楽天、カーネル読書会主宰)
17:43:41
戸島:cscope,vim,lxr。cscopeで概要を掴む。GUIのツールよりターミナルの方がレスポンスがいい。emacs非推奨の環境での仕事があったのでviに乗り換えた。ターミナルの方が集中できる。 #scr_ws2010
戸島:cscope,vim,lxr。cscopeで概要を掴む。GUIのツールよりターミナルの方がレスポンスがいい。emacs非推奨の環境での仕事があったのでviに乗り換えた。ターミナルの方が集中できる。 #scr_ws2010
17:46:30
細川:1,500本のソースコードとか読むので、印刷物を目で見る方が速い。メモ帳とボールペン。プリントアウトを壁一面に貼ったり、電車の中でデバッグしたり。紙の利点を活かしてる。 #scr_ws2010
細川:1,500本のソースコードとか読むので、印刷物を目で見る方が速い。メモ帳とボールペン。プリントアウトを壁一面に貼ったり、電車の中でデバッグしたり。紙の利点を活かしてる。 #scr_ws2010
17:55:37
よしおか:「仮説を立て、gdbで検証していく。GUIアプリケーションではないので、単純に入力と出力が期待通りかどうかを調べて行く。期待に反した部分にバグがあるのでさらに調査する。」 #scr_ws2010
よしおか:「仮説を立て、gdbで検証していく。GUIアプリケーションではないので、単純に入力と出力が期待通りかどうかを調べて行く。期待に反した部分にバグがあるのでさらに調査する。」 #scr_ws2010
17:59:34
ひが:「勉強のためにJBossなど読んだ。技術について知りたいときは、優れたプロダクトのソースコードを読むのが一番勉強になる。他人のソースコードをデバッグのために読むなんてことはやりたくない。」 #scr_ws2010
ひが:「勉強のためにJBossなど読んだ。技術について知りたいときは、優れたプロダクトのソースコードを読むのが一番勉強になる。他人のソースコードをデバッグのために読むなんてことはやりたくない。」 #scr_ws2010
18:01:03
ひが:「ひとつのテストメソッドにたくさんケースが書いてあるよりは、テストメソッド名と中身がコンパクトに対応する方が意図を知るという意味でいいテストコードだと思う」 #scr_ws2010
ひが:「ひとつのテストメソッドにたくさんケースが書いてあるよりは、テストメソッド名と中身がコンパクトに対応する方が意図を知るという意味でいいテストコードだと思う」 #scr_ws2010
18:06:24
新野:「まだテクニックありますよね?」細川:「じゃマシン使わないヤツを。集中力が重要。コードの品質で大事故が起きたりするので、コンセントレーションのコントロールは意識している。」 #scr_ws2010
新野:「まだテクニックありますよね?」細川:「じゃマシン使わないヤツを。集中力が重要。コードの品質で大事故が起きたりするので、コンセントレーションのコントロールは意識している。」 #scr_ws2010
18:10:42
よしおか:「集中力を持続させるコツは?」細川:「前日ちゃんと寝ることですw 半分ジョークですが、体調管理には気をつけてる。スプリントは長続きしないので、打ち切る勇気も重要。」 #scr_ws2010
よしおか:「集中力を持続させるコツは?」細川:「前日ちゃんと寝ることですw 半分ジョークですが、体調管理には気をつけてる。スプリントは長続きしないので、打ち切る勇気も重要。」 #scr_ws2010
18:11:54
よしおか:「どんなものをレビューしてますか?」細川:「品質がまずいと人が死んだりお金がまずいことになったりするプロダクト。どこでも仕事できる、という意味でメモ帳+ボールペン最強。」 #scr_ws2010
よしおか:「どんなものをレビューしてますか?」細川:「品質がまずいと人が死んだりお金がまずいことになったりするプロダクト。どこでも仕事できる、という意味でメモ帳+ボールペン最強。」 #scr_ws2010
18:13:22
ひが:「長時間働くとよく働いた気分になって、翌日の生産性が下がったり。一日の仕事量を平均することで生産性を維持する。集中し続けるのは難しいので、コード+テストでサイクルを作り、短い集中力でせいかを出せるように。」 #scr_ws2010
ひが:「長時間働くとよく働いた気分になって、翌日の生産性が下がったり。一日の仕事量を平均することで生産性を維持する。集中し続けるのは難しいので、コード+テストでサイクルを作り、短い集中力でせいかを出せるように。」 #scr_ws2010
18:19:53
Q:「レビューなどについておすすめの本は?」細川:「レビューについての本は全部読んだけど、全て方法の話。何を見つけるか?という資料がない。レビュー標準を森崎先生と作るよ!」 #scr_ws2010
Q:「レビューなどについておすすめの本は?」細川:「レビューについての本は全部読んだけど、全て方法の話。何を見つけるか?という資料がない。レビュー標準を森崎先生と作るよ!」 #scr_ws2010
18:25:11
Q:「プログラムの全貌を見るのに効率的な手段は?」よしおか:「ブラックボックステスト。規模を把握する、ディレクトリ構成を見るなど。OSSに関してはいつもの作業が決まってる(README読むとか)。」 #scr_ws2010
Q:「プログラムの全貌を見るのに効率的な手段は?」よしおか:「ブラックボックステスト。規模を把握する、ディレクトリ構成を見るなど。OSSに関してはいつもの作業が決まってる(README読むとか)。」 #scr_ws2010
18:37:30
よしおか:「わたし自身も勉強になりました。レビュー標準も期待大だけど、それ以外のベストプラクティスをどんどん発表して共有しましょう。こういう機会を持ち続けたいですね。」 #scr_ws2010
よしおか:「わたし自身も勉強になりました。レビュー標準も期待大だけど、それ以外のベストプラクティスをどんどん発表して共有しましょう。こういう機会を持ち続けたいですね。」 #scr_ws2010
18:39:40
ひが:「いいコードを書くにはいいコードを読むのが重要。無から有は生まれない。悪いコードを少し読むといいコードのよさがわかったりするので無駄ではない。そしてたくさんアウトプットしましょう。書いたものは晒しましょう。OSSは挑戦しがいがある。」 #scr_ws2010
ひが:「いいコードを書くにはいいコードを読むのが重要。無から有は生まれない。悪いコードを少し読むといいコードのよさがわかったりするので無駄ではない。そしてたくさんアウトプットしましょう。書いたものは晒しましょう。OSSは挑戦しがいがある。」 #scr_ws2010
18:43:03
細川:「インとアウト大事。入れるだけなら知識、出さないと技術ではない。出してるうちに善悪の判断がつくようになる。書くことで覚えるのが日本的。読むことは基礎体力、つけないと国際競争に負ける。継続しましょう。」 #scr_ws2010
細川:「インとアウト大事。入れるだけなら知識、出さないと技術ではない。出してるうちに善悪の判断がつくようになる。書くことで覚えるのが日本的。読むことは基礎体力、つけないと国際競争に負ける。継続しましょう。」 #scr_ws2010
感想
- 実際のリーディングの内容は「デブサミ2010」まで伏せて欲しい、とのことだったのでナイショ。
- その「デブサミ2010」でも近い内容のワークショップが行われる。大変ためになるので、ぜひ参加をお勧めする。
- 今回は「動かさずに読む」という方式だったので、個人的にはなかなかキツかった。しかし、IBM 細川氏は「紙で読んでバグを探すのが仕事」とのこと。「プログラミングの知識」もずいぶん幅広いんだなーと再認識した。そして、自分の読解力にはかなりがっかりした…。
- よしおかさんの「コードはHOW、テストはWHAT、ドキュメントはWHY」はホントに名言。そして、つぶやいたらものすごい数のRTがついてびっくりした。ござ先輩ありがとうございます!
- IBM 細川氏は不勉強なことにこの日まで存じ上げなかったのだが、そのトークとリーディングのテクニックには圧倒された。いい勉強をさせていただいたことに感謝したい。
- パネルディスカッションはものすごく豪華なメンツ。そして、豪華なだけじゃなくて組み合わせの妙もあったように思う。いいもの見せていただいた。
- 「研究者と開発者のエコシステム」、ぜひ実現して欲しいと思う。まずはこのワークショップの第2回を期待したい。
Links
●Source Code Reading Workshop Japan 2010
http://se.naist.jp/events/srw2010.html
●ソースコードリーディングワークショップ (src_ws) on Twitter
●ソースコードリーディングワークショップ2010に行ってきた。 | 2010-01-31 – 未来のいつか/hyoshiokの日記
http://d.hatena.ne.jp/hyoshiok/20100131#p1
http://www.atmarkit.co.jp/news/201002/02/code.html
http://itpro.nikkeibp.co.jp/article/Watcher/20100202/344062/