dimeizaのブログ

興味のある技術(IoT/VR/Smart Speaker)とか、資格試験の話とか、日常で出会ったTechな話について書いています。

レガシーコード改善勉強会に行ってきました。

 レガシーコード改善勉強会に行ってきました。

http://passmarket.yahoo.co.jp/event/show/detail/01pitgwzj67m.html

 昼前から始まって18:30近くまで講演が続く長丁場でしたが、『あるある』を感じながらも割と熱い内容でした。

 始まってみると席はほぼ埋まっていました。早めにチケットが無くなってしまい、後から追加したとか何とか。

各セッションの資料と寸評

 セッションは7つ。

「レガシーコード改善のススメ」

http://www.slideshare.net/ahirasawa/ss-39610745

 基調講演的な感じ。ウルシステムズの稲葉さんが体調を崩されたそうで、代わりに平澤さんの講演でした。

 あるある感を満載しつつ改善テクニックを紹介。レガシーコードがもたらす『デグレスパイラル』を、プラスのスパイラルにする、という方向性には共感を覚えます。

「テスト、リファクタリングに関する深い方法論」

http://www.slideshare.net/KyonMm/wewlcjp

 テストという観点に軸を置きながら、広い知識を総動員してレガシーコードに当たる、という所がポイントかなと。

 挙手はしなかったんですが、Mikado MethodやViewPoint/Perspectiveは実は耳にはしていました。

 内容については特段異論はなかったのですが、知識顕示欲が前に出ているのが、プレゼンターとしての成長の余地を感じましたね。知らないからこそ、知るためにわざわざ休日に参加しているのですから、煽りは不要。

「レガシーコードとの付き合い方と、そのテストでの話」

http://www.slideshare.net/goyoki/ss-39589028

 テーマはLL言語と聞いていたので、組み込み出身者が登壇する、というのは親近感を覚えましたね。あの場にどれ位組み込み屋がいたのかは分かりませんが…。

 『人』『環境』『アプローチ』の観点から、どのように地雷原(レガシーコード)に立ち向かっていくか、というアドバイスでした。Good.

「納品のない受託開発を支える、レガシーコードを作らない仕組み」

http://www.slideshare.net/rootmoon/ss-39589511

 ソニックガーデンではインフラもまたレガシーコード足りえるという発想でお考えだそうで。実は組み込み屋もディスコンだのチップ移植だのと、周辺環境が同様の問題を抱えるんだよなぁ、と思いながら聞いていました。

 ビジネスモデルそのものがコードの陳腐化を阻止する、という話を聞いて、これが倉貫さんが初めから意図したことなのか、それとも結果論として齎されたものなのか、はちょっと興味を惹かれましたね。

「レガシーコードを改善した先にあるもの、それは継続的インテグレーション

http://www.slideshare.net/linoSth/ss-39590493

 Jenkins。ええ、使ってます。

 個人的にはだいたい使っているので目新しい感はなかったですが、CIはレガシーコード改善の大きな武器足りえる、というのは同感。

 カバレッジとかも収集対象にしていきたいなぁと思いました。

PHP版レガシーコード改善に役立つ新パターン」

 YahooさんもPHPのレガシーコードにお苦しみだったようで。

 2つのテクニック(名前空間による共通関数の上書き、グローバル変数の関数ラッピング)を紹介していました。

 PHP固有なのかもしれませんが、これは他言語ではMockingでどうにかすることですね。私はJMockitやらFFFやらで対処していますが、コンパイラを持たないLL言語だとこの辺りは壁なのかなぁ、と、門外漢としては思いました。

「レガシーコード改善の戦略と戦術」

http://twada.herokuapp.com/presentations/wewlc/wewlc.html

 参加時には全く意識していなかったのですが、トリが有名人でしたね。

 組織を変える、という観点でレガシーコード問題や、ユニットテスト定着に取り組んできた人ならではの話でした。

 個人的には、

  • 人はそれぞれの速度でしか成長できない
  • プロジェクトもプロジェクトの速度でしか成長できない

 は唸らされました。そうなんですよね。

 あと、

  • 結局は背中を見せること

 という言葉で、私自身も背中を押されました。

 実際に背中を見せてきましたし、これからもそうするつもりなので。

 Yahooさんの発表のみ、まだ資料が共有されていませんが、共有されたらおいおい追加します。

所感

 レガシーコード改善ガイドの内容をベースとして、どのように現場で展開していくか、方針は? 戦略は? 戦術は? という問いかけに対して、いくつかの有効な考え方が示された、という印象でした。

 個人的には実際に、

 というプラクティスを実践していて、その経験を持ち込んで話を聞いていました。

 なので、全体としてはよく腑に落ちましたし、『自分の進め方は間違ってなかったんだなぁ』という思いを新たにしました。

 それ以上に、Yahooの企画者の方々が、自社のスキルアップだけじゃなくて、こうやって外部のエンジニアを招いて(しかもタダで)勉強会をしてくれたのは、実にありがたかったですね。

 若干耳障り(Not耳が痛い)な話もあったものの、やはり社外に打って出て、コンフォートゾーンを超えないと見えてこないものがたくさんあります。

 クロージングでYahooの方が参加者全員に、何らかフィードバックして欲しい旨の話をしていたので、私もなるべく発信していきたいものです(Web業界と違って守秘義務だの何だのがうるさいので、できることはそれほど多くないですけども)。

 次回開催可否をアンケートで聞いていたので、もしかすると次があるやも。その折はまた伺いたいものです。

その他

  • タイムテーブルも含めイベント運営の潤滑っぷりは大したものと関心しました。Yahooさんはこういうの慣れてらっしゃるんでしょうか。

  • コーヒーとお菓子のサービスはありがたかったですね。『Fearless change』Do Food : 何か食べながら(9)を思い出しながら、何杯もおかわりしてしまいました。

  • 献本で『リーン開発の現場』と『新装版 リファクタリング』を狙ったのですが、取れなかったのは残念。

  • 終わったら流石に疲れましたね。午後に収め切るには盛り沢山な感も。