一年を振り返る Advent Calendar 2024の5日目です。もう完全に量と質を求める気はなくなったので、この一年をメモというか感想というか書きなぐってみようと思います。
シーケンス図を使った設計をするようになった
今までのエンジニア人生で実際にシーケンス図を描くことがなかったのですが、今回のプロジェクトではPlantUMLを使ってシーケンス図を描くことになりました。
VSCodeでもプラグインあってこんな感じで描画もできるのでとても使いやすいです。
とりあえず複合フラグメントってどんな種類があるのかいまいちわかってないのでメモに残す。
複合フラグメントってなんぞや
シーケンス図の複合フラグメントとは、並列処理・ループ処理・条件分岐などの具体的な処理内容を示す記号ルールのことです。
良く書いてるaltとかloopとか、あれなんて言うんやろと思ってたら複合フラグメントというらしい、というのを学んだ(シーケンス図なんか書いてこなかったから全然知らんかった)。
どんな種類があるのか
以下サイト引用。
複合フラグメント一覧
InteractionOperator | 意味 |
---|---|
ref | 別のシーケンス図を参照することを表します。 |
alt | 分岐処理を表します。 |
opt | 条件を満たした場合のみ実行される処理を表します。 |
par | 並列処理を表します。 |
loop | ループ(繰り返し)処理を表します。 |
break | 処理の中断を表します。 |
critical | マルチスレッド環境での同期処理など、排他制御を表します。 |
assert | 処理が妥当であるための定義を表します。 |
neg | 本来、実行されるはずがない処理(メッセージ)であることを表します。 |
ignore | あまり重要な処理(メッセージ)ではないことを表します。 |
consider | 重要な処理(メッセージ)であることを表します。 |
altとoptがいまいちわかってなかったですが、
「alt」-条件分岐、if-elseのイメージ
「opt」-条件一致、
ということを理解しました。
基本的にref,alt,opt,loopぐらいしか見ないので他のやつ知らなかったです。
まとめ
これまで詳細設計って文字で処理を書きなぐる系の設計書しか書いてこなかったですが、シーケンス図で処理を表現するのってやっぱ見やすいなと思いました。
とはいえ、シーケンス図でオブジェクト指向の設計を表現しきるのって限界あるよねってのも感じました。
この辺の知見も頑張って抑えていきたいと思います。(とはいえアプリ開発じゃなくてインフラがやりたい。)