Font End Development é minha paixão, mas ultimamente está ficando um pouco difícil de acompanhar uma grande enxurrada de coisas novas que vêm todos os dias, então, decidi fazer um pequeno filtro e aprender algumas das tecnologias que já existem, como AngularJS e MeteorJs.
Angular está na minha lista de aprender a um tempo já, mas nunca tive tempo de fazer … Na verdade … Tempo é uma coisa que eu realmente não tenho, então, a única maneira de eu aprender coisas novas, é me envolver em um projeto que me permita usar essa nova tecnologia que quero aprender … Sei que é uma jogada arriscada, porque posso causar alguns estragos, mas até agora tenho tido sucesso em entregando boa qualidade de trabalho, mesmo sendo bastante novo em alguns dos frameworks ou plataformas.
Finalmente, eu consegui o projeto certo onde o Angular seria um encaixe perfeito … e de fato, foi um encaixe perfeito. Eu tinha esse app farmacêutico para iPad, com um enorme banco de dados, onde os vendedores usavam como ferramenta de venda de medicamentos e faziam apresentações para médicos e farmacêuticos.
No começo tive a ajuda do meu amigo Ronildo e assisti alguns vídeos disponíveis na internet, mas ninguém me disse essas coisas que vou compartilhar aqui e gostaria de entender melhor no começo.
Hierarquia de $ scope
Se você está lendo este artigo, provavelmente conhece $ scope, mas demorei um pouco para entender a hierarquia, principalmente quando tentei fazer dois controladores distintos para se comunicarem.
Nunca inunde o $ rootScope
Outra coisa legal que temos no Angular é o $ scope $ id 001 ou, conhecido como $ rootScope. Quando comecei a entender como $ scope funciona e tentei fazer as coisas funcionarem em diferentes controladores, obstruí meu $ rootScope e só mais tarde descobri que não precisava fazer isso. A melhor forma de passar valores é fazer uso de Fábricas / Serviços, mas isso é mais avançado e ainda estou aprendendo a lidar com isso. Esta resposta no StackOverflow ajudou a começar com a fábrica
Evite usar $ scope. $ Watch
$ scope. $ watch é uma coisa muito boa no angular, mas se você adicionar todos os tipos de relógios, terá problemas, porque terá uma grande chance de sobrecarregar a memória do seu aplicativo. Ben Lesh escreveu um bom artigo explicando como evitar relógios … Faz sentido para mim e desde que li este artigo, refatorei todo o meu aplicativo para remover todos os relógios.
Não abuse das diretivas
Quando aprendi a trabalhar com diretivas, fiquei louco criando todo tipo de diretivas, pensando que estava criando separação e tornando as coisas mais organizadas, mas depois percebi que estava prejudicando o projeto geral, então decidi remover um monte de diretivas que realmente não faziam sentido para sua existência. Apenas crie uma diretiva se tiver certeza da real necessidade dela.
Você dificilmente precisará do jQuery
Quando comecei a inicializar meu aplicativo, uma das primeiras coisas que fiz foi ter certeza de que o velho jQuery estava lá, mas depois descobri que não precisava dele de forma alguma e provavelmente de você também. Uma coisa que eu fiz que pode ajudar é se questionar e pesquisar no Google como fazer algo que você normalmente faz com jQuery de forma Angular e você ficará surpreso com quase tudo.
Não seja preguiçoso e com medo de refatorar
Refatorar é algo que você precisa saber de antemão que vai acontecer. Ao contrário dos meus projetos anteriores, este tive que refatorar minha aplicação várias vezes, porque você sempre encontrará a melhor maneira de realizar o que deseja no Angular. No início, meu arquivo JS era enorme, mas com muitos pulando, consegui reduzi-lo a quase 30% do código inicial.
Conclusão
Angular é um ótimo framework e estou definitivamente apaixonado por ele, mas tenha cuidado, pode ser uma merda para você se você não o tratar bem e com amor. Tire um tempo para ler muito e assistir a vídeos, tente entender a hierarquia $ scope, tente aprender a escrever Factory and Services e você verá que a vida será mais brilhante.