すぎのいさんと昼ご飯を食べながら話していて、オレオレ Code Kata の素材になるのではと思ったのでメモしておく。
Code Kata について知らない方は、まずこちらをどうぞ。
良くある社内の業務フローなどで、稟議を起票する、承認あるいは否認する、確認するという3ステップの基本形がある。 現実の業務フローは2段階以上の承認があったり、キャンセルがあるためもっと複雑なものであるが、まずはこの基本形を抑えることからはじまる。
登場人物には、起票者と承認者の2人が現れる。
Web アプリケーションを想定してみよう。起票者側の UI と承認者側の UI で操作された結果に対して、起票された稟議の状態を変えて行くことになる。
ここで考えられるストーリーは次のふたつ。
1. 承認されるフロー
- 起票者として、稟議をあげる
- 承認者として、稟議を承認する
- 起票者として、稟議が承認されたことが分かる
2. 否認されるフロー
- 起票者として、稟議をあげる
- 承認者として、稟議を否認する
- 起票者として、稟議が否認されたことが分かる
これらのアクションに対する URL 設計や本実装について考えてみることで、基本となるワークフローの Kata (いわゆる武道の型とかそういった Kata) を身につけることができると思う。
なお、非機能要件として、さまざまな実践的なことが考えられるがここでは割愛。
そのあたりは次のイベントで体験できるかもしれない (私は予定が埋まっていて行けなくて残念) 。
詰め将棋 (あるいは本将棋、詰碁など) では、自分が指す、相手が返す、相手の返し手に対して指すといった3手の読みを基本形に、5手、7手、9手...と深く読む、相手がAと返したとき、Bと返したとき、Cと返したとき...と枝分かれした手への幅を読むといった応用形になってくる。この応用形を行うにはまず基本形の3手の読みができる必要がある。基礎重要。
今回はこの3手の読みを後付けのメタファーとした、ワークフローの基本形を Kata として示してみた。