Já faz um tempo desde que eu desenvolvi substancialmente a web e gostaria de aproveitar as práticas mais recentes, mas estou lutando para visualizar o fluxo de trabalho para incorporar tudo.
Aqui está o que eu estou procurando usar:
- Framework CakePHP
- jsmin (JavaScript Minify)
- SASS (folhas de estilo incrivelmente impressionantes)
- Git
CakePHP:
Muito auto-explicativo, faça modificações e atualize a fonte.
jsmin:
Ao modificar um script, você executa manualmente o jsmin para gerar o novo código minificado ou seria melhor executar um gancho de pré-confirmação que gera automaticamente saídas jsmin dos arquivos javascript que foram alterados. Suponha que eu não tenha conhecimento de implementar ganchos de confirmação.
SASS:
Eu realmente gosto do que o SASS tem a oferecer, mas também sei que o código SASS não é suportado pelos navegadores por padrão; portanto, em algum momento, o código SASS precisa ser transformado em CSS normal. Em que ponto do fluxo de trabalho isso é feito.
Git
Estou com medo de admitir, mas, na última vez que desenvolvi substancialmente a Web, não usei o controle de origem do SCM (IE, usei o controle de origem, mas consistia em um log de alterações muito detalhado com backups).
Desde então, tenho muita experiência em usar o Git (além de mercurial e SVN) para o desenvolvimento de desktops, mas estou me perguntando como implementá-lo da melhor maneira para o desenvolvimento da web).
É prática comum implementar um repositório remoto no host da Web para que eu possa enviar as alterações diretamente para o servidor de produção ou existe alguma ferramenta de plataforma cruzada (windows / linux) que facilita o upload de apenas arquivos alterados para o servidor de produção . Existem empresas de hospedagem na Web que facilitam a implementação de um repositório remoto, preciso de acesso SSH, etc ...
Eu sei como fazer isso no meu próprio servidor de teste com um repositório remoto com uma ramificação de rastreamento remoto separada, mas nunca o fiz em um servidor de hospedagem de produção remota antes, então ainda não estou ciente das opções.
Extra:
Eu estava pensando em implementar uma estrutura javascript em que arquivos javascript separados usados em uma página são compilados em um único arquivo para cada página no servidor de produção para limitar o número de downloads de arquivos necessários por página.
Algo assim já existe? Já existe um projeto de código aberto que implementa algo semelhante com o qual eu poderia usar e contribuir?
Considerando como os desenvolvedores da Web paranóicos são sobre desempenho (e o fato de o número de solicitações de arquivos em um site ser um grande sucesso para o desempenho), estou supondo que haja algum hacker assistente na rede que já tenha abordado esse problema.