A monorepo is a software development strategy where code for many projects are stored in the same repository.
Definitions vary, but we define a monorepo as follows:
- The repositorycontains more than one logical project. (e.g. an iOS client and a web application)
- These projects are most likely unrelated , loosely conected or can be connected by other means (e.g. via dependency management tools)
The repository is large in many ways:
Number of commits
Number of branches and/or tags
Number of files tracked
Size of content tracked (as measured by looking at the .git directory of the repository)
Google, Facebook ,Twitter, Uber, Microsoft and many well recognized companies use big monorepos.
Pros
- Ease of Code reuse
- Simplified dependency management
- Atomic level commits
- Large Scale code refactoring
- Collaboration across teams
Cons
•
Loss
of version information
•
Lack of
per-project security
•
More
storage needed
References:
No comments:
Post a Comment