![]() linting, transpilation, bundling, automated testing, continuous integration, docker-based deployments…). Migrating a monolithic codebase into a monorepo quickly gets difficult and iterative if the codebase is large, integrated with a lot of tooling (e.g. building and running tests only on packages that changed. It also enables several workflow optimisations, e.g. This separation makes the interfaces more explicit, and therefore allows to make conscious choices about dependencies between packages. The « monorepo » structure is an interesting compromise: sharing a repository while splitting the codebase into packages. Which can result in unexpected regressions, and code that becomes more and more coupled over time, making it more fragile and harder to maintain. Hence it’s complicated to prevent a change on the code of server A from also impacting server B. SQL adapters), ends up being imported by other servers too. Code that was written for one of them (e.g. What we mean is that there is no separation between the code of each server. ![]() Unfortunately, the source code of these servers is monolithic. it’s also easy to write end-to-end tests that cover more than one server, and include them in the repository, because everything is in the same place. ![]() any update on any server results in a new version of the Docker image, which includes all servers. ![]()
0 Comments
Leave a Reply. |