ファイル転送処理を作ったときの話


システム技術グループ I.N

とある案件でファイルを転送するだけの仕組みを作りました

ファイルを転送するだけなんで大したことないでしょう
と思って軽ーく考えて取り掛かってみたところ
考えが甘かった……という悔恨の話です

何の保証もせずに特定のファイル名のファイルを送り付けるだけでいいなら
手法はたくさんありますが、いろいろ突き詰めていくと
そんなにさらっと終わる話ではありませんでした……

少し考えれば見えてくるんですが
以下くらいは保証しないといけないわけです

  • 転送元ファイルと転送ファイルの同一性保証
  • 転送失敗時の挙動、リカバリー
  • 多重処理の制御
  • 転送前後でのファイルバックアップ

また上記に加えて仕様面として

  • 転送元ファイルの削除有無
  • 転送先に既にファイルが存在している場合の追記 or 置換
  • ファイルの自動転送(定期的に存在チェックして存在すれば転送する機能)
  • 転送対象ファイルの随時変更(毎回決まった名称のファイルではなく、都度指定したいなど)

という部分もありました
さらに誰が転送を指示するのか、なんて部分も絡んできますね……
もちろんOSもあります

こういったことを踏まえずに2台のサーバー間A⇔Bで
ファイルコピーして終わり、なんて思考停止していたら

転送の同一性保証はどうする?
多重実行時の転送ファイルってどうなる?
え?このパターンは転送先にファイルがあったら追記で対応が必要??

と、どんどん出てくる……
さらに、いざ連携テストという段階でも
実行ユーザーの問題やらまだ出てくるわけです……

たかがファイル転送、されどファイル転送といったところでしょうか

基本的な機能だけに軽く考えてしまう方もおられると思いますが
5W1Hはちゃんと埋めて、それでも楽そうなら安請け合いしましょう……

思い返せばHowばっかり気にしてて
WhoWhenについては割と疎かだった気がします

今後は気を付けようと思います