Guia de Estilo AngularJS
Guia de Estilo opinativo de Angular para times. Por @john_papa
Se você procura por um guia de estilo opinativo para sintaxe, convenções e estruturação de aplicações AngularJS, então siga em frente! Estes estilos são baseados em minha experiência com desenvolvimento com AngularJS, apresentações, cursos de treinamento na Pluralsight e trabalhando em equipe.
Se você gostar deste guia, confira meu curso Angular Patterns: Clean Code na Pluralsight.
A proposta deste guia de estilo é fornecer uma direção na construção de aplicações Angular mostrando convenções que eu uso, e o mais importante, porque eu as escolhi.
A Importância da Comunidade e Créditos
Nunca trabalhe sozinho. Acho que a comunidade Angular é um grupo incrível, apaixonado em compartilhar experiências. Dessa forma, Todd Motto, um amigo e expert em Angular e eu temos colaborado com vários estilos e convenções. Nós concordamos na maioria deles, e discordamos em alguns. Eu encorajo você a conferir o guia do Todd para ter uma noção sobre sua abordagem e como ela se compara a esta.
Vários de meus estilos vieram de várias sessões de pair-programming (programação pareada) que Ward Bell e eu tivemos. Embora não concordemos sempre, meu amigo Ward certamente me ajudou influenciando na última evolução deste guia.
Veja os estilos em um aplicativo de exemplo
Embora este guia explique o o quê, porque e como, acho útil ver tudo isso em prática. Este guia é acompanhado de uma aplicação de exemplo que segue estes estilos e padrões. Você pode encontrar a aplicação de exemplo (chamada "modular") aqui na pasta modular
. Sinta-se livre para pegá-la, cloná-la e forká-la. Instruções de como rodar o aplicativo estão em seu README.
Nota de tradução: Os títulos originais de cada seção serão mantidos, pois caso você queira buscar mais sobre estes assuntos futuramente, fazendo tal busca em inglês será obtido um resultado imensamente melhor.
Após o título, estará a tradução auxiliar, quando necessária, visto que alguns termos são mais facilmente entendidos quando não traduzidos, por fazerem parte do núcleo do estudo em questão.
Para eventuais erros de digitação e/ou tradução, favor enviar um pull-request!
Tabela de Conteúdo
- Single Responsibility
- IIFE
- Modules
- Controllers
- Services
- Factories
- Data Services
- Directives
- Resolving Promises for a Controller
- Manual Annotating for Dependency Injection
- Minification and Annotation
- Exception Handling
- Naming
- Application Structure LIFT Principle
- Application Structure
- Modularity
- Angular $ Wrapper Services
- Testing
- Animations
- Comments
- JSHint
- Constants
- File Templates and Snippets
- Angular Docs
- Contributing
- License