IT業界でベンチャービジネスの支援をしている執筆者が日々の活動ログと感じたことを、徒然なるままに書き綴っていきます。

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

»

私がCTC教育サービスで編集支援している中井悦司さんのコラム「グーグルのクラウドを支えるテクノロジー > 第21回 Googleのソースコード管理システム ― Piper/CitC(続編) 」が公開されました。

Googleクラウドは今注目を集め始めています。米国ではAWSの顧客満足度を超え、AWSのシェアを削っていく存在になってきています。興味がある方は是非!

###

はじめに
 前回に続いて、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

Comment(0)

コメント

コメントを投稿する