Codebase Explained

A codebase (or code base) is a collection of source code that is maintained as a unit. Typically, it is used to build one or more software components including applications and libraries.

A codebase is often stored in a source control repository of a version control system. A repository can contain build-generated files (which are therefore not source code), but typically such files are excluded from a repository, and therefore the codebase. A repository may contain data files (such as configuration) that are required for building or running the resulting software. But version control is not a required aspect of a codebase. Even the Linux kernel was maintained without version control for many years.[1]

When developing multiple components, a choice is made either to maintain a separate, distinct codebase for each, or to combine codebases, possibly in a single, . With a monolithic codebase, changes to (i.e. refactoring) multiple components can often be easier and robust. But this requires a larger repository, and makes it easier to introduce wide-ranging technical debt. With separate codebases, each repository is smaller and more manageable. The structure enforces logical separation between components, but can require more build and runtime integration between codebases, and complicates changes that span multiple components.[2] [3] [4]

Examples

Some notably large codebases include:

See also

Notes and References

  1. Web site: A Short History of Git . October 21, 2014 . git-scm.com.
  2. Searching for Build Debt: Experiences Managing Technical Debt at Google. J. David Morgenthaler. Misha Gridnev. Raluca Sauciuc. Sanjay Bhansali. amp. 2012. Proceedings of the Third International Workshop on Managing Technical Debt. 1–6. IEEE. 10.1109/MTD.2012.6225994.
  3. Web site: Scaling Mercurial at Facebook. Facebook Code. 29 April 2016. 2014-01-07.
  4. Web site: Git - Distributed Workflows. git-scm.com. 29 April 2016.
  5. Potvin. Rachel. Levenberg. Josh. Why Google stores billions of lines of code in a single repository. Communications of the ACM. 24 June 2016. 59. 7. 78–87. 10.1145/2854146. free.
  6. feross . 459259593630433280 . April 24, 2014 . Facebook's git repo is 54 GB. . 29 April 2016.
  7. Essence of distributed work: The case of the Linux kernel - Moon - First Monday. 5. 11. First Monday. 29 April 2016. 2000-11-05. Sproull. Lee. Moon. Jae Yun.