TDDの技法で、mikado method(ミカドメソッド)という、なにやら怪しい名前の方法が流行ってるらしいので、調べてみた。
ミカドメソッドとは
ミカドメソッドとは、大規模なコードをリファクタリングするための方法論。
本もある。
動画もある。
Large-scale refactorings using the Mikado Method - Ola Ellnestam & Daniel Brolund from Øredev Conference on Vimeo.
ミカドメソッドの由来
Mikado(ミカド)メゾッドの名前は、ヨーロッパでポピュラーなテープルゲームが由来らしい。ミカドは、天皇(帝」である。
ちなみに、日本をバカにした『ミカド』というオペレッタもあるというのはどうでもいい雑学。
ミカドメソッドの方法
以下のステップに従う。
- ミカドゴール(最終到着目標)を決める
- おバカな方法でまずはゴールを実装する。
- エラーをたくさんみつける。
- 速やかにエラーを除去する。
- 新しい解決方法を必要条件として導き出す。
- エラーが取れなかったら、初めのスタート地点に戻る。
- 2から6を繰り返していく。
- エラーがなくなったか確認。
数学用語の『必要条件』を利用して目標を展開していく。PはMikadoの必要条件。
Mikado => P
MikadoのためにはA、B、Cが必要。Bのためには、E、Fが必要など。必要条件の展開は、ミカドグラフ?に描いていく。
Micado
======
| | |
A B C
|
E F
いくらでも失敗してよい、失敗したら初めに戻ればよい。はじめに戻る方法は以下。
git reset --hard && git clean -f
成功した道をミカドグラフに残していく。この失敗を恐れぬ大胆な挑戦と、確実な道筋を描いていくことが、大規模リファクタリングに適しているのだとか。あまり、書籍で読んだだけでは実感がわかないな。
ということで、練習用のリポジトリがgithubにある。練習方法は以下の記事が参考。この記事を書いているときは、やっていないけれども、あとで挑戦してみる。