• Nenhum resultado encontrado

Frontend Frameworks

No documento Peer to Peer Health Insurance (páginas 52-54)

2.6 Conclusões

3.1.2 Frontend Frameworks

3.1.2.1 AngularJS

AngularJS[ANG] é uma framework de desenvolvimento de web baseada no padrão de desenho MVC, desenvolvida pela Google e que se encontra actualmente na sua versão 2.0, sendo que, ao contrário das frameworks anteriormente analisadas, corre do lado do cliente. Esta aplicação surge para combater a complexidade que as aplicações baseadas apenas em JQuery e Javascript apresentam, exigindo ao programador conhecimentos profundos para a construção de aplicações mais elaboradas com a estrutura mais adequada, que garanta eficiência e a sustentabilidade das mesmas [SG]. Assim, o objetivo principal do AngularJS é, fornecer uma framework com uma estrutura previamente definida, permitindo assim um desenvolvimento de aplicações web mais fiável e rápido.

O AngularJS apresenta inúmeras vantagens, entre as quais, o facto de ser uma framework que permite a separação do estilo da página principal da lógica de negócio, permitindo que a lógica de negócio seja alterada sem afetar a visualização e vice-versa. Uma outra grande vantagem que o esta framework apresenta, é a sua simplicidade de codificação, tornando muito mais simples o papel do programador na criação de aplicações estáveis por um longo período de tempo [SG].

A estrutura desta framework é relativamente simples e está dividida por módulos que por sua vez estão todos ligados por um módulo raiz. Cada módulo tem um conjunto de componentes, nomeadamente, um componente responsável pelas configurações gerais a todo módulo, outro res- ponsável pelas rotas inerentes a este módulo e depois cada rota, tem um conjunto de controladores e vistas, que comunicam entre si através de uma variável chamada “scope”. Existem também dois componentes que podem ser usados pelos controladores, as fabricas (factories) e os serviços (ser- vices), que são utilizados por um lado para comunicação entre os vários controladores da aplicação e por outro pela comunicação com API externas[Cho].

Apesar das suas potencialidades, a utilização do AngularJS ainda não evita a utilização de uma tecnologia do lado de servidor, contudo quando se recorre a esta framework, nem sempre

é necessário a utilização de uma framework tão complexa do lado do servidor. Este facto, jun- tamente com aqueles referenciados nos capítulos superiores, podem contribuir para uma melhor organização dos vários módulos da aplicação, bem como podem ajudar os gestores de equipas a distribuírem os seus recursos, visto que desta forma a equipa terá de ter elementos de diferentes áreas de conhecimento.

3.1.2.2 EmberJS

Lançada no ano de 2011, o EmberJS[EMB] é uma framework de desenvolvimento web, muito semelhante àquela apresentada anteriormente. Usando também o padrão de desenho MVC, esta tecnologia permite a estruturação do código através de três estâncias: o route que é responsável pelo Model, o handlebar template que gere as views e o controller que é a entidade que manipula os dados. Esta framework é escrita em JavaScript e está assente no princípio de página web rápida, que consiste em não recarregar a página toda sempre que é necessário atualizar alguma informação, aumentando assim a performance da mesma.

Quando comparada com outras frameworks semelhantes, o EmberJS destaca-se por ser mais pequena que os seus concorrentes, fator que pode ser determinante aquando da escolha de uma framework que funcionará do lado do cliente. Outro ponto importante de referir, é que esta fra- meworké baseada em convenções e não em configurações, motivo pelo qual os programadores deverão procurar aprender estas convenções de forma a melhorarem a sua produtividade, contudo a aprendizagem destas diretrizes poderá levar a que o tempo de aprendizagem seja um pouco maior do que nas outras frameworks, no entanto, assim que o programador interioriza o seu processo de desenvolvimento é mais célere do que em outras frameworks. Em termos de comunidade, esta framework, apesar de não ser tão popular como outras, já tem uma comunidade de programadores que a utilizam, porém poderão surgir dificuldades em arranjar informações mais específicas[Cho]. Posto isto, o EmberJS poderá ser uma opção viável para a construção de uma aplicação web, uma vez que apresenta bons níveis de performance e funcionalidades que permitem o desenvolvi- mento rápido, contudo, o facto de esta possuir uma curva de aprendizagem mais acentuada que as suas concorrentes, poderá levantar alguns entraves à sua utilização.

3.1.2.3 BackboneJS

BackboneJS[BAC] é uma framework que corre do lado do cliente, desenvolvida em JavaScript que foi lançada em Outubro de 2010. Esta framework, tal como as anteriormente apresentadas, tem como objetivo o desenvolvimento de aplicações web de página única (single-page web appli- cations) e também se baseia no padrão de desenho MVC, apesar de aplicar uma variação chamada Model-View-Presenter. Esta framework inova a retirar o acesso a dados do DOM, introduzindo uma série de elementos que ajudam o programador a realizar esses processos, nomeadamente, o Model, as Collections e os objetos View. Atualmente, esta tecnologia é utilizada por muitas empresas, entre as quais, a AirBnB, a Hulu, SoundCloud e Pinterest.

Neste framework existem três tipos de objetos: os Model, que gerem o acesso aos dados e a lógica de negócio, carregam e guardam a informação no servidor e disparam eventos quando exis- tem mudanças nos dados; as Views, que registra mudanças e constrói a interface com o utilizador, gere os inputs do utilizador e interação da aplicação com ele e ainda é responsável por informar o modeldos inputs do utilizador; e as Collections, que ajudam o programador a gerir grupos de Mo- delsrelacionados entre si, fornecendo algumas funções que poderão ajudar a lidar com agregações de dados.

As grandes vantagens de utilizar esta framework, prendem-se com o facto de as comunicações serem geradas por eventos, tal como acontece com o JQuery, contudo sem os problemas de es- calabilidade normalmente associados a esta tecnologia. Outra vantagem é a sincronização com o lado do servidor, pois no BackboneJS, os Models podem ser facilmente ligados aobackend, uma vez que esta framework fornece um bom sistema de acesso a APIs REST, tendo já implementado as funcionalidades necessárias à leitura, escrita e remoção, respectivamente, GET, POST e DE- LETE. Outro ponto de destaque desta aplicação é o facto de as suas convenções poderem ajudar os programadores a reduzir a quantidade de código necessário, aumentando, consequentemente, a produtividade do desenvolvimento. Referir ainda que a comunidade do BackboneJS, tal como a de EmberJS, ainda é de tamanho reduzido, o que poderá acarretar alguns problemas, principalmente a programadores mais inexperientes[Cho].

Em suma, tal como as duas frameworks apresentadas anteriormente, o BackboneJS é uma boa opção para estruturar o código do lado do cliente, apresentando também algumas funcionalidades que podem melhorar tanto a performance como o desenvolvimento da aplicação.

No documento Peer to Peer Health Insurance (páginas 52-54)