df-ffclrp / SisDF

Sistema de chamados (tickets) para o Departamento de Física - FFCLRP - USP
7 stars 6 forks source link

Boas práticas: Não versionamento local das bibliotecas de terceiros do frontend (pasta assets) #10

Closed thiagogomesverissimo closed 1 year ago

thiagogomesverissimo commented 7 years ago

dica: utilizar o bower para configurar dependências

masakik commented 7 years ago

Uma pergunta: no servidor de produção você usa git pull direto? Pois nesse caso me parece interessante manter as bibliotecas de terceiros para que não precise rodar o bower no servidor. Também permite controlar melhor a atualização dessas bibliotecas. Me corrijam se eu estiver errado.

girol commented 7 years ago

@masakik tudo bem? Na verdade eu estou usando um repositório bare em produção e dou git push pra ele. No repositório, tem um hook post-receive que faz o seguinte:

#!/bin/bash
GIT_WORK_TREE=/pasta/do/projeto/SisDF git checkout -f
thiagogomesverissimo commented 7 years ago

@masakik na verdade é o contrário, você controla melhor a versão de biblioteca externas com package managers, por isso, todas linguagens tem um: pip, gems, composer etc. Por exemplo, nesse projeto do @girol, olhe a pasta www/assets e me diga qual versão do bootstrap ou do jquery esse projeto usa, não da para saber de cara. Se tivesse um bower.json seria muito mais fácil. Facilita a vida do outro dev, caso queira usar um recurso da versão x.x.x do jquery, por exemplo, até achar a versão que está versionada, lá se foram aqueles preciosos minutos gastos com problema de versão de biblioteca. Além disso, versionando esses pacotes vendor, você coloca um step desnecessário no lógica de versionamento.

No script post-receive de deploy do @girol ele colocaria mais duas linhas:

#!/bin/bash
GIT_WORK_TREE=/pasta/do/projeto/SisDF git checkout -f
cd /pasta/do/projeto/SisDF && composer install
cd /pasta/do/projeto/SisDF && bower install
girol commented 7 years ago

Sim, tem essas facilidades, mesmo... Eu não ainda aprendi por falta de tempo. Mas depois das dicas do @thiagogomesverissimo eu vou implementar.

Vejo que esse gerenciamento de dependências é muito útil no Python por exemplo. O pip instala tudo pra vc de forma simples.

masakik commented 7 years ago

Entendi. Blz.