Slide 1

Slide 1 text

Mantendo pacotes em um mono-repositório JavaScript

Slide 2

Slide 2 text

Olá! Eu sou o Baú Caiçara, Pintor de Botões profissional e montador de quebra cabeças nas horas vagas Você pode me encontrar em @mechamobau 2

Slide 3

Slide 3 text

3. Quais ferramentas escolher para um mono-repositório? As muitas opções para se considerar para seu projeto. Agenda 1. O que é um monorepo? A definição e significado do conceito mono-repositório. 2. Como criar um monorepo? Detalhes que devem se considerar para criar um projeto que abriga vários projetos. 3 4. Conclusão Vantagens e desvantagens na estratégia de desenvolvimento com monorepos

Slide 4

Slide 4 text

1. O que é um monorepo? Começando do começo

Slide 5

Slide 5 text

“É um estratégia de desenvolvimento onde a base de código para vários projetos é guardada em um mesmo lugar. 5

Slide 6

Slide 6 text

Exemplo: Um time de front-end 6 © Unsplash

Slide 7

Slide 7 text

Multi-repositórios 7 front-end/ design-system/ design-tokens/

Slide 8

Slide 8 text

Problemas com multirepos ➔ Fragmentação das soluções ➔ Defasagem de dependências ➔ Múltiplas esteiras de desenvolvimento Projetos separados geram dificuldades na sincronização entre produtos de mesmo contexto. 8

Slide 9

Slide 9 text

Mono-repositórios 9 apps root/ libs front-end/ design-system/ design-tokens/

Slide 10

Slide 10 text

2. Como criar um monorepo? O que levar em consideração ao criar seu mono-repositório

Slide 11

Slide 11 text

Você deve avaliar a saúde do seu projeto antes de partir para uma solução como mono-repositórios. 11 Antes de tudo, saiba bem o seu contexto © Unsplash

Slide 12

Slide 12 text

Responsabilidades Dividir as responsabilidades de seus pacotes uma maior qualidade em sua solução. Tamanho da base de código Quanto maior for sua base de código, mais detalhes devem ser levados em consideração durante a criação. O que deve ser considerado em sua avaliação 12 Acoplamento Quanto menos acoplado seu projeto, mais fácil será a divisão de responsabilidades entre seus pacotes.

Slide 13

Slide 13 text

Atualmente existem diversas bibliotecas e projetos focados em mono-repositórios, avalie de acordo com sua necessidade. 13 Considere possíveis ferramentas © Unsplash

Slide 14

Slide 14 text

Sendo uma nova estrutura para o projeto, é necessário migrar sua pipeline de desenvolvimento. 14 Transfira sua pipeline para o novo formato © Unsplash

Slide 15

Slide 15 text

15 1 3 5 6 4 2 Entender o seu contexto Buscar por ferramentas que façam sentido com seu contexto Avaliar as necessidades Iniciar a migração pelo pacote raiz Migrar/Criar pacotes restantes Migrar/Criar pipelines de desenvolvimento

Slide 16

Slide 16 text

Para não martelar prego com furadeira 3. Quais ferramentas devo escolher para meu mono-repositório?

Slide 17

Slide 17 text

Compartilhamento de código Ser possível reutilizar código entre pacotes, sem a necessidade de publicação externa. Algumas considerações para avaliar sua ferramenta Cache local de dependências Capacidade de armazenar as dependências do projeto na primeira instalação. Detecção de pacotes afetados Ser capaz de diferenciar mudanças em pacotes ajustados. Orquestração de tarefas Poder definir a ordem em que pacotes devem ser construídos de acordo com as dependências entre pacotes. 17 Relatório de estrutura Exibir a estrutura do projeto como um todo sem a necessidade de configurações iniciais. Gráfico de dependências Visualizar dependências entre pacotes e tarefas de forma facilitada.

Slide 18

Slide 18 text

Ferramentas disponíveis 18

Slide 19

Slide 19 text

monorepo.tools 19

Slide 20

Slide 20 text

korfuri/awesome-monorepo 20

Slide 21

Slide 21 text

VitorLuizC/bitty 21

Slide 22

Slide 22 text

4. Conclusão

Slide 23

Slide 23 text

Vantagens - Menor barreira de entrada - Refatorações entre pacotes mais fáceis - Cultivo à cultura de compartilhamento entre times O que deve ser considerado em sua avaliação 23 Desvantagens - Tamanho da base de código mais elevado. - Tags em repositórios podem ser defasadas - Maior dificuldade na manipulação do código

Slide 24

Slide 24 text

24 Até mais! Alguma dúvida? Você pode me encontrar em: ➔ @mechamobau ➔ [email protected]

Slide 25

Slide 25 text

Créditos Agradecimento especial ao pessoal que lançou e disponibilizou estes fantásticos conteúdos gratuitamente: ➔ Template da apresentação por SlidesCarnival ➔ Fotos por Unsplash 25