Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Criando uma cultura de desenvolvimento madura, ...

Criando uma cultura de desenvolvimento madura, de qualidade e colaborativa em sua organização com Monorepos

O conceito de monorepos é permitir manter o código de diferentes projetos de um mesmo, ou até mesmo, diferentes times. Venha descobrir como usar essa técnica e quais as ferramentas de mercado mais fortes nesse segmento e também algumas boas práticas a serem adotadas

Avatar for Daniel Bertolini

Daniel Bertolini

December 05, 2023
Tweet

More Decks by Daniel Bertolini

Other Decks in Programming

Transcript

  1. Criando uma cultura de desenvolvimento madura, de qualidade e colaborativa

    em sua organização com Monorepos Daniel Bertolini
  2. Whoami Daniel Bertolini Desenvolvedor de Software há +8 anos Arquiteto

    de Front End Tech Lead daniel-bertolini-correia Dan_Bertolini
  3. Histórico do Desenvolvimento de Software Projeto A Monolíto Frontend Backend

    Frontend & Backend Serviço B Microsserviços & Micro Frontend MFE A MFE B MFE C Serviço A Serviço C
  4. Time A Time B Time C Time de Design System

    Time de Segurança Time de Estruturantes Desafio Cultural Organização XPTO
  5. Desafios na Comunicação e Colaboração Gerenciamento de Dependências Falta de

    Padronização de Configurações Possíveis Trade Offs atuais
  6. Aplicação A Repositório A Biblioteca X Repositório X Aplicação B

    Repositório B Aplicação C Repositório C Aplicação D Repositório D Biblioteca Y Repositório Y Definição de Monorepos
  7. Aplicação A Aplicação B Aplicação C Aplicação D Biblioteca X

    Biblioteca Y Definição de Monorepos Mono Repositório
  8. Estratégias de Estruturação de Monorepos Separação por Domínio Funcional Separação

    por Sistema Separação por Tecnologia Integração Completa
  9. Estratégias de Estruturação de Monorepos Separação por Domínio Funcional Separação

    por Sistema Separação por Tecnologia Integração Completa Monorepo Time A Aplicação A Aplicação B Biblioteca X Monorepo Time B Aplicação C Aplicação D Biblioteca Y Monorepo Shared Biblioteca K Biblioteca M Biblioteca L
  10. Estratégias de Estruturação de Monorepos Separação por Domínio Funcional Separação

    por Sistema Separação por Tecnologia Integração Completa Monorepo Sistema A Aplicação A Aplicação B Biblioteca X Monorepo Sistema B Aplicação C Aplicação D Biblioteca Y
  11. Estratégias de Estruturação de Monorepos Separação por Domínio Funcional Separação

    por Sistema Separação por Tecnologia Integração Completa Monorepo Web Aplicação A Aplicação B Biblioteca X Aplicação C Aplicação D Biblioteca Y Monorepo Mobile
  12. Estratégias de Estruturação de Monorepos Separação por Domínio Funcional Separação

    por Sistema Separação por Tecnologia Integração Completa Aplicação A Aplicação B Aplicação C Aplicação D Biblioteca X Biblioteca Y Mono Repositório
  13. Tamanho e Complexidade Velocidade dos processos de CI e CD

    Acoplamento Controle de acesso e permissões Curva de Aprendizado e Maturidade Evolução do CI e CD Desafios de usar Monorepos
  14. Técnicas de Otimização Paralelismo de Processos Construir apenas o que

    foi alterado Cache Submete Alterações Identificação de Projetos Afetados Realiza Build e Teste de Projetos Afetados Realiza Deploy de Projetos Afetados
  15. Gerenciador de Monorepos Suporte extensivo a projetos JavaScript Automações customizadas

    por projeto Nx Cloud (Cache) Builds Incrementais Builds Paralelos nx affected nx release Ferramentas: Nx
  16. Gerenciador de Monorepos Suporte extensivo a projetos JavaScript Cache Builds

    paralelos Versionamento e Publicação de Pacotes Ferramentas: Lerna
  17. Gerenciador de Monorepos Suporte extensivo a projetos JavaScript/Typescript Remote Cache

    & Smart Cache Builds Incrementais Builds paralelos Versionamento e Publicação de Pacotes Ferramentas: TurboRepo
  18. Ferramentas: Bazel Ferramenta de Build Suporte a múltiplas Linguagens Suporte

    a múltiplas plataformas Remote Cache Otimização de Build
  19. Algumas Considerações e Boas Práticas Menos repositórios exige mais maturidade

    Entenda os Trade Offs de cada abordagem e estratégia Coesão pode ser mais importante que o reuso Comece aos poucos