AngularJS é incrível … e difícil como o inferno

Eu já estava trabalhando no AngularJS há quase um ano, logo depois que eles colocaram o logotipo do Google na página da web. Isso é cerca de 20-40 horas por semana nos últimos 10 meses, mais o tempo livre. Usando a tecnologia, fiz Aplicativos Chrome, Aplicativos Móveis, Aplicativos Web, Módulos, Animações e Aplicativos de Página Única (SPA’s). Não consigo vincular todos eles devido a um NDA com minha empresa, mas você pode ver alguns de meus trabalhos em meu perfil Coderwall e no perfil Codepen para ter uma ideia. Na minha empresa, até trabalhamos em uma ponte com o AngularJS e o LungoJS para fazer aplicativos móveis, conhecidos internamente como LAB , nos quais fiz alguns PRs não muito ruins.

Com essa introdução, quero compartilhar a seguinte declaração:

AngularJS é incrível … e difícil como o inferno.

Embora eu já tenha trabalhado com isso por muito tempo em vários projetos, não me considero um guru na tecnologia; Eu tropecei em muitos erros em meu próprio código, e se Misko ou Igor vasculharem meus experimentos iniciais com a tecnologia, eles provavelmente vão rir muito pensando que sou uma piada. Eu fiz interfaces que não faziam sentido e serviços fortemente acoplados. Não apenas eu, mas colegas de trabalho que considero desenvolvedores altamente inteligentes, lutamos com alguns dos conceitos básicos que aparecem no software sempre que um aplicativo realmente grande aparece. Refatorei um dos maiores módulos da minha empresa apenas para perceber que, mesmo alguns meses atrás, eu não tinha ideia de como realmente usar o poder do AngularJS.

E tudo bem

Tudo bem se você realmente não entender AngularJS de uma vez. Começar com o software é completamente diferente do que usar para aplicativos reais. Realmente leva tempo, mais do que você imagina, para realmente obter o AngularJS .

Se você já se sentiu frustrado com essa estrutura que está tentando aprender, a boa notícia é que isso leva tempo . Este não será um exemplo rápido de jQuery que você pode executar facilmente em um jsFiddle, mas uma jornada inteira que você precisa abraçar para entender verdadeiramente o framework.

Escolha seus recursos com sabedoria. Aqui estão minhas quatro principais fontes de informação para um bom conhecimento de AngularJS (nessa ordem):

  • Vídeos Egghead.io . Eu estava bastante cético sobre a página da Web, mas depois de ver alguns dos vídeos, percebi que os vídeos de John estavam realmente no caminho certo. Especialmente para iniciantes, esta é uma fonte incrível de informações. Caramba, se você está fugindo o tempo todo, compre os vídeos offline.

  • O livro Mastering Web Application Development with AngularJS . Acabei de ler o livro, e ele é absolutamente obrigatório para qualquer desenvolvedor de AngularJS. O livro estrutura perfeitamente os conceitos por trás do AngularJS, bem como as boas práticas e as principais dicas do software. O AngularJS é provavelmente popular tanto por seu poder quanto por sua falta de documentação; aqui está o manual ausente que todos deveriam ter em sua biblioteca ou kindle. Vou economizar para você o wumbo gigante em todos os benefícios do livro e apenas dizer-lhe novamente para comprá-lo. Realmente não há desculpa.

  • AngularJS App . A referência create-CRUD-applications. Faça um fork, execute, brinque com ele. Veja como eles criaram as diretivas, como organizaram o código, como estruturaram os testes. Até hoje eu sempre navego naquele projeto para ver como eles usaram interceptadores, como testaram suas diretivas e qual convenção de nomenclatura usaram em seus provedores.

  • The AngularJS Wiki . Sempre que você tiver dificuldades com um conceito do AngularJS, vá e leia o wiki. Se você realmente não entende todos os conceitos sobre os escopos, vá e leia o wiki. Se você realmente deseja se tornar um bom AngularJS, vá e leia o wiki. Se alguma coisa relacionada ao AngularJS me deixa tonto … você sabe o resto.

Melhorando

Em algum momento você vai entender a maioria dos conceitos do AngularJS , para o qual o próximo passo é começar a criar projetos, canetas e rabiscos … mas com testes sobre eles. Eu descobri que a maioria dos bons conceitos do AngularJS podem ser realizados adicionando testes aos seus projetos. Se você não estiver testando seu software, pare de codificar . Fornecer software não testado não é profissional e deve ser evitado . Você pode ser mais flexível ao compartilhar seu conhecimento com outras pessoas ( tosse tosse, como eu, que não postei nenhum teste em meus codepens tosse tosse ), MAS em algum momento especificar que seu software não foi testado ou que você colocará alguns testes mais tarde. *

  • Uma observação especial sobre este, estarei trabalhando para adicionar mais amostras para AngularJS com testes incluídos. Escreverei outro post sobre isso mais tarde.

Notas finais

Eu acredito que embora o AngularJS seja muito fácil de começar, é muito complicado de se começar . Cometer erros na estrada é algo esperado. Se agora você se considera um incrível desenvolvedor de AngularJS , você já tem uma cópia do livro AngularJS ( diabos, se você fosse solicitado a revisá-lo ), e está com mais de 10K no SO apenas pelas respostas do AngularJS, Parabéns! Suas responsabilidades são maiores porque as pessoas realmente começarão a levá-lo a sério, e suas postagens e exemplos serão replicados pela web. Nesse ponto, você deve ir para conferências, criar RP, monitorar os problemas do Github e começar a contribuir com a comunidade. Você pode fazer o mais recente instalando o Question Monitor para Stack Exchange, adicione a angularjsetiqueta e gire um Pomodoro por 25 minutos por dia para responder a algumas perguntas. Inscreva-se / vá para AngularJS Conf . A convocatória de palestrantes se encerra dia 30 de setembro, o que você está esperando?