DEV Community

Cover image for Monorepo: Uma Armadilha Disfarçada de Praticidade (Anti-pattern)
Jhones Gonçalves
Jhones Gonçalves

Posted on

1

Monorepo: Uma Armadilha Disfarçada de Praticidade (Anti-pattern)

Introdução:

Nos últimos anos, o conceito de monorepositório, ou monorepo, tem sido propagado como uma solução para todos os males do desenvolvimento de software. No entanto, neste artigo, desafiaremos essa narrativa, expondo as armadilhas e desvantagens associadas ao uso do monorepo em contextos onde ele muitas vezes se revela mais um problema do que uma solução.

Image description
Figura 1: O "Monorepo" como uma solução única.

Estrutura monorepo:

monorepo/
|-- api/
|   |-- index.js
|   |-- package.json
|
|-- frontend/
|   |-- index.html
|   |-- main.js
|   |-- package.json
|
|-- package.json

Enter fullscreen mode Exit fullscreen mode

A estrutura gera uma falsa sensação de organização porem isso se torna um pesadelo pois você tem tudo em um só lugar onde os commits, as branchs , os conflitos estão tudo em um só lugar.

Desvantagens do Monorepo:

Escala Descontrolada:

À medida que um projeto cresce, o monorepo pode se transformar em uma fera incontrolável. O aumento de escala frequentemente resulta em tempos de compilação e testes mais longos, prejudicando a eficiência do processo de desenvolvimento.

Complexidade Crescente:

A ideia de centralizar tudo em um único repositório pode parecer atraente, mas a complexidade associada a isso pode rapidamente se tornar esmagadora. Manter uma visão clara e concisa do código em um monorepo pode ser uma tarefa hercúlea.

Dificuldades na Adoção Gradual:

Migrar para um monorepo é uma tarefa complexa, especialmente para projetos já existentes. A transição abrupta pode levar a períodos de instabilidade e desorientação na equipe.

Controle de Acesso Complicado:

Garantir que as equipes certas tenham acesso às áreas apropriadas do código pode se tornar uma dor de cabeça. O controle de acesso e permissões no contexto de um monorepo pode se tornar um desafio, especialmente em organizações maiores.

Dificuldades no Processo de Deploy:

Com o monorepo, torna-se muito desafiador a construção de pipelines, visto que o projeto ganha uma complexidade enorme com vários projetos em um só lugar.

Image description
Figura 2: Desafios no processo de Deploy.

Dificuldades na Estratégia de Branchs:

Com o monorepo, a estratégia de branches se torna muito complicada devido ao grande volume de alterações dentro do repositório.

Messy

🏆 Conclusão:

Em um mundo onde o monorepo é frequentemente apresentado como uma bola de prata para os desafios do desenvolvimento de software, é crucial questionar se essa abordagem é sempre a melhor escolha. Projetos menores, equipes reduzidas e contextos onde as fronteiras entre componentes são claras muitas vezes se beneficiam mais de alternativas mais flexíveis. Ao considerar a implementação de um monorepo, é fundamental pesar os benefícios em relação às possíveis armadilhas e avaliar se essa abordagem se alinha verdadeiramente com as necessidades específicas do projeto em questão.

🚨 Cuidado com o Monorepo! Avalie suas necessidades antes de se comprometer. 🚨

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs