Os desenvolvedores criam scripts para ajudar em seu trabalho. Por exemplo, para executar o Maven com certos parâmetros, eliminar tarefas em segundo plano desnecessárias que surgem no desenvolvimento ou conectar-se a um determinado servidor. Os scripts não são scripts de construção principais nem são usados em nosso servidor de Integração Contínua.
Qual é a melhor maneira de gerenciá-los? Para colocá-los em um diretório (talvez /scripts
) e verificá-los no Git? Para mantê-los separadamente em algum servidor de arquivos?
O argumento para tratá-los como código-fonte é que eles são fonte e podem mudar. O argumento para não fazer isso é que elas são apenas ferramentas auxiliares e que nem todos os desenvolvedores precisam de um determinado script (por exemplo, scripts específicos do Linux, onde alguns desenvolvedores trabalham no Windows).
fonte
Respostas:
Os scripts de desenvolvedor também entram no controle de versão, porque geralmente esses scripts também dependem dos itens no controle de versão, por exemplo, caminhos de arquivo.
Se esses scripts são versionados, eles também devem trabalhar para todos os desenvolvedores, para evitar que cada desenvolvedor grave seu próprio conjunto de scripts, o que se torna um inferno de manutenção.
Além disso, as correções ou melhorias desses scripts são lançadas automaticamente para todos os desenvolvedores via controle de versão.
fonte
Além da resposta do @ simon.
Nem tudo na engenharia de software é sobre programação, design ou modelagem. Há uma infinidade de tarefas que realizamos continuamente durante o dia útil. Você já mencionou um - criando o projeto fora do IDE -, mas há muitos mais.
Desenvolvedores experientes / proativos tendem a automatizar essas tarefas. Alguns até constroem ferramentas quando essas tarefas se tornam parte do SDLC e são tediosas - e propensas a erros - a serem feitas manualmente. Os programas são bons em fazer trabalhos repetitivos, por mais tediosos que sejam. Nós - humanos - não somos tão bons.
Essas ferramentas / scripts têm outros efeitos colaterais positivos
Portanto, sim, os scripts devem estar no SCM e devem ser mais uma ferramenta na caixa de ferramentas do desenvolvedor.
Em relação à pasta,
/scripts
eu diria que isso não importa. Para simplificar, deixo-os no diretório raiz do projeto, para que todas as rotas declaradas nos scripts sejam relativas à pasta do projeto. Se eu precisar de acesso a pastas ou arquivos externos, crio links diretos .Pontos a considerar antes de verificar os scripts no SCM.
Por segurança, verifique se os scripts não têm credenciais codificadas - idealmente, os scripts devem ser bem parametrizados -
Certifique-se de que os scripts não façam coisas estranhas no sistema, como, por exemplo, para executar comandos que não podem ser desfeitos (o mais típico
rm -rf
).Uma vez que estes se tornam parte da fonte do projeto, a documentação é muito apreciada.
Script não é ciência do foguete. Faça scripts concisos. Em vez de alguém para governá-los todos ... e na escuridão prendê-los , faça mais, menor e conciso. Como se você estivesse aplicando SRP.
fonte
Vou oferecer uma opinião um pouco mais negativa. Por um lado, é claro que os scripts de desenvolvedor genéricos, eficazes e úteis devem ser compartilhados com outros desenvolvedores, e a melhor maneira de fazer isso é fazê-los sentar com o código no mesmo repositório.
No entanto, eu definiria um nível alto de entrada para que os scripts fossem confirmados. Scripts são códigos, assim como o próprio software. Isso significa que eles precisam ser tratados de maneira semelhante a outros trechos de código:
Há várias considerações adicionais que se aplicam mais aos scripts do que ao próprio software:
Para resumir, os scripts podem ser muito úteis para um desenvolvedor individual, mas o compartilhamento como parte da própria base de código pode ser uma tarefa muito mais difícil e potencialmente causar mais problemas do que os resolvidos.
fonte