page icon

バージョン管理

文責: 田村敬也

“バージョン管理”はなぜ重要か?

ソースコードのバージョン管理は、最も基礎的な開発者の習慣です。 このような習慣がない場合、共同でソフトウェアを開発すること自体が困難になり、属人化したノウハウや暗黙的なルールの温床になりえます。また、GitHubなどのサービスはさまざまな開発者向けツールの起点となる重要な基盤でもあります。
 

バージョン管理とは

バージョン管理とは、ソースコード等のファイルに対して、「いつ」「誰が」「何を変更したのか」といった情報を記録することです。
現在では、バージョン管理ツールとして、Gitが幅広く使われています。Gitを活用するサービスとしては、GitHubやGitLabが有名です。
バージョン管理を行うことで、
  • ソフトウェア上で問題が発生した際、迅速に以前のバージョンに戻すことができる。
  • 最新のソースコードとの差分を確認し、デグレードの発生を防ぐことができる。
  • ソースコードの変更の経緯を追うことができる。
などのメリットがあります。
現在のソフトウェア開発において、必要不可欠なツールとなっています。
 

何をバージョン管理するのか

バージョン管理の対象は、ソフトウェアのソースコードだけにとどまりません。
ビルドスクリプト、データベースのスキーマ定義、初期データ、マイグレーションのSQL、環境構築用やインフラ構築用の設定ファイル・スクリプトなどもバージョン管理の対象とすることで、属人化を防ぎ、開発プロセス全体の効率化を進めることができます。
一方、パスワード等の秘匿情報やログファイル等の自動生成されてしまうファイルはバージョン管理すべきではありません。
 

バージョン管理ツールが開発の起点になる

バージョン管理システムには、開発者の行動の記録が残されています。
バージョン管理のログ(コードチャーン(Code Churn))を分析することで、多くのことが分かります。
例えば、不安定なコードやバグの危険性が高いソースコードはどこか。開発者の開発ペースに増減があるかなどです。
ソフトウェアの品質や開発プロセスの生産性を計測する上で非常に役に立ちます。
また、バージョン管理ツールを起点に開発プロセスの改善を行うことができます。バージョン管理ツールと連携して、CI/CDを回すことで、開発からデリバリーまでの手間と時間を削減することができます。
 
 

バージョン管理ツールのクライテリア