現場でレガシーコードに立ち向かっている者達の話 を聞いてきたよ
今日はこちらの勉強会に参加してきましたー!
今はレガシーコードってテストコードがないものを指すんですね。
昔はありきたりな、既にライブラリとかで実現できてるベタなコードを指してた・・・気がするんですけど、私の覚え違いかしら?
サービスも長年継続し、コードは継ぎ足し継ぎ足し、そして秘伝のタレ化。
開発スピードの優先などで品質よりも利益に目を向ける。
手仕事によるテスト。しんどい、漏れる。
コードレビューは阿鼻叫喚。
聞いてて涙出そうです。
私も今の会社に来て4年。テストのないコードは書いていないのですが。
(正直言うと今いるチームは自動テストがちょっとライト目かな?)
お話でとても興味を持った内容をちょっとメモっておこうっと。
- まずはCIでコミット時にコンパイルするだけの仕組み作り(コンパイルできた、がわかる)
- 放置されて通らなくなっていたテストを発掘
- リリースマネージャーを立てて判断してもらう
- ローカルで開発環境を整備したらみんなどんどん単体テストを書くようになった
- とりあえず新規や追加、改修部分だけテストを書いてみる
ああー!何だかテスト書いて感動してた初々しい自分を思い出した!w
私も前職とかではテストなんて手動に決まってんだろ的な現場が大半だったなぁ。
あと、テストなんてめんどくさいって思ってたのはテストの方法や書き方を知らなかったから、とのこと。
有識者がいればいいけれど、いないならプロを外から呼んで来て教えてもらうのが手っ取り早いと言う話も出ました。
また、積極的に社内勉強会でTDDやったりした発表者さんも。すごいなぁ。
テストの重要性に理解のある上司も素敵です。
私個人の意見としては
- 無理やりテストを書いてモックだらけで意味のないテスト書いちゃうことも
- assertをコメントアウトしてる絶対緑になるイミフなテストに気をつけろ
- テスト自動化がゴールになっちゃってるお化けに気をつけろ、ボトルネックやリリース遅れになるぞ
と言う感じでした。
楽しかったなー。
テストしやすいプロダクトコード、上手く書けるようになりたいなー。