たかがバックアップされどバックアップ
ソフトウェア開発の現場ではバックアップは非常に重要です。
どの現場でも限られた資源で仕事をするのが常なので、
- 完全に安定したサーバー
- 高機能な端末
で作業をすることができません。
これが何を意味するかと言うと
- サーバーがダウンする
- 端末が壊れる
ということは日常茶飯事に起こる
ということです。
バックアップさえしておけば・・・
ソフトウェア開発の成果物は当然、
電子データです。
要はバックアップしておけば、やり直しがきくのです。
居酒屋でお皿を割ったら取り戻せませんが、設計書を誤って削除をしてしまっても、復活できるのです。
裏を返せば
バックアップを取らなかった場合、あっという間に作成した成果物が無くなることになります。
その作成した時間は
「仕事をサボっていた」
と言われても反論できません。
『作成した成果物に責任を持つ』
というのはまさしくプロの証であると思います。
現場のプログラマーとしてはバックアップをとる習慣をつけるのも中級者への道ともいえます。
・・・いや、初級者でも必須ですね!
なくなって困ったもの
ちなみに、私がバックアップを取る習慣がなかったころ、実際に端末が壊れたり、サーバーがダウンしたりして、困ったものは以下のようなものです。
- 勤務・作業時間が記録されたエクセル
- 開発するのに必要な個人的な備忘
- 単体テスト結果
- 設計書
- プログラム
上から順に非常に困りました。
特に勤務・作業時間が記録されたエクセルファイルは準委任契約だったので、これがお給料のベースとなる資料になります
このファイルが請求書みたいなものでした。
勤務時間は他でも記録していたので、復旧できましたが、もし復旧できなかったら請求ができなくなるわけです。。
無くなってからから大切さに気付きました。
設計書、プログラムなども資産なのでもちろん無くなったら大変ですが、こちらは最初からバージョン管理システムなどを利用していことが多いので、ゴッソリ無くなることはないでしょう。
まずはコピーコマンド
バックアップをとる習慣さえつければ、別にどんな方法でもまずは良いです。
ドラッグアンドドロップでも良いのですが、
やはりプログラマー中級者への道を目指すには
自動化
は欠かせないと思います。
だからといって、いきなり
全自動コピープログラム~
なんてものを作るのも挫折してしまいます。
まずは
コマンドプロンプトのCOPYコマンドが一番良いと思います。
コピー元:c:\moto\test.txt
コピー先:c:\saki\test_bk.txt
とすると
コマンドプロンプトで
copy c:\moto\test.txt c:\saki\test_bk.txt
っていうコマンドを入力して
コピーされたんだなぁ
と言うのが第一歩でしょう。
コマンドプロンプトを知らない人は以下記事を参照してください。
少し実用的なもの
ただこれだと、普通にバックアップしたいファイルをマウスでドラックした方が早いです。
下のようにバッチファイルを作ってみてください。
※バッチファイルって何?って方に説明すると、テキストファイルを作り、以下の分をコピーして貼り付けて、拡張子を.batにすればバッチファイルになります。詳しく知りたい人はこちらの記事を参照してください。
rem /* 今日の日付を取得(yyyymmdd) */
set nowdate=%date:~0,4%%date:~5,2%%date:~8,2%
rem /* 今日の時刻を取得(hhmmss) */
set time2=%time: =0%
set nowtime=%time2:~0,2%%time2:~3,2%%time2:~6,2%
copy c:\moto\test.txt c:\saki\test_%nowdate%%nowtime%.txt
pause
先ほどと同じように
コピー元:c:\moto
コピー先:c:\saki
コピー元のファイル:test.txt
とした場合、例えば
2022年6月26日18時59分31秒にバッチファイルを実行すると
バッチファイルを実行するたびに
コピー先に
test_20220626185931.txt
のように実行した日時がファイル名について保存されます。
バッチファイルを実行するごとにバックアップが増えていきます。
ちなみにこれをスタートアップなどに仕込むと
毎日、Windowsを起動するごとにファイルが作成されるわけです。
このファイルをもとに自分の都合のように改良して試していくと、良いものが出来上がってくると思います。
最後に
バックアップをとることによって、
という一定の評価を
- お客様
- 上司
- 開発リーダー
から受けると思います。
また、さらに自動化ツールを作ることによって
手の動く開発者
としても一定の評価を得られ
一石二鳥になることは間違いないと思います。
これで
1人前のプログラマーになれる!
とは言いませんが、やっておくだけプラスになることは間違いないと思います。