ti-enxame.com

Como o código no controle de versão deve ser armazenado?

Como o código no controle de versão deve ser armazenado?

amigável ao desenvolvedor? para que o programador possa rapidamente pegar o mais recente e ser capaz de executar a partir de seu editor sem fazer muitas alterações? (como arquivos de configuração apontando para dev DB..etc)

ou

Deve ser amigável de produção? o código-fonte deve ser fácil de implantar no ambiente de produção e, quando o desenvolvedor usar o mais recente, ele deve realizar as alterações de acordo com suas necessidades de desenvolvimento.

19
Pavan G R

Por que escolher ? Deve ser ambos.

Seu ambiente de desenvolvimento deve ser configurado de forma que seja tão fácil quanto fazer checkout, abrir, construir, executar, depurar (por exemplo: nenhum caminho absoluto!). Você pode fazer isso facilmente com diretivas de compilação, classe de configuração + injeção de dependência ou até mesmo truques como perso.config no ASP.NET

Seu script de construção automatizado deve ser personalizado o suficiente para cuidar da configuração de produção específica, limpeza, empacotamento etc.

56
user2567

Quando é um projeto de código aberto onde se espera que as pessoas contribuam, eu certamente optaria por ser amigável ao desenvolvedor.

Meu maior desgosto sobre projetos de código aberto é que muito raramente o repositório contém todas as dependências necessárias para construir o código (às vezes por razões práticas ou legais), mas quando não o fazem - alguns nem se importam em dizer quais dependências você precisa, ou mais importante, qual versão deles você precisa. (e de preferência de onde obtê-los)

Às vezes, você pode passar mais de meio dia buscando e compilando vários outros projetos para construir o projeto que está procurando.

Claro, isso é realmente relevante apenas para desenvolvimento no Windows.

9
Mark H

Ambos, mas depende da frequência com que você faz sua produção. Para muitos aplicativos personalizados, as implantações são feitas manualmente e localmente. Por outro lado, o desenvolvedor fará commits de código constantemente, não importa quão pequeno ou grande seja o projeto. Em minha opinião, acho mais importante garantir que o desenvolvedor possa usar o controle de versão corretamente, portanto, tornar sua vida mais fácil para que eles tenham tempo para se concentrar no código em vez de encontrar o caminho através do controle de versão.

4
tia

Deve ser amigável à produção, caso contrário, é problemático manter compilações automatizadas.

1
sharptooth

Sou totalmente a favor de reduzir o atrito para que seja mais fácil realizar o trabalho, mas você também precisa levar em consideração os modos de falha.

Se a versão do repositório de origem estiver sempre configurada para uso em produção, qual é o resultado de um desenvolvedor não reconfigurar antes de executar o sistema? Um desenvolvedor executando código contra a produção.

Independentemente de haver outros obstáculos no caminho do desenvolvedor ao fazer alterações aleatórias na produção, parece perigoso construir um modo de falha que incentive isso a acontecer.

Eu sugiro que os valores padrão incluídos no código confirmado devem ser sempre seguro. Verifique os arquivos de configuração de produção no controle de origem também, se quiser - quase sempre faço isso - mas mantenha-os em algum lugar "não ativo".

1
Bevan

Definitivamente amigável ao desenvolvedor, com scripts para automatizar mudanças para controle de qualidade e produção.

0
William Payne

Tendo a me esforçar para ser amigável à produção. Ele mantém suas compilações limpas e evita que configurações estranhas entrem em produção.

0
Mike Clark