Como anda o Angular.js? Devo embarcar nessa?

Como anda o Angular.js? Devo embarcar nessa?
lacerdaph
lacerdaph

Compartilhe

Há 7 meses recebemos a tarefa de reestruturar um sistema crítico da empresa. O foco era economizar a quantidade de dados trafegados e diminuir o tempo de espera do usuário em cada interação com a aplicação. É uma empresa grande, sistema que atende o Brasil inteiro, com mais de 100 desenvolvedores envolvidos no projeto e até então a ideia principal era evoluir as tecnologias já existentes.

Contudo, determinado dia, um desenvolvedor veio com a ideia de fazer uma mudança radical. Mudar o MVC server-side para client-side e para isso a sugestão foi utilizar o Angular. Minha primeira reação foi de negação e desaprovação, não pelo framework, mas pelo JavaScript.  Nunca havia me dado bem com a linguagem e também nunca tinha feito um grande esforço para lidar com o essencial.

Esse foi o começo da minha história, que não terá meio e nem fim uma vez que os posts terão um viés mais técnico. De qualquer maneira, essa figura resume bem como anda minha relação com o framework:

feelings_about_angularjs_over_time Banner promocional da Alura, com um design futurista em tons de azul, apresentando o texto

Nosso objetivo aqui é fazer um série de artigos sobre o Angular, tratando basicamente sobre conceitos gerais, dicas, navegação, CRUD e um pouquinho de REST. Então não vamos comparar o Angular com os seus concorrentes como Ember, Blackout, dentre outros que estão proliferando por aí.

O Angular é um framework JavaScript, criado pelo Google, no estilo MVC e usa o conceito de SPA (Single Page Application). Nesse tipo de aplicação, apenas uma parte dela muda e a outra permanece fixa, fazendo parte de um template compartilhando entre as páginas. Isso traz melhoras para a experiência do usuário e tráfego de dados. Ele tem crescido muito em adoção e é um dos frameworks mais importantes da atualidade

Você pode começar com o tutorial do Angular, desenvolvendo o PhoneCat. Você pode inclusive utilizar o JSBIND para codificar e ver o live coding, ferramenta muito bacana inclusive para quem já está na utilizando o framework. Na Caelum, o curso de front-end com JavaScript e jQuery aborda Angular, além do curso online de Angular no Alura.

Recomendo sempre acompanhar os posts do Bruno Scopelliti, que também foca bastante na parte REST, assim como John Papa, que fez um excelente Angular Code Conventions e outros blogs como do Angular e Bennadel. Ah! claro, não se esqueça de seguir o "James Gosling do Angular" e o Igor Minar, o principal commiter do projeto.

E caso você já esteja utilizando Angular no seu dia a dia, você já sabe que o framework está na versão 1.3 e que a versão 2.0 está em fase de desenvolvimento. Mas talvez o que você ainda não saiba é da tendência delas não serem retrocompatíveis e que muita features irão mudar, talvez a principal delas seja o ATScript. Então temos que nos preparar para eventuais mudanças em nosso código e principalmente como iremos suportar essa migração.

Algumas dicas básicas para quem resolver adotar o framework é que invariavelmente você precisará de pelo menos um especialista JavaScript na sua equipe, e pelo começo desse texto você pode notar que não sou eu na minha equipe (obrigado Tiago Lage). Sim, o Angular abstrai muito o uso do JavaScript, provendo inclusive algumas funções auxiliares, mas você precisará de alguém capaz de entender bem o assincronismo e outras loucuras, digo, features que a  linguagem provê. Além disso, acompanhar os eventos sobre Angular (talvez um dia cheguem aqui) e os podcasts que falam sobre a tecnologia

Finalizando, a ideia inicial aqui é interar o leitor sobre esse novo mundo, mostrando as vantagens do framework e apontar também algumas desvantagens, que são melhor exploradas com o uso diário. Agora é esperar a série de posts, sendo que no próximos discutiremos sobre navegação seguido pelos posts de CRUD. Eu ainda estou aprendendo e você? Como está seu conhecimento desse "novo velho" mundo de ferramentas JavaScript? Algum tópico que você gostaria de ler sobre Angular?

Veja outros artigos sobre Front-end