Sobre Design System, bit.dev e sincronização de componentes #1691
Replies: 16 comments
-
Eu gosto bastante do storebook. Porém isso tudo aí é uma guia de estilo.
Acho muito louco a galera tá confundindo o que realmente é um DS de um guia
de estilo.
Em Qui, 13 de fev de 2020 12:02, Felipe Fialho <[email protected]>
escreveu:
… Oi amgs, como estão?
Nos últimos dias tenho lido bastante sobre Design System e tentado me
aprofundar no tema.
Todas as vezes que iniciei um DS, os processos eram meio manuais, ou
seja...
- Repositório com a lib de componentes
- Publicação das alterações em pacotes no NPM
- Update da dependências nos projetos que utilizam
Isso funciona bem numa escala pequena, mas é um pouco complicado em
projetos com muitas pessoas atuando ou quando é usado em vários lugares.
Com isso comecei a verificar algumas possibilidades para melhorar esse
fluxo de sincronização quando Monorepo não é uma opção. E apesar de já
conhecer antes, o bit.dev tem ganhado minha atenção.
Alguém já usou?
Podem comentar suas experiências?
Vale o preço?
Ja usaram outra alternativa nessa linha?
Obrigado!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<https://github.com/frontendbr/forum/issues/1691?email_source=notifications&email_token=AESKPRPJKL7K32WHLQD32ETRCVOJVA5CNFSM4KUUNKT2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4INJJNIA>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AESKPRNGIARSLCQ464B6VT3RCVOJVANCNFSM4KUUNKTQ>
.
|
Beta Was this translation helpful? Give feedback.
-
Passei por isso a tempinho atrás e no final das contas decidi que a melhor opção para mim era um Monorepo. Me interessei bastante pelo bit, mas depois que vi que a versão free era bem limitada (pelo menos na época) deixei pra lá. Com esse tipo de arquitetura todo o processo de deploy e atualização de projetos fica muito fácil além de que é possível saber algo vai quebrar antes mesmo de publicar um package em qualquer lugar -- além de o processo de publicação nem ser obrigatório até você precisar de diferentes versões de um package em um projeto Escrevi aqui como montei a minha arquitetura em Monorepo: |
Beta Was this translation helpful? Give feedback.
-
Ainda acho que monorepo ainda é uma saída mais viável quando é um projeto só. Para diferentes projetos com diferentes repositórios pegando componentes do mesmo repositório, neste cenário sim acho que vale a pena criar um repositório só pros componentes, porém começa a ter a necessidade de publicar isso pra algum registro (npm). Também acompanho de longe o bitsrc e curto bastante a idéia que ele traz, mas não sei se vale a pena em relação a preço pois não cheguei a usá-lo a fundo. Se ter cada componente como um pacote, monorepo já satisfaz. Só pensar em deixar tudo da aplicação (seja componentes ou qualquer código) o menor possível e modularizado, e cada módulo virar pacote dentro do monorepo. Também utilizo tanto |
Beta Was this translation helpful? Give feedback.
-
Legal a forma como todos vem entendendo a necessidade de fazer o design system. |
Beta Was this translation helpful? Give feedback.
-
Então, o npm é pago, US$ 7 por usuário para pacotes privados e o do GitHub tá em beta. Mas tem como levantar registros privados dentro da rede, creio que os mais famosos são: Acho que sendo privado, ninguém externo acessaria por meios convencionais. Só claro, tomar cuidado para não subir nenhuma |
Beta Was this translation helpful? Give feedback.
-
Eu penso que vale a pena para empresas gigantes com diversos projetos diferentes, fora isso é queima de tempo. No nosso pequeno time nós temos uma bibliotecas de milhares de components num monorepo que não é publicado no NPM, é coisa interna. Usamos um style guide homemade parecido com Storybook que lista os principais componentes com diversos use cases, e só. Design Systems e publicação de components são coisas muito caras e totalmente desnecessárias pra maioria dos projetos. |
Beta Was this translation helpful? Give feedback.
-
Estou começando a fazer um Design system e acredito que devo seguir mais ou menos essa lógica.
E para ver rodando, criar algum projeto básico para ver como vai ficando. O que acham? |
Beta Was this translation helpful? Give feedback.
-
Você pensa em criar os componentes tudo com scss ou css? Eu tentaria fazer os componentes com Vanilla JS ou React (estilizando com Styled-components), mas isso depende da stack do seu time.. eu acredito. |
Beta Was this translation helpful? Give feedback.
-
No caso eu preciso que seja apenas CSS, vou usar o SCSS para facilitar o desenvolvimento e buildaria para CSS pra usar na minha aplicação. |
Beta Was this translation helpful? Give feedback.
-
Experimentamos o bit.dev ano passado, é muito difícil incorporar ele em projetos de diferentes contextos, a fragmentação de código e especificidade de cada contexto é bem única no nosso caso, e isso tornou a solução inviável, por enquanto. Uma "alternativa" que usamos, e que acho q surtiu mais efeito (embora tenha sido em um projeto só) foi monorepo contendo um pacote de shared components com documentação pelo vuepress. Encaixou bem melhor no fluxo de trabalho. |
Beta Was this translation helpful? Give feedback.
-
Obrigado @klarkc Mas acha que o bit.dev poderia "quebrar um galho" num projeto em andamento enquanto uma estrutura de monorepo é desenvolvida? |
Beta Was this translation helpful? Give feedback.
-
Enfrentamos alguns problemas para importar libs internas/externas na ferramenta, e o debug na ferramenta ainda era bem complicado tomando muito tempo. Mas se isso n for um problema pra vcs é bem possível. Até abri essa sugestão a fim de melhorar isso. |
Beta Was this translation helpful? Give feedback.
-
A solução que adotamos aqui na empresa foi ter uma instancia própria do Verdaccio e criamos uma lib com o TSDX. Assim fica fácil manter uma lib compartilhada em vários projetos sem precisar abrir o projeto publicamente. Uma vantagem dessa abordagem, pelo menos pro nosso time, é não ter que gerenciar uma estrutura de monorepo e modificar o workflow que cada projeto já utilizava. Fora que com uma instancia do nosso próprio registry é possível ter várias libs diferentes pra propósitos diferentes com versionamento próprio, e compartilhar vários helpers entre as aplicações. |
Beta Was this translation helpful? Give feedback.
-
Deixo aqui minha opinião sobre o que aprendi de Design System no geral e alguns pontos importantes no processo:O conceito:
O que deu certo, e o que não deu:
Sobre ferramentas:
Minhas considerações finais:
Ficou extenso mas tem bastante coisa legal que aprendi sobre o assunto que pode encurtar o caminho pra quem ainda não passou por isso! 😄 |
Beta Was this translation helpful? Give feedback.
-
Linkando essa issue #1506 acho que faz sentido os insights que temos aqui tb... 😄 |
Beta Was this translation helpful? Give feedback.
-
Um cara que estou querendo testar a um tempo é esse Tailwind CSS, por ser baixo nível (mas não tão baixo quanto o Vanilla CSS ou JS), ele se encaixa bem com a ideia de um design system adaptável a qualquer contexto. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Oi amgs, como estão?
Nos últimos dias tenho lido bastante sobre Design System e tentado me aprofundar no tema.
Todas as vezes que iniciei um DS, os processos eram meio manuais, ou seja...
Isso funciona bem numa escala pequena, mas é um pouco complicado em projetos com muitas pessoas atuando ou quando é usado em vários lugares.
Com isso comecei a verificar algumas possibilidades para melhorar esse fluxo de sincronização quando Monorepo não é uma opção. E apesar de já conhecer antes, o bit.dev tem ganhado minha atenção.
Alguém já usou?
Podem comentar suas experiências?
Vale o preço?
Ja usaram outra alternativa nessa linha?
Obrigado!
Beta Was this translation helpful? Give feedback.
All reactions