Skip to Content
C4モデル (Japanese Edition)
book

C4モデル (Japanese Edition)

by Simon Brown
June 2026
Intermediate
180 pages
2h 27m
Japanese
O'Reilly Media, Inc.
Content preview from C4モデル (Japanese Edition)

第6章 コード 図

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

C4モデルで定義される4つ目にして最後のズームレベルはコードである。本章では、構成要素の内部実装の詳細を示すために使用できるコードレベルの図について説明する。

コード図の主な特徴

コード図の使用目的や使用方法を理解するには、その意図、範囲、コンテンツ、ユースケース、および対象読者を把握しておく必要がある。

意図

コード図の意図は、単一構成要素内のコード構造を視覚化することであり、これにより以下の質問への回答に役立つ。

  • 構成要素はどのようにコードレベルのブロックに分解されるのか?

  • これらのコードレベルの構成要素のうち、構成要素によって外部に公開・露出されるのはどれか、また、内部の実装の詳細はどれか?

  • その構成要素はどれほど大規模で複雑なのか?

範囲

コード図の範囲は、単一の構成要素である。後ほど見ていくように、Java、C#、C++などのオブジェクト指向プログラミング (OOP) 言語を使用している場合、UMLクラス図はコードを視覚化するのに適した方法である。

UMLクラス図は、アプリケーション全体を記述するためにしばしば使用されてきたが、このアプローチが実世界で機能することはめったにない。 数千ものJavaクラスから構成されるJavaアプリケーションがあると想像してほしい。アプリケーション全体を表現するために単一のUMLクラス図を作成すると、数千ものボックスと矢印からなる巨大な図になってしまう。コードの構造がどれほど優れていても、これは誰にとっても特に有用ではない。UMLクラス図を活用する鍵は、その範囲を限定することにある。C4モデルのコード図は、単一の構成要素の内部構造のみを表示するように範囲を限定することで、これを実現している。

コンテンツ

コード図には、使用しているプログラミング言語がサポートする、コードレベルのさまざまな構成要素を示す必要がある。たとえばJavaやC#の場合、パッケージや名前空間内のクラスやインタフェースがそれに当たる。これらの概念を視覚的に表現する独自の方法を考案することも可能だが、OOP言語を使用しているなら、単にUMLクラス図を用いるのが良い方法だ。

注意点として、UMLクラス図には非常に多くの詳細を含めがちであり、特に既に記述されたコードから図をリバースエンジニアリングする場合にその傾向が強い。各クラスのすべてのプロパティやメソッドを含めたくなるかもしれないが、その誘惑に負けず、伝えたいストーリーを伝えるために必要な情報のみを含めるようにすべきだ。 例えば、構成要素の動作を大まかに要約することが目的であれば、通常、すべてのプロパティやメソッドを示す必要はない。

有用な理由

率直に言おう。コードレベルの図を作成する理由はほとんどない。なぜなら、この章の「意図」のセクションで挙げた質問の答えは、通常、コードを見るだけで得られるからだ。私自身、コード図を使うことはめったにない。とはいえ、コード図は、大規模で複雑な構成要素を要約したり、あるいは特定のパターンが構成要素内でどのように機能するかを説明したりするのに役立つ場合がある(これについては後ほど例を見ていく)。

対象読者

お察しの通り、コード図の主な対象読者は、ソフトウェアを構築または保守しているエンジニアだ。このレベルの詳細さは、他の読者層にとっては通常、過剰すぎる。

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.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

製品志向のエンジニア (Japanese Edition)

製品志向のエンジニア (Japanese Edition)

Drew Hoskins
AIプロジェクトの管理 (Japanese Edition)

AIプロジェクトの管理 (Japanese Edition)

Malini Jain Runtasewee, Adrián González Sánchez
AIに適したデータ設計図 (Japanese Edition)

AIに適したデータ設計図 (Japanese Edition)

Navnit Shukla, Kien Pham, Srikanth Sopirala, Harsha Tadiparthi

Publisher Resources

ISBN: 0642572404864