グーグルのクラウドを支えるテクノロジー > 第21回 Googleのソースコード管理システム ― Piper/CitC(続編)

2017年7月26日 5:53

※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。
また、編集部はこの内容について正確性を保証できません。

CTC教育サービスはコラム「グーグルのクラウドを支えるテクノロジー > 第21回 Googleのソースコード管理システム ― Piper/CitC(続編) 」を公開しました。

はじめに

 前回に続いて、2016年に公開された学術記事「Why Google Stores Billions of Lines of Code in a Single Repository」をもとにして、Google社内で利用されているソースコード管理システムを紹介します。

 前回説明したように、Googleでは、ほぼすべてのソースコードが単一のリポジトリで管理されており、すべての開発者が共通のソースコードを利用できるようになっています。今回は、このような仕組みがもたらす利点と課題を説明します。

単一リポジトリの利点

 冒頭の記事では、単一のリポジトリを使用する利点として、次のような点があげられています。

•複数バージョンにまたがる依存関係の問題を回避する

•大規模なリファクタリングを可能にする

•プロジェクト間でのソースコードの共有を推進する

 まず、複数バージョンにまたがる依存関係ですが、たとえば、図1左のようなライブラリーの依存関係を考えてみます。アプリケーションAは、内部的に、ライブラリーBとライブラリーCを使用しており、さらに、ライブラリーBとライブラリーCは、どちらも共通のライブラリーDを使用しています。この時、それぞれのライブラリーが別々のリポジトリで独立に管理されているとすると、ライブラリーBとライブラリーCで、前提となるライブラリーDのバージョンが異なる可能性が発生します(図1右)。そうなると、ソフトウェアAをビルドする際は、異なるバージョンのライブラリーDを使い分けないといけなくなります。一般的なビルドツールでは、このような状況は想定されておらず、ソフトウェアAをビルドすることは困難になります。

この続きは以下をご覧ください

https://www.school.ctc-g.co.jp/columns/nakai2/nakai221.html

この記事のキーワード

この記事をシェアしてほしいパン!

人気記事トップ10

人気記事ランキングをもっと見る