僕がシステムを作るときに観点としていることのメモです。 自分で作ったり、お客様とやり取りする際に、このあたりに気をつけて見ているという話です。
このネタは 執筆のために書いていたプロットのボツネタなので内容は精査できていません 。 与太話として、メモしている程度です。
スクリプトやバッチ処理、システム関連系をするときの観点
スクリプトやバッチ処理を作る場合は、まずデータの流れが大切です。 連携するシステムのどの位置にいて、どれだけのシステムが後ろにあるかを把握しましょう。
もし発注元のお客様や、社内の情報としてシステムの図がある場合は聞き出してもらっておきましょう。 これから作るシステムが、全体のどの位置で動くのかはとても重要です。
- 関連するシステムはなるべく描き出しましょう
- 関連システムのその先も簡単にでも書いておきましょう
- データの不備やシステムダウンがあった場合などに、どこまで影響するかを把握できます
書き方は、紙にペンで書いたり、UMLのドローツールを使うのがオススメです。 具体的な書き方をイメージできないのであれば、ロバストネス図を書くと良いです。
以下の観点に注意しましょう
- 入出力先はどこなのか
- データ、とは何か
- 処理は何をするのか
観点の使い方
- 連携するシステムや処理の制限を把握すると、どのように処理すれば良いのかが見えてきます。
- 他システムにデータがPushされる場合、リクエストを受け取るだけ受け取って変換処理は非同期で別途やるなどです。
- どんなデータがどんな形式でやりとりされているかが見えてきますので名前付けや用語の整理がしやすくなります。
- 処理に1時間使える場合と、5分で終わらないといけない場合では利用する技術も変わってきます
- 例えばAWS Lambdaは便利ですが、5分以内に処理を終わらせる必要があるので長時間の処理には向いていません。
- 連携先とはどういうファイル、プロトコルで通信するのでしょうか
終わりに
ちゃんと色々調査したり、まとめて書けば良い知見になりそうな気はしています。