Skip to Content
Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス
book

Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

by Titus Winters, Tom Manshreck, Hyrum Wright, 竹辺 靖昭, 久富木 隆一
November 2021
Intermediate to advanced
684 pages
10h 37m
Japanese
O'Reilly Japan, Inc.
Content preview from Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

21章依存関係管理

Titus Winters 著

Lisa Carey 編

 依存関係管理、言い換えればライブラリーやパッケージや管理外の依存関係が形成するネットワークの管理は、ソフトウェアエンジニアリングにおける、理解が最も進んでおらず最も難解な問題に属する。依存関係管理が対象とする問題は以下のようなものだ。外部の依存関係の各バージョン間での更新はどうやって行うか。バージョンといえば、各バージョンはどう記述するのか。依存関係内ではどんな類型の変更が許容または期待されるのか。他の組織が生産したコードに依存するのが賢明な場合をどうやって決めるのか。

 比較として、依存関係管理に最も近接した関連トピックは、ソースコントロールである。双方の領域とも、ソースコードを扱う作業をどのように行うかを記述するものだ。ソースコントロールが取り扱うのは最も簡単な部分で、何かをチェックインするのはどこか、何かをビルドに入れるにはどうすればよいか、等だ。トランクベース開発の価値さえ受け入れてしまえば、組織にとっての日常的なソースコントロールの問題の大半は「新しいものがあるんだけどどのディレクトリーに追加すればいいかな」程度のかなり平凡なものとなる。

 依存関係管理は、時間とスケールの双方に、さらなる複雑性を加える。トランクベースのソースコントロールの問題では、コード変更を行う際にはテストを実行し既存コードを破綻させないようにする必要があるという要件が、それなりに明確である。その要件は、共有コードベース内で作業しており、ある物がどのように利用されているかについての可視性があり、ビルドの発動とテストの実行ができるという観念に基づいている。依存関係管理が対象とするのは、自分の組織の外にある、アクセスも可視性も十分にはない場所でコード変更が行われている場合に生ずる問題群である。上流の依存関係が自分のプライベートなコードと整合性が取れないために、ビルドを破綻させてテストを失敗させる可能性がある。そんな場合をどう管理すればよいだろうか。外部の依存関係は取り入れるべきではないのだろうか。外部の依存関係に向かって各リリース間での一貫性を増すよう要請するべきだろうか。新バージョンへのアップデートはいつ行うか。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

サイトリライアビリティワークブック ―SREの実践方法

サイトリライアビリティワークブック ―SREの実践方法

Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara, Stephen Thorne, 澤田 武男, 関根 達夫, 細川 一茂, 矢吹 大輔, 玉川 竜司
プログラミングRust

プログラミングRust

Jim Blandy, Jason Orendorff, 中田 秀基

Publisher Resources

ISBN: 9784873119656Other