Recentemente, tive uma discussão com um colega de trabalho sobre o controle de versão de aplicativos da web.
Eu não acho que você precise disso, e se você quer apenas uma verificação de sanidade para confirmar que seu último lançamento está ao vivo, acho que uma data (YYMMDD) provavelmente é boa o suficiente.
Estou fora da base? Estou perdendo o ponto? Devo usar números de versão de aplicativos da web
fonte
Se você pode automatizar o número da versão nas DLLs do seu aplicativo, isso não será prejudicial. Isso ajudará você a acompanhar as versões.
Geralmente, os aplicativos Web são lançados apenas em um local em que você os hospeda, portanto, não é tão importante quanto um aplicativo de desktop. Pode ajudar com retrocessos, rastreamento de erros (ou seja, em qual versão estava) e acompanhar a diferença entre os servidores de desenvolvedor, preparo e produção, se aplicável.
Eu gostaria de automatizá-lo - é o tipo de coisa que você pode configurar uma vez e usá-lo se / quando precisar.
fonte
Seus usuários não se importam com os números de versão, pois sempre têm a versão mais recente e melhor, mas você deve a si mesmo (e à sua equipe) saber exatamente qual versão está sendo executada ao vivo. Eventualmente, sua fonte de desenvolvimento fica fora de sincronia com o código ativo e você definitivamente deve saber. Então, rotule seus lançamentos na sua árvore svn / git e marque o aplicativo Web com essa tag.
fonte
Se você tem instâncias de desenvolvimento / teste, é muito importante que os membros da equipe do projeto possam ver qual construção / revisão estão testando.
fonte
Além do que os outros disseram, eu acrescentaria que o controle de versão também é importante do ponto de vista de marketing. Uma nova versão é algo novo que pode ser comercializado para clientes em potencial ou existentes. Permite que os clientes saibam que algo é "novo" e veem que as coisas estão avançando. Ele fornece bons agrupamentos de novos recursos. E parece mais profissional.
fonte
Eu digo que, para qualquer coisa, menos um aplicativo da Web trivial, você deve fazer a versão. Existem duas noções um pouco diferentes em ação aqui:
Independentemente da situação, acredito que os arquivos devem ter números individuais de versão (ou revisão). Idealmente, isso seria tratado automaticamente pelo seu sistema de controle de versão. Como foi afirmado por outros, é mais fácil consultar o número da versão do arquivo do que a data e a hora.
Se você possui (ou pode ter) mais de uma instalação ativa do aplicativo, ele deve ser versionado como um todo. Essa também é uma boa prática se você tiver ambientes de desenvolvimento e teste separados (como você provavelmente deveria). Cada número de versão do aplicativo (ou release) refere-se a uma coleção de arquivos individuais em números de versão específicos. Embora lidar com tudo isso seja um fardo extra, é mais fácil fazer check-out de uma versão específica do que arquivos individuais em números de revisão específicos.
Isso me faz pensar em uma noção de linguística. Dizem que se você não pode expressar algo em um idioma, não pode pensar nisso (nesse idioma). Penso na palavra alemã "Schadenfreude". É muito mais fácil pensar (e falar) dessa noção de "sentir alegria devido ao infortúnio de outra pessoa" referindo-se a essa palavra do que à sua definição. Essa é a razão pela qual a palavra entrou em uso no idioma inglês.
Da mesma forma, os números de versão facilitam a fala (e a reflexão) do seu aplicativo e de seus arquivos em estados específicos. Se você é uma equipe de uma pessoa, trabalhando em um aplicativo, provavelmente não faz uma grande diferença. No entanto, à medida que as coisas ficam mais complicadas, é melhor ter esses rótulos disponíveis para uso.
fonte
Você deve versionar seu aplicativo da web com o ID de construção do servidor de construção e ter esse ID incluído em todos os relatórios de erros.
Isso permitirá que você volte no tempo, caso precise corrigir um bug relatado em uma versão mais antiga que não está presente na produção.
fonte
Da sua pergunta, é claro que você tem em mente um aplicativo da web simples
Acessível apenas por uma GUI da Web e não por uma API da Web (serviço) . Se você tiver usuários acessando o aplicativo usando uma API, precisará fazer a versão. Se você alterar a API, interromperá os clientes, portanto, precisará manter uma versão diferente da API ao mesmo tempo.
Apenas uma instância em execução no momento . Mesmo se você tiver apenas o cara da web, se tiver mais instalação, precisará saber qual cliente está executando qual versão.
Com tempo de inatividade aceitável para atualização da versão ao vivo. Existe um problema possivelmente enorme que é o banco de dados . Alterações importantes nas versões mais recentes vêm com alterações na estrutura subjacente dos dados. Se você tiver apenas uma versão em execução no momento, provavelmente precisará desativar a versão antiga, atualizar o banco de dados e ativar a nova versão. O que resulta em tempo de inatividade do aplicativo. Isso pode ser aceitável dependendo do número e tipo de usuários.
fonte
Temos apenas o primeiro, portanto, use apenas o número da versão para verificar a integridade após a liberação. Não precisamos rastrear muitas versões em uso ao mesmo tempo.
fonte
Se o seu aplicativo da Web consistir em vários módulos, tanto no cliente quanto no servidor, cada módulo deverá ser versionado. E cada combinação de versões de módulo no cliente e no servidor deve receber um ID exclusivo, um ID que deve estar presente em todas as mensagens de log e erro.
Ao usar essa convenção, sempre será possível recriar o estado em que o aplicativo Web estava em um determinado momento.
Na minha opinião, como os aplicativos da Web atualmente são criados usando linguagens dinâmicas dos dois lados, servidor e cliente, não deve haver motivo para recarregar um aplicativo da Web atualizado, a menos que o usuário reinicie o navegador ou recarregue manualmente a página.
Somente as peças ou módulos atualizados no aplicativo Web devem ser recarregados sem afetar o estado geral do aplicativo.
Por que você pode perguntar? Bem, ao impor isso, o aplicativo da Web, por seu design, será mais robusto, correto e provavelmente mais fácil de manter. Se o aplicativo Web sempre exigir atualização simultânea de servidor / cliente, provavelmente não será o caminho certo.
fonte
Sim, você deve fazer a versão! E deve haver uma tag no seu sistema de controle de revisão (como subversion, git, mercurial etc.) que corresponda ao número da versão.
A tag permite que você volte e faça uma ramificação. Por exemplo: a versão atual da produção possui um erro, mas você não pode corrigi-lo porque o código na sua máquina simplesmente não está pronto para abrir a porta. Se você o tiver marcado no seu RCS, poderá ramificar-se nesse tag e corrigir o erro na versão exata do código que está sendo executado na produção.
fonte
Pessoalmente, acho que você deve fazer a versão de qualquer maneira, mas um grande benefício da versão de aplicativos da Web específicos para sites é que ele pode fazer alterações no conteúdo estático muito mais fáceis de gerenciar.
Por exemplo, digamos que você tenha um arquivo mysite.css com uma data de validade futura muito distante (que geralmente você deseja fazer para que seja armazenada em cache no navegador em cada página). Se você alterar um estilo nesse arquivo, ninguém que já esteve no seu site o verá a menos que faça algo para limpar esse arquivo do cache.
Se você estiver criando um versionamento do site, poderá alterar todas as referências css em sua compilação para algo como mysite.css? V = 1234, que permitirá manter a data de validade futura e não se preocupar com alterações futuras, como na próxima compilação será mysite.css? v = 1235.
fonte
Sim você deveria. Por razões de distribuição apontadas aqui por outras respostas.
Mas entendo, por que você está fazendo a pergunta. A abordagem de aplicativos da Web é orientada por custos. É o oposto da abordagem tradicional de redução, onde os custos incluem mídia física, distribuição, instalação, cópia impressa da documentação, treinamento e suporte técnico. Qualquer coisa que possa ser excluída deve ser excluída.
fonte
Só para esclarecer, suponho que você esteja falando de um tipo de versão visível ao usuário de algum tipo e não desista do controle de versão no desenvolvimento. (se você acha que não precisa de controle de versão no desenvolvimento, está errado, precisa de controle de versão).
Para um projeto de hospedagem única, não é estritamente necessário, porque, se surgir alguma dúvida, você sempre pode olhar para o host e confirmar o que está realmente em execução. É meio legal, porém, porque pode ser útil uma ou duas vezes. Cabe a você decidir se será útil ou não.
Para um projeto com várias hospedagens, não é realmente opcional. Os hosts diferentes acabarão com versões diferentes e você precisará diferenciá-los no final do usuário.
fonte