コードベースとは? わかりやすく解説

コードベース

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/13 02:01 UTC 版)

コードベース: codebase)は、ソフトウェア開発では、特定のソフトウェアシステムアプリケーションソフトウェアコンポーネントなどを構築するために使用されるソースコードの集まりのこと。通常、コードベースには人間が作成したソースコードファイルのみが含まれ、ツールによって生成されたソースコードファイル(生成されたファイル)またはバイナリライブラリファイル(オブジェクトファイル)は含まれない。これらは人間が作成したソースコードから構築できるためである。構成ファイルとプロパティファイルはビルドに必要なデータであるため、コードベースに含まれる。

コードベースは通常、バージョン管理システムソース管理リポジトリに保存される。小規模なプロジェクトの場合は、単純なファイルの集まりとして保持される場合がある(Linuxカーネルでさえ長年にわたってファイルの集まりとして維持されていた)[1]。 ソースコードリポジトリは、公的または私的に大量のソースコードが保管される場所であり、バックアップとバージョン管理に使用され、複数人の開発者によるプロジェクトでは、さまざまなソースコードバージョンを処理し、開発者が重複する変更を送信することで発生する競合を解決するのに役立つ。 SubversionGitMercurialは、このワークフローを処理するために使用される一般的なツールの例であり、オープンソースプロジェクトでも一般的である。

明確でモノリシックなコードベース

複数のプロジェクトは、個別の別個のコードベースを持つことも、単一の共有またはモノリシックコードベース持つこともできるこれは特に、同じ会社内で開発されたプロジェクトなどの関連プロジェクトに当てはまる。より詳細には、モノリシックコードベースは通常、単一のリポジトリ(すべてのコードを1か所にまとめたもの)と、多くの場合、共通のビルドシステムまたは共通のライブラリが用意される。コードベースが共有されているか分割されているかは、システムアーキテクチャと実際のビルド結果に依存しない。したがって、実際の開発に関連するモノリシックコードベースは、ソフトウェアアーキテクチャまたは単一のモノリシックバイナリに関連するモノリシックシステムを必要としない。その結果、モノリシックコードベースは、単一のシステムまたは単一のバイナリのみを伝送するのではなく、(大規模なコードベースの場合)個別のコンポーネントで構成される場合がある。分散コードベース(複数のコンポーネントを含む)を利用すると、単一のモノリシックシステムまたは単一のバイナリを構築できる。たとえば、Linuxカーネルは、アーキテクチャ的には単一のモノリシックカーネルだが、個別のバイナリ(ロード可能なコンポーネント)で構成され、複数の分散リポジトリで開発されている。

分散コードベースと比較した場合、モノリシックコードベースには長所と短所の両方がある[2][3]。 最も単純には、モノリシックコードベースは統合が簡単である。異なる構成要素に対する変更やコンポーネント間のコードのリファクタリングを容易かつアトミックに行うことができる。そして全体のコードベースを横断した操作が可能であるが、より大きなリポジトリが必要となる。

個別のコードベースまたは分散コードベースは、個々のリポジトリをより小さく、より管理しやすくし、コンポーネント間の分離が可能になる。一方、コードベース間の統合(またはメインリポジトリとの統合)が必要になり、複数のコードベースにまたがる変更を複雑にする[4]

標準に関して、複数のコードベースが「別個」であるとは、ソースコードの共有がない独立した実装であり、歴史的に、これらの実装は共通のプロジェクトから発展しなかったことを意味する特定の標準を実装する2つの独立したソフトウェアにより、相互運用性を実証することができる。

特に大きなコードベースには、次のものがある。

  • Google: モノリシック、10億ファイル、900万ソースコードファイル、20億行のソースコード、合計3,500万コミット、合計サイズ86TB(2015年1月)[5]
  • Facebook: モノリシック、8GB(履歴を含むレポ54 GB、2014)、[6]数十万のファイル(2014) [3]
  • Linuxカーネル: 分散、[7] 1,500万行を超えるコード( 2013年現在およびカーネルバージョン3.10)

関連項目

脚注

  1. ^ A Short History of Git”. git-scm.com. 2014年10月21日閲覧。
  2. ^ J. David Morgenthaler; Misha Gridnev; Raluca Sauciuc; Sanjay Bhansali (2012). "Searching for Build Debt: Experiences Managing Technical Debt at Google". Proceedings of the Third International Workshop on Managing Technical Debt. IEEE. pp. 1–6.http://research.google.com/pubs/archive/37755.pdf (PDF)
  3. ^ a b Scaling Mercurial at Facebook”. Facebook Code (2014年1月7日). 2016年4月29日閲覧。
  4. ^ Git - Distributed Workflows”. git-scm.com. 2016年4月29日閲覧。
  5. ^ Potvin, Rachel; Levenberg, Josh (24 June 2016). “Why Google stores billions of lines of code in a single repository”. Communications of the ACM 59 (7): 78–87. doi:10.1145/2854146. 
  6. ^ @feross (2014年4月24日). "Facebook's git repo is 54 GB". X(旧Twitter)より2016年4月29日閲覧
  7. ^ Sproull, Lee; Moon, Jae Yun (2000-11-05). “Essence of distributed work: The case of the Linux kernel - Moon - First Monday”. First Monday 5 (11). http://www.firstmonday.org/ojs/index.php/fm/article/view/801/710 2016年4月29日閲覧。. 

コードベース

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/11 15:54 UTC 版)

3DCGソフトウェアの歴史」の記事における「コードベース」の解説

2002年NVIDIACg言語シェーダー編集及び可視化ツールCg Browserリリースし2003年ATI3Dlabs協力してHLSL言語対応シェーダー編集ツールのRenderMonkeyをリリースした2004年NVIDIAは、Cg及びHLSL言語両方編集対応するFX Composerリリースしたその後AMD2008年リリースのRenderMonkey 1.82を最後に、その開発終了した2009年、Geeks3Dは、GLSLシェーダー学習及び実験ツールであるGeeXLabをリリースした2010年NVIDIAFX Composer後継として、Visual Studio拡張NVIDIA Parallel Nsight (後のNVIDIA Nsight Visual Studio Edition)をリリースした2008年Adobeは、Flash及びAfter Effects用のピクセルシェーダーであるPixelBender言語編集向けたPixel Bender Toolkit(英語版)を付属してAdobe Creative Suite 4をリリースした2009年PixarのInigo Quilez及びPol Jeremiasは、WebGLベースとして、GLSL ES言語によるピクセルシェーダー編集/公開環境であるShaderToyリリースした2010年、Mikael Hvidtfeldt Christensenは、AdobePixel Bender触発されて、GLSL言語ピクセルシェーダー編集ツールFragmentariumの開発オープンソース始めた2011年Shadertoy類似の編集環境として、GLSL Sandbox登場した2011年Adobeは、Flash 3D API向けて、PixelBender言語3D版であるPixelBender 3D事前リリース行ったものの、2012年AdobeCreative Suite 6でPixelBenderのサポート終了した2014年、Fragmentariumのクローンとして、オープンソースEclipse IDEベースシェーダー開発ツールSynthclipseリリースされた。

※この「コードベース」の解説は、「3DCGソフトウェアの歴史」の解説の一部です。
「コードベース」を含む「3DCGソフトウェアの歴史」の記事については、「3DCGソフトウェアの歴史」の概要を参照ください。

ウィキペディア小見出し辞書の「コードベース」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「コードベース」の関連用語

コードベースのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



コードベースのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのコードベース (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの3DCGソフトウェアの歴史 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS