ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

頭の中だけでは上手く考えられない場合の行動

ファイルのアップロードが、新規アップロードなのか更新アップロードなのか、どうすれば判定できるのか考えた結果です。

  1. システムにログインした際に、アップロード済ファイル名を変数savedに保存する。アップロード済ファイルがなければ、savedに空を保存する。アップロードされたファイル名を保存している変数uploadも同様に値を保存する。
  2. ファイルが選択され、登録内容確認画面に進んだら、ファイルをアップロードし、uploadにファイル名を保存する。ファイルさ選択されずに登録内容確認画面に進んだら、uploadは変更しない。
  3. 登録完了ボタンを押された際に、uploadとsavedを比較する。
  4. uploadとsavedが同じなら、ファイルは未更新と判定する。
  5. uploadとsavedが異なり、savedが空だったら、ファイルの追加と判定する。
  6. uploadとsavedが異なり、savedが空ではなくuploadが空でなければ、ファイルは更新と判定する。
  7. uploadとsavedが異なり、savedが空ではなくuploadが空だったら、ファイルは未更新と判定する。

f:id:AJYA:20180907060356p:plain
unsplash-logoAdolfo Félix

実際は紙に文字を書いて、丸で囲み、線をつなぎながら判定条件を書いていき、考えていました。
頭の中で思いつける人はどんどん進められるのでしょうが、僕の場合は紙に書いて大雑把にでも視覚化しないと、間違った考え方をしていても気づけません。
紙に書いて頭の中を整理した上で、システムの既存のソースコードを確認したところ、すぐに理解できました。