コードベース【code base】

主にプログラミング言語で書かれたソースコードの総体をコードベースという。ツールが自動生成したファイルや、コンパイル後のバイナリファイルは通常は含まれない。一方、動作環境や設定を記述した設定ファイル、テストに必要なコードやデータを記述したテストファイルなどは構築に必要なデータとして含まれることが多い。
コードベースはソフトウェア開発における共通の作業対象であり、開発が進むに連れてコード量が増し、機能追加や仕様変更が積み重なることで構造も変化していく。このため、ソースコードの品質だけでなく、全体の構成や命名規則、ディレクトリ構造、管理ルールや管理ツールなども保守性に大きく影響する。
実際の開発では、Gitなどのバージョン管理システムのリポジトリでコードベースを管理するのが一般的である。変更履歴が記録されることで過去の状態への巻き戻しが可能となり、複数人が同時に作業した際の競合も解消しやすくなる。また、自動テストや継続的インテグレーション(CI:Continuous Integration)、継続的デリバリー(CD:Continuous Delivery)といった仕組みも、コードベースを対象として実行される。
コードベースの構成には大きく二つの形態がある。プロジェクト全体のコードを単一のリポジトリに集約する「モノレポ」(monorepo)は、依存関係の管理が容易で、大規模な変更を一括して加えやすい。一方、機能やサービスごとに複数のリポジトリに分割する「ポリレポ」(polyrepo)あるいは「マルチレポ」(multirepo)は、個別の保守はしやすいが、リポジトリをまたがる変更の管理が複雑になる。
近年では生成AIによるコード補完やコードレビュー支援、コード検索などの技術も普及しつつあり、コードベース全体を解析して修正候補や関連箇所を提示する機能が開発環境に組み込まれる例も増えている。コーディングエージェントの飛躍的な性能向上により、人間を介さずにコードベースを構築していく開発事例も見られるようになっている。