"レガシーコード"再考

6,160 views
6,311 views

Published on

2014/03/25 (火) にあったDevLOVE関西「レガシーコードと対峙する方法を考える」の発表資料です。
http://devlove-kansai.doorkeeper.jp/events/9463

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,160
On SlideShare
0
From Embeds
0
Number of Embeds
3,100
Actions
Shares
0
Downloads
14
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

"レガシーコード"再考

  1. 1. レガシーコード 再考 レガシーコードと対峙する方法を考える 2014 03/25 #DevKan @irof
  2. 2. @irof * ふつうのぷろぐらま * JVMの住人 TDDBC / 関西Javaエンジニ アの会 / 京都アジャイル 勉強会 / hoge駆動 ...
  3. 3. 注意
  4. 4. 注意「答え」なんて話ま せん。ありがたい話 なんてできません。 こんなとこに答えは ありません。基本な げっぱです。
  5. 5. はじめに つぎに ところで さいごに あじぇんだ
  6. 6. はじめに Legacy Code?
  7. 7. レガシーコードって なんだろ?
  8. 8. 長い
  9. 9. 色々してる
  10. 10. 複雑
  11. 11. 変え にくい
  12. 12. 意味 不明
  13. 13. でも
  14. 14. 価値がある これが厄介
  15. 15. レガシーコード改善 ガイド の定義
  16. 16. テストがないコード 一応これで話は進めますね
  17. 17. つぎに context
  18. 18. テストがあると 嬉しいこと
  19. 19. 嬉しいことなんて 知ってるよね。 だからいいよね。 ……え、だめ?
  20. 20. レガシーコードが 生まれる背景
  21. 21. テスト 大変
  22. 22. テストは大変 重要なことはみんな 知ってる でも工数かかるし……
  23. 23. テスト 無理
  24. 24. テストが作れない スキル無いし。 時間無いし。 仕組みないし。 手遅れだし。焼け石に水だし。
  25. 25. 詰んでる じゃん… 「テストが無い」から スタートすると かなりつらい
  26. 26. ところで Q
  27. 27. 「テストが無い」と言う けれども。
  28. 28. 「テストがある」って何 よ?カバレッジ?満足 感?何でもいいからあっ たらいいの? どう言う状況でテストが あるって言えるの?ゴー ルの見えないものはいつ まで経ってもゴールにな らないよね??
  29. 29. 「レガシーコード」と言 うけれども。
  30. 30. 何が悪いの?不具合があ る?読みにくい?何をし ているかわからない?変 更が大変?変更したら間 違えるから?変更に時間 がかかるから?レガシー さが問題になるのってい つ??
  31. 31. 投げっ放すんだけどね……
  32. 32. さいごに rethink
  33. 33. 捨てられない 変えられない 何をしているかわからない。複雑で。スキル不足とかね。スキル不足は恥じることじゃない。だってコードは簡単に人間の持ちう るスキルを超えるし。その閾値、人知の限界を超えないように抑えないといけない。スキルを超えたかは例えば自動テストが書け るかで測れたりする。 変えられなくした プロセス的に。その背景はある。「動いているコードに触ってはいけない」ってのは聞いたことあるよね。これはソフトウェアの 変更がとても危険だから。でも変更って発生するよね。必ず。変更できるからソフトウェアだよね。なんで変更出来なくしちゃっ てるの? 再考 レガシーコード
  34. 34. レガシーコードと対峙する レガシーコードの発生源を断つ レガシーコードを改善する
  35. 35. 思ってること レガシーコードと戦うには、文化を変えなけ ればならない。 戦うべくはレガシーコードだけではない。戦 えなきゃ話にならないけれど。 変更時に変更個所以外を変更できなければな らない。いわゆるボーイスカウトルールを実 践が出来るか?はボーダーになるかも。
  36. 36. ゴールはどこ? プロダクトのハンドルを握るために、 変更可能にして、それを維持したい。

×