<Blog> 状態遷移把握の難しさと強い見方「js-sequence-diagrams」
はい。やってみます。 今日学んだ、システム設計の厳しさのお話。
オンラインのWebサービスと、時間起動のバッチ処理がからみあい、 いろんなパターンのステータスが混ざり合う。
しかも、同じステータスのカラムを更新し続けちゃうもんだから、 過去のステータスの履歴は読み取れない。
いったい、あなたはどこからやってきたのか。。。
状態遷移表による設計手法(2):なぜ状態遷移表を使うと、品質の良い開発ができるのか (2/2) - MONOist(モノイスト)
BOSSから紹介されたのはこの記事で、 ひとつのトランザクションをきる間に、
- シーケンス図
- 状態遷移図
- 状態遷移表
という順番でまとめることで、抜け盛れなく、すっきり設計できる。らしいです。
お仕事の内容の詳細を書くことはできないけれども、 この1.~3.をしっかりやっておくことで、防げたバグはたくさんあったでしょう。 特に、基本となる1.を頭からお尻までかいておくことで、 下記の通りと振り返ってもつくづく思います。
例えば、
オンラインの一連の処理やってる間にバッチが割り込んだらどうなるの?
とか
バッチが一個動いている間にもうひとつのバッチが割り込んだらどうなるの?
とかいう疑問に、「順を追って日本語で」だと、かなり厳しいものがあります。
んー、なんか簡単にシーケンス図をかけるツールがないかなーと探していると、 見つけました「js-sequence-diagrams」とJavaScript
手書き風の見た目は、英語限定にはなってしまうみたいだけども、 下記のような感じで、すいすいと、形にできます。
ちゃんとしたドキュメントには後で起こすけども、 とりあえず早く形にしておきたい、っていうときにいいかも。