システム開発時のファイル管理について│web制作会社のデータ管理関連コラム

Columnコラム

システム

web制作 システム開発時のファイル管理について

web制作 システム開発時のファイル管理について

2015/01/19
このエントリーをはてなブックマークに追加

こんにちはサーバーエンジニアの橋本です。

昨年から新聞を購読する習慣を持つようにしたのですが、困っているのは読み終わった新聞の処理。1週間だけでも大分積み上がってしまいます。
あたりまえの話、古い新聞は資源ごみの日に出せばよいのですが、その日の朝に限ってギリギリの時間に起きてしまうことが多く、急いでいるあまり、ついゴミ捨て場に出すのを忘れてしまう。そんなことが多く続き、今では家に数ヶ月分の新聞が山積みになっています・・・。

さて、WEB制作の現場でも古いデータ(ファイル)の処理は制作者を悩ませることの一つだと思います。
みなさんはどのように古いファイルを管理されていますか?
昨今ではファイル管理にバージョン管理ソフトを使うといったことを多く聞くようになりました。では、そのバージョン管理ソフトを使うメリットは何でしょうか。
今回は、昨今よく耳にするようになったバージョン管理ソフトのメリットについて、私の経験を基に説明をしようと思います。

file_ryoichi_150115.jpg

ファイルの履歴管理

バージョン管理ソフトを利用しないでWEB制作やシステム制作を行った場合、どのようなことが起こるか。
まず第一に考えられることとしてはバックアップデータがゴミのように溜まっていくことです。

WEB制作の現場ではファイルを更新するたびに、更新前のファイルに日付をつけて保存する(例:index.html_20141201)といったことがよく行われます。
また、サイト全体のファイルを残すためにサーバー上では「tar」ボールでサイト全体のデータを固めるといったこともよく行われます。(例:webdata_20141201.tar.gz)

もちろんその時点のファイルが完全な形で残るため、何かあった際にその時点に戻す(復元する)という点では問題ないでしょう。しかしこの方法はそのプロジェクトが長くなると多くのゴミ(バックアップ)ファイルが作業領域に残ってしまうという問題点が考えられます。

例えば1年間毎月1回更新するだけでも下記の数のファイルがサーバー上、もしくは自身の作業領域に残ることになります。

index.html_20141201
index.html_20141101
index.html_20141001
index.html_20140901
index.html_20140801
index.html_20140701
index.html_20140601
index.html_20140501
index.html_20140401
index.html_20140301
index.html_20140201
index.html_20140101
index.html

1ファイルだけでこの数ですので、それが複数ファイルに及ぶと、とんでもない数になるのが想像できると思います。
これでは更新すべきファイルを見つけにくくなり、バックアップでないファイルかどうか識別するだけでも一苦労です。
また、昨今はハードディスクの容量が大きくなりあまり意識することがなくなりましたが、複製した分ディスク容量を使ってしまうのも問題といえます。

バージョン管理ソフトは、こういった煩わしさ、問題から開放してくれます。(あくまで主観です)
バージョン管理ソフトでは上記のようなバックアップファイル、バックアップ履歴はすべてレポジトリと呼ばれるデータ格納領域に保存され、ユーザー側では必要に応じてソフトを使って過去のバージョンのファイルを取り出すことができます。
つまりサーバーや作業領域は常に最新のファイルが存在するだけになるのです。

私も過去、全ての案件でバージョン管理ソフトを導入しないでファイル管理をしていました。
その結果どうなったか・・・想像通り、どのサーバーもとんでもなくファイルが増え、必要なファイルを探すだけで時間を使ってしまい、結果作業効率が落ちてしまいました。(それがあたりまえだと思っていました)
しかし、バージョン管理ソフトを導入して以降、そのあたりの問題からは開放され、サーバー上や作業領域に無駄なバックアップが大幅に減り、作業効率もアップしたと思います。

複数人で更新する

ではもう一つバージョン管理ソフトを使っていて便利だと思う点、それは複数人で作業をするときに先祖返り(ここではファイルが古いバージョンに戻ってしまう現象の意味で使っています)が起こりにくいということになります。

このコラムを読んでいる方の中にも複数人でWEBサイトの制作やシステム開発の現場を担当した方もいると思います。
更新したと思ったファイルが、ある日突然古いバージョンに戻ってしまう。
想像しただけでも恐ろしいことですが、それによってプロジェクトが大幅に遅延したり、クライアントからクレームをもらったり、そんな苦い経験をした人も多くいるのではないでしょうか。

これはどんな優秀なプロジェクトマネージャーが仕切っていたとしても、またどんなに現場のスタッフ全員の意識が高くても必ず起こりえることです。

  • ・他の人と同時に同じファイルを更新していたため後からアップした方が優先されてしまった。
  • ・更新ファイルでないファイルを間違えて一括アップしてしまった。
  • ・外出先で緊急で更新したファイルを事務所のPCに反映していなかった

理由はいろいろあると思います。
どれも単純なミスのように見えますが、納期が迫り切羽詰った状況のプロジェクトでは、何度も念入りに問題がないか確認しファイルをアップする余裕はありません。また、長時間の作業で判断力が低下していることもあると思います。
どうしてもソフトウェアを扱うのは人間なため、ミスを100%防ぐ方法はないのです。

しかし、バージョン管理ソフトを使うと、ある程度このミスを防止することができます。
(もちろんバージョン管理ソフトを使うルールを守っている前提です)

バージョン管理ソフトは、他の人と同じファイルを更新し、更新箇所がバッティングした場合に教えてくれるという機能があります。また、バッティングした際に元に戻したり、更新箇所をマージする機能も備えています。
更新履歴を管理しているので、もし過去のバージョンに戻ってしまった場合は、どこで間違えたのか原因を究明するのも簡単です。

作業者は作業開始に自身の作業領域にあるファイルを最新版に更新する、作業後に必ずレポジトリに作業内容をコミット(記録)するということを行うだけで上記の恩恵を受けることができる、これは大きなメリットです。
これだけでもバージョン管理ソフトを導入するメリットであるといえるのではないでしょうか。

まとめ

いかがでしたでしょうか。
今回はバージョン管理ソフトについて説明してきました。

プロジェクトによっては必ずしもバージョン管理ソフトを使う必要はないと思います。
小規模で作業者が2、3人のプロジェクトでは使うことの方が時間がかかったり、非効率になることもあります。
また単純にバックアップを取るだけであれば、ファイルの複製だけで事足りるでしょう。
(実は私もまだそのようにファイルを管理していることもあります)

ただ、大勢の作業者が関わるプロジェクトや長期間に渡るプロジェクトにおいてバージョン管理ソフトはその力を遺憾なく発揮します。

まだ自分はバージョン管理ソフトを使わないでも大丈夫、と思っている方も導入を検討してみてはいかがでしょうか。

file_ryoichi_150115_2.jpg

関連するサービス

ホームページ制作 システム開発

text_totop