Daniel Salvagni — Yet another software engineer

angular-scalable-project - Atualizações

Tenho recebido algumas sugestões a respeito do projeto que divulguei recentemente. Algumas sugestões de melhoria eu compartilho como necessárias, outras nem tanto. Acabei de fazer uma atualização no projeto e vou listar o que recebi de sugestão e o que foi implementado - pouco, por enquanto.

Algumas sugestões recebidas:

Pré-processador de HTML JADE

É simples de implementar, mas não deve ser o padrão. A ideia do projeto é ser um skeleton de uma estrutura de single-page application simples. A opção de utilizar JADE ou outro deve ser definida no projeto em que essa estrutura for aplicada. Não pretendo implementar

ES6 com BabelJS

Assim como o caso do JADE, acredito que o uso do ES6 com o BabelJS deve ser decidido por projeto. Não pretendo implementar

Substituir o GRUNT pelo GULP

Por mais que o Gulp tenha uma performance melhor, acredito que essa seja uma questão de afinidade com a tecnologia. Se alguém substituir as tasks do Grunt pelo Gulp e quiser compartilhar, posso disponibilizar no projeto.

Adicionar o Bower

O Bower é fundamental para gerenciar as dependências. Era uma pendência que eu tinha desde que publiquei o projeto e hoje decidi atualizar para que as dependências já sejam gerenciadas pelo bower. Isso gerou alguns novos passos no fluxo de desenvolvimento. Agora, após clonar o projeto, é preciso rodar o [plain]bower install[/plain]. Em seguida, é preciso adicionar as dependências ao arquivo de configuração do requireJS (main.js). Para isso, basta rodar a task do grunt [plain]grunt bowerRequirejs[/plain]. Lembrando que o test-main.js deve ser mantido manualmente para rodar sem problemas no karma.

Suporte ao $templateCache

O AngularJS já faz cache das views depois de acessadas pela primeira vez. A ideia do uso do $templateCache é que, no caso de a aplicação ter diversas partials, a requisição das mesmas pela primeira vez pode gerar um certo transtorno (muitas requisições).

O que foi feito nessa atualização?

Adicionei uma task no Grunt que usa o grunt-angular-templates para concatenar todas as views em um único arquivo de resource. Essa é uma solução opcional e não altera em nada o modo em que se desenvolve a aplicação usando o projeto. A diferença é que usando o $templateCache, nenhuma view é gerada na versão de distribuição Para gerar uma versão de distribuição com o $templateCache, basta usar a flag –templateCache:

grunt dist –templateCache

Para gerar usar em desenvolvimento, basta usar:

grunt ngtemplates


Por enquanto essas são as novidades do projeto. Pretendo disponibilizar em breve uma versão em que os módulos são carregados de forma assíncrona, baseando-se pelas rotas da aplicação.