O que é uma Framework?

Publicado em 14 maio 2021

tempo de ler 10 minutos

Quando começas a programar, descobres conceitos como HTML, CSS, PHP, JavaScript... Mas rapidamente também ouves falar em Symfony, Spring, Laravel, Angular... Estes conceitos não são linguagens de programação, mas frameworks. Neste artigo vamos descobrir o que é uma framework!

Como podemos definir uma “framework”?

Definição de framework

Considerada uma ferramenta dos dias modernos, uma framework de software permite aos developers serem mais eficientes na conceção de aplicações web ao oferecer uma estrutura pronta a usar e reutilizável assim como componentes de software a utilizar em conjunto com ela.

Podemos comparar uma framework a uma fábrica de carros. O carro seria o produto final e a framework a fábrica. Nesta fábrica já temos tudo o que necessitamos em stock: os robôs, as estações de trabalho e todas as partes tais como o volante e as portas. Dentre estes componentes, recolhemos as que precisamos para reutilizar.
Uma vez produzida esta aplicação básica ou “esqueleto”, os outros developers não necessitam mais de reinventar tudo para cada novo projeto. Uma forma de fazer isto é olhar para o conceito DRY: Don't Repeat Yourself  (Não Te Repitas). A DRY é uma filosofia em programação de computadores que consiste em evitar a redundância de código numa aplicação de forma a facilitar a manutenção, teste, depuração e evoluções da mesma.

As frameworks são geralmente concebidas por uma comunidade de developers. Programam a linguagem e permitem o desenvolvimento de todos os tipos de media: aplicações móveis, software de ambiente de trabalho, plataformas web, videojogos, etc. Desta forma, também tu podes criar a tua própria framework.

As frameworks tem partes diferentes. Por exemplo, a autenticação, a gestão da base de dados, exibição ou ferramentas de interação do utilizador.

Tens de ter em mente que uma framework responde a uma necessidade específica. Para escolheres a melhor que se adapta a ti, tens de definir previamente as tuas necessidades de forma eficiente.

Porquê usar uma framework?

Quais as vantagens de uma framework?

Poupar tempo

As frameworks poupam tempo! Na realidade, ajudam o developer a evitar ter de desenvolver tudo de raíz, i.e., reescrever ou reinventar cada linha de código (conceito DRY). Graças às frameworks, os developers podem focar-se na execução de funcionalidades específicas para o seu projeto em vez de perderem tempo em tarefas recorrentes para cada projeto, tal como a estrutura, a segurança básica da aplicação, etc.

Ter um ambiente de trabalho limpo e organizado

Uma framework fornece uma hierarquia optimizada de pastas e ficheiros. Graças a esta separação e classificação de ficheiros, o interface fica mais organizado e fácil de utilizar – para aqueles que o sabem utilizar. Se as linhas de orientação da framework forem seguidas, é alcançada uma estrutura e unidade de código coerente, aumentando, assim, a sua qualidade.

Ser mais eficiente e optimizar o trabalho de equipa

Uma framework de software fornece diversas estruturas formalizadas de acordo com as necessidades para as quais é utilizada. O desenvolvimento em equipa é assim facilitado e a distribuição de tarefas dentro da equipa é mais simples uma vez que cada pessoa tem a sua própria “zona” de trabalho.

Adicionalmente, quando os programadores trabalham com equipas que já dominam as frameworks, as suas tarefas são realizadas mais facilmente e rapidamente. Pensa num veículo. A dificuldade inicial é aprender a guiar, mas uma vez ultrapassada essa barreira, é muito fácil passar de um carro para outro. O mesmo acontece com as frameworks: uma vez dominada uma framework, passar de uma aplicação baseada nessa framework para outra torna-se fácil porque a estrutura é essencialmente a mesma.

Assegurar manutenção e evolução optimizada

Quando uma framework é desenvolvida por uma comunidade de developers ou, por vezes, por organizações privadas, a sua manutenção e evolução é mais optimizada e as atualizações mais frequentes.


Ao utilizar uma framework, não tens mais de te preocupar com os padrões web mais recentes, nova compatibilidade entre serviços e questões semelhantes. A comunidade toma conta de “tudo”, atualizando a própria ferramenta. Os developers beneficiam assim destas atualizações, pelo que a equipa de web development têm pouco com que se preocupar, ganhando assim tempo para se dedicar à procura de valor acrescentado e ao desenvolvimento do próprio projeto.

Impulsionar e optimizar a segurança

A maior parte do tempo a framework cobre e previne um grande número de falhas de segurança que podem ser encontradas durante a conceção da aplicação.
Contudo, tal não impede os developers de intervir e optimizar a segurança e performance da sua aplicação de acordo com as necessidades ao acrescentar funcionalidades pré-definidas pela framework.

Uma comunidade de utilizadores “infinita”

Raramente estás sozinho na utilização de uma framework específica. Se encontrares um bug ou outro problema – ou se tens questões específicas – a comunidade de utilizadores está lá para te ajudar. Uma busca eficiente no Stack Overflow (entre outras) e a solução irá provavelmente aparecer à tua frente.

Para teres uma ideia, a Symfony ou React são frameworks utilizadas por mais de um milhão de developers, por isso terás muitas pessoas para te ajudarem se precisares de ajuda.

Que desvantagens apresenta a utilização de uma framework?

Curvas de aprendizagem diferentes

Dominar um framework pode levar o seu tempo e não é nada fácil! Todavia, cada framework tem a sua própria curva de aprendizagem: algumas permitem ao developer avançar rapidamente, ao passo que outras requerem uma curva de aprendizagem mais longa.

É necessário o conhecimento de conceitos gerais

De forma a perceber e interpretar corretamente os princípios básicos das frameworks e fazer escolhas técnicas criteriosas é fundamental dominar, pelo menos, os conceitos gerais de funcionamento interno, entender as boas práticas e, claro, ter um conhecimento claro dos conceitos da linguagem e programação em que a framework se baseia.

Limitações nas funcionalidades complexas

Como o nome sugere, uma framework é uma framework. Existem, portanto, algumas limitações na sua utilização, tais como, por exemplo: uma framework de software impõe frequentemente as suas próprias escolhas em termos de estrutura do nosso código. Quando os programadores querem aceder a funcionalidades da linguagem que não são geridas pela framework, poderão encontrar algumas dificuldades. O conselho que damos ao developer que quer utilizar frameworks, é que deixe estas guiá-lo.

São muito tentadoras!

As frameworks dão-nos a impressão que tudo é bem mais simples graças a elas, mas nada podia estar mais longe da verdade! Uma framework impõe uma estrutura pesada e complexa sobre as aplicações e por vezes quando estas não precisam.

Seja ela qual for, cada framework responde a necessidades precisas e avançadas! Não é prático ir todos os dias de Ferrari comprar pão ao fim da rua; corres o risco de estragá-lo antes de mais. O mesmo se aplica à framework: se queres fazer um site estático com poucas páginas, irá complicar mais a tua tarefa do que simplificá-la. Tecnologias básicas como HTML/CSS e JS serão suficientes!


Tem sempre em mente o seguinte: antes de começares a programar através de frameworks, define claramente as tuas necessidades de forma a estabelecer uma necessidade real para a utilização de uma framework específica.


framework

Que diferentes tipos de frameworks existem?

Alguns exemplos de frameworks:

Antes de mais, é importante referir que as frameworks não entram em competição umas com as outras! Lembra-te do que dissemos anteriormente: cada uma responde a uma necessidade específica.

Em PHP, duas se destacam: Symfony e Laravel

A Symfony, lançada em 2005 por Fabien Potencier e agora mantida pela SensioLabs. Embora seja utilizada principalmente por falantes de francês, a sua utilização expandiu-se também para outros países, uma vez que é uma framework reconhecida mundialmente.

Descobre as múltiplas aplicações que utilizam ou tem por base o projeto Symfony.


A Laravel, lançada em 2011 por Taylor Otwell, é uma das frameworks mais usadas no mundo. Uma pequena curiosidade: algumas partes da Laravel são baseadas na Symfony.

Para saberes mais sobre as frameworks PHP, clica aqui!

Em JS: NodeJs, VueJs, Angular e React

Podemos referir NodeJs, Angular ou React. Ouço já algum ruído de fundo, mas lê até ao fim antes de decidires!

  • A NodeJs, com a sua elevada performance e utilização em muitas situações, tem contribuído para um grande desenvolvimento no mundo de JavaScript. Fundada em 2009 por Ryan Dahl, fez ruir a barreira entre o front end e o black end. Foi ele que possibilitou a construção de aplicações back-end em JavaScript. A NodeJs ajuda as empresas a criar aplicações escaláveis que conseguem gerir ligações de alta-velocidade em simultâneo. Por exemplo, empresas como a Google ou o Paypal utilizam NodeJs em algumas partes das suas aplicações.
  • A VueJs , criada por Evan You em 2014, é uma framework escalável, baseada em JavaScript, com uma abordagem orientada para os componentes. É normalmente utilizada em front end. Tem uma curva de aprendizagem gradual, que a torna “fácil” de ser escolhida. A sua elevada performance e leveza (30kb) torna-a uma das frameworks de JavaScript mais rápidas. Podemos citar algumas páginas que utilizam VueJs: Adobe, Alibaba ou Nintendo.
  • A Angular é a framework de front-end oficial desenvolvida pela Google. Nascida em 2016, oferece soluções inovadoras e permite a criação de componentes em JavaScript. É uma framework muito boa para o desenvolvimento de aplicações web altamente interativas. Orientada para os componentes, fornece uma base de código sólida. Contudo, tem uma certa complexidade na sua curva de aprendizagem e o desenvolvimento de uma aplicação com a Angular obriga necessariamente à sua utilização de A a Z. Não é possível alterar a framework nos entretantos. Terás também de percorrer a fase de TypeScript para usar a Angular!
  • A React não é uma framework, é talvez por isso que possas ter ouvido algum ruído de fundo anteriormente. Ao invés disso, é considerada uma “biblioteca de front-end”. Nascida em 2013 e desenvolvida pelo Facebook, tem uma comunidade de recursos extensa e de livre acesso (que se baseia em métodos de trabalho cooperativo e descentralizado). Apesar da sua curva de aprendizagem relativamente rápida, a sua utilização a longo-prazo é relativamente mais complexa. Enquanto biblioteca, a React fornece componentes reutilizáveis mas não tem qualquer estrutura de software.

Para colher é preciso semear! O desenvolvimento é entusiasmante e acessível a todos e algumas frameworks são simples de utilizar no início, tornando-se mais complexas com o crescimento da aplicação. Por outro lado, outras requerem uma curva de aprendizagem mais extensa, mas tornam-se mais fáceis de gerir a longo-prazo, assim que a aplicação esteja concebida e a funcionar. Resumindo: deves escolher métodos baseados em cada projeto e nas tuas próprias competências.

De qualquer forma, a utilização de uma framework requer conhecimento da linguagem na qual é desenvolvida. Para utilizar a Symfony, a Laravel e muitas outras, terás de te sentir confortável em PHP e OOP (Object Oriented Programming). No que diz respeito à React, Angular ou NodeJS, é essencial o conhecimento prévio de JavaScript.


Por último, existem muitas outras frameworks de web development – suficientes para satisfazer todo o teu desejo de aprender!

Se estás interessado em web development, visita a área do developer na nossa página e, se tiveres alguma dúvida, não hesites em contatar-me pessoalmente através da minha conta no LinkedIn!

trainer-framework