Code like Google does with Nx
Diego Juliao
twitter: @dianjuar
- FullStack JavaScript Engineer 👨🏻🔬
- Angular Package Creator 🅰️📦
- Creator of ng deploy for @npmjs
- Quality Advocate 🥑
- Bike Traveler 🚴♂️
Telegram: @dianjuar
ngx-deploy-npm
How does Google Code?
Case of Study
Distributed on NPM packages
How to manage all those packages
With Separated Repos?
ACME Company
N.I.T Validation Case
ACME Company
N.I.T Validation Case
Countries
Main Problems
- Maintainability
- Scalability
- Agility
- Code Reuse
Solution
Monorepo
A monorepo is a software development strategy where code for many projects are stored in the same repository
Source: Wikipedia
ACME Monorepo
Advantages
- Ease of code reuse
- Cross-project changes
- Collaboration across teams
- Large Scale Refactoring
Modern Tools
# Angular Application
nx g @nrwl/angular:application myapp
# React Application
nx g @nrwl/react:application myapp
# NestJS Application
nx g @nrwl/nest:application myapp
# Express Application
nx g @nrwl/express:application myapp
# Angular Library
nx g @nrwl/angular:library mylib
# React Library
nx g @nrwl/react:library mylib
# Typescript Library
nx g @nrwl/workspace:library mylib
Applications and Libraries
Dependency Graph
- lint
- test
- build
- e2e
Affected
Coming Soon
Bazel
Build and test Java, C++, Android, iOS, Go and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Source: Nx Blog
Conclusion
Conclusion
- Reuse code through our organization
- Cross-project changes
- Ease the maintainability
Monorepo is a just repo with all your projects
Conclusion
- Create Projects and Libs
- Run script only for the affected
- Only for Typescript (for now)
Nx is an Extensible Dev Tools for Monorepos
Conclusion
Nx
Tha
Diego Juliao
twitter: @dianjuar
JavaScript Engineer
Angular Package Creator
Telegram: @dianjuar
twitter: @ngVenezuela
Telegram: @ngVenezuela
Angular Venezuela
Code Like Google Does with Nx - DevFest Medellin
By Diego Juliao
Code Like Google Does with Nx - DevFest Medellin
- 605