, 17 tweets, 3 min read Read on Twitter
Já ouviu falar de #monepo? Existem muitos mitos a respeito desse tema, nessa tread eu espero quebrar vários deles:
Monorepo é a ideia de manter em um único repositório diversos projetos, normalmente interdependentes, mas não necessariamente.
Monorepo não é uma coisa do passado, diversas das maiores empresas de tecnologia usam essa técnica e diversas novas ferramentas Open Source estão surgindo para dessas mesmas empresas.
Google, Facebook e Twitter são exemplos de três empresas que usam apenas UM monorepo para a empresa INTEIRA! Enquanto Microsoft e outras usam monorepos por contextos menores.
Monorepos por contextos podem ser usados de diferentes maneiras dependendo da empresa, com cortes horizontais (por stack ou plataforma) ou verticais (por negócio ou canal).
Monorepo é a melhor maneira de gerenciar a interdependência entre seus projetos e organizar suas dependências externas, o que no mundo do #FrontEnd é especialmente bom!
Algumas pessoas dizem q é muito fácil um projeto quebrar o outro num monorepo, o que eu discordo, monorepo vai te ajudar a perceber da maneira mais rápida quando isso acontecer, não facilitar.
A melhor maneira de impedir que projetos se quebrem são testes automatizados: unitários, integrados e e2e! E isso vc deveria ter independente se ta usando monorepo ou não.
Algumas pessoas acham q num monorepo tudo vira terra de ninguém, todo mundo vai mexer em qualquer coisa, já q não temos mais controle por repositório
Mas essas pessoas esquecem que a muito tempo já é possível gerenciar controles por pasta, tipos de arquivo e etc, seja no github ou outros providers, da uma olhada aqui:

help.github.com/en/articles/ab…
Monorepo e monolitos não tem nada a ver uma coisa com a outra, uma coisa é sua organização de repositório, outra coisa é a arquitetura doa projetos q vai ter dentro dele.
Se não fosse assim não teríamos as grandes empresas como Google, Facebook e Twitter apostando tão forte nessa estratégia.
Usar monorepo não significa necessariamente q vc vai ter de sempre baixar todo o código na sua máquina e buildar tudo localmente.
Existem diversas ferramentas Open Source de monorepo, varias delas permitem baixar buildar e executar localmente só o que você precisa, e ainda configurar providers na nuvem para cachear os builds e executar novos em paralelo na nuvem.
Usar monorepo não significa q sua CI e CD sempre buildar, testar e publicar tudo toda vez existem muitas ferramentas que verificam o impacto de um Pull Request e te da a lista de projetos impactados direta ou indiretamente.
Ferramentas como o @NxDevTools pode te dar um grafo visual da interdependência dos seus projetos e rodar só o q for necessário na sua CI, fazendo com q uma só pipeline para vários projetos num mesmo monorepo seja bem leve:

nx.dev/angular/guides…
Por enquanto é isso, se lembrar de mais alguma coisa, ou tiverem qualquer dúvida é só mandar! 😄😉🤘
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to William Grasel
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!