-
Notifications
You must be signed in to change notification settings - Fork 0
1.1.Setup new repo
Hùng Lưu edited this page Mar 16, 2021
·
5 revisions
Codebase/ Setup new repo
Repo's permissions should carefully selected on initilization due to differences in businesses, concerns and stages among our products. We prefer whitelisting over blacklisting approach, please select which people or teams can access or which type of accesses they have.
There are 2 common types of repo, the micro-repo
(1) and mono-repo
(2):
-
micro-repo
(1) This classic guy works well for most of applications, but simple isn't always best, especially when you need to separate concerns into domains (single-responsibility packages) -
mono-repo
(2) is our common choice, perfect for necessarily sharing code and build processes / environments within a singular product, while effectively grouped its related components / packages into one place. It may come with some cons to be provisioned:- "humans struggle to tangibly understand domains that are theoretically separate when they are presented as colocated by the source code." (see "Microservices Architectural Patterns" Article)
- Most of the available CI services won't distinguish / makes difficult to run tests for a particular app in a monolithic repository - we actually have to take notice of this, and facilitate this in our stuff.
- App repo
- Lib repo
For the most projects we're having,