ruby遺産とレガシーコード修理技術
TRANSCRIPT
柴田 博志SHIBATA Hiroshi
永和システムマネジメントasakusa.rb
Eiwa System Management, Inc.
The art of “Legacy” Ruby Code Maintainance
RubyKaigi2011 練馬文化会館大ホール 2011-07-18(Mon)
Ruby遺産とレガシーコード修理技術
自己紹介
SHIBATA Hiroshi
http://twitter.com/hsbt/
http://www.hsbt.org/
http://github.com/hsbt/
asakusa.rb
地域コミュニティ
ESMhiringRubyists! http://bit.ly/esm-hiring-rubyists
私とRuby会議
SapporoRubyKaigi
RubyKaigi2009
RubyKaigi2010
最後のRuby会議
この場所この時間話したい
今日は25年使われる予定のソフトをメンテナンスする方法について話します
・ 自己紹介
・ 今日話すこと・ RubyKaigiと私
tDiary
なぜ25年使い続けるのか?
5文字のテキストらしいですよ?大丈夫か?
ブログブームに乗って数多くのサービスが立ち上がったが、すでにサービスを停止している企業もある。 それも、満足にデータのエクスポートすらできないことも少なくない。 こんな状況で、安心して日記を書けるだろうか。
10年日記という(紙の)日記帳がある。これを買えば、少なくとも10年間、同じフォーマットで日記が書けることを保障するものだ。同じことがWeb日記でも言えたら嬉しいと思う。
10年25年
作り替えないの?
脱tDiary
画像の解説だよ
tDiaryを使っている人が好き
・ tDiary
・ 作り替えない理由・ 25年開発する理由
ソフトウェアを使い捨てにしないためには?
Ruby遺産
歴史的経緯により複雑な内部構造を持ち作者しかわからないコードが多数残っている。
tDiaryがやってること
レガシーコード修理技術
・ 使用してないコードの削除
・ コンパイラ任せ
・ 仕様化テスト
16章変更できるほど十分に私はコードを理解していません
機能の追加は慎重に削除は大胆に
Noと言える技術
ユーザーに求められていてもNoと言えることが重要
元祖モヒカン
仕様の却下業
時代に求められなくなった機能
2. Pingback
1. Trackback
13章変更する必要がありますが、どんなテストを書けばよいのかわかりません
仕様化テスト
テストで壊してはいけない骨格を作る
Railsがもたらした物
Capybara
23章どうすれば何も壊していないことを確認できるでしょうか
10年も続けていればサポートもそれは大変
4. 1.9.3? 2.0.0?3. 1.9.22. 1.8.71. 1.8.6
コンパイラ任せ
I♥ CI
魔法執事じぇんきんす☆マギカ
Jenkins
travis-ci
・ 使用してないコードの削除
・ コンパイラ任せ
・ 仕様化テスト
私に出来ること
開発者の負担を減らす
Testing Framework
新しい仲間を集める種
25年続けるためには必要
ユーザーが
開発者
開発を楽しむ
燃料の投下
Ruby
開発を楽しむ
まとめ
レガシーコード修理技術
新しい仲間を集める種
燃料の投下
Thanks
コミュニティの形成
生活の充実
マスターセンセイ達
Good Ruby Life