Você está na página 1de 7

Entenda o que é Framework

Usar frameworks é algo que já faz parte do dia a dia da maioria dos desenvolvedores, especialmente de
quem trabalha com um grande número de projetos que usam funções similares. Afinal, a possibilidade
de reutilizar códigos com poucas alterações ajuda a poupar tempo.
Isso porque o framework dá uma caixa de ferramentas para o programador, que vai além do que é
oferecido pela linguagem. Seu conceito, porém, pode ser confuso em relação a outras formas de
aproveitar códigos em vários projetos, como a orientação a objetos e às classes.
A grande diferença é que o método opera de forma muito mais profunda, com vantagens e
desvantagens. Por isso, neste post, explicaremos o que é framework e qual é seu impacto no
desenvolvimento de projetos. Acompanhe!

O que é framework?
Basicamente, é um template com diversas funções que podem ser usadas pelo desenvolvedor. Com ele,
é desnecessário gastar tempo para reproduzir a mesma função em diferentes projetos, auxiliando em
um gerenciamento ágil de projetos. Em outras palavras, ele é uma estrutura base, uma plataforma de
desenvolvimento, como uma espécie de arcabouço. Ele contém ferramentas, guias, sistemas e
componentes que agilizem o processo de desenvolvimento de soluções, auxiliando os especialistas de
TI em seus trabalhos.
Possui também um conjunto de bibliotecas, que permitem aos desenvolvedores trabalharem sobre eles
para operações maiores. Além disso, é o responsável por “tomar conta” da solução criada, por assim
dizer. Assim, para que seu aplicativo ou solução dê certo, é preciso escolher um bom framework de
trabalho, principalmente por gerar todo o fluxo de controle da aplicação.
Isso também é importante, pois os frameworks fazem com que você não tenha que se preocupar em
ficar reescrevendo códigos, podendo focar somente na resolução de problemas, ou seja, direcionando
seus esforços para o objetivo final. Uma boa comparação é a da caixa de ferramentas, só que, em vez
de chaves de fenda e martelos, há bases para formulários de login, validação de campos e conexão com
bancos de dados.
Nesse sentido, como parte da tendência de buscar reduzir custos e aumentar a produtividade, o uso
desse recurso tem se tornado cada vez mais popular. Hoje, já existe uma grande variedade de soluções
disponíveis para as mais diversas linguagens, com comunidades que testam e criam diferentes funções.

Como um framework funciona?


As funções do framework têm uma grande variedade de parâmetros, garantindo ao desenvolvedor a
possibilidade de fazer personalizações, de acordo com as necessidades do projeto. Para isso, são usados
princípios de orientação a objeto, como a abstração, o polimorfismo e a herança.
Aliás, vale ressaltar que a integração entre as diferentes funções dessa ferramenta é uma de suas
principais características. Isso significa que as ferramentas são feitas de forma aberta, para que se
adaptem a uma grande quantidade de situações. Os pontos providos pelo framework são chamados de
frozen spots ou hook points. Já a instanciação e a personalização criadas pelo desenvolvedor são
denominadas de host spots.

O que o diferencia de outras formas de modularização?


A criação de funções e a modularização também existem fora dos frameworks, o que pode causar certa
confusão. Bibliotecas de classes, por exemplo, são uma implementação em que as funções podem ser
importadas para uso em diversos projetos. A grande diferença do framework é a integração entre suas
diferentes funções. Enquanto em bibliotecas de classes as funções operam de forma relativamente
independente, em um framework há relações já embutidas de dependência entre os componentes.
Outro diferencial é a forma como o programa flui. No caso das bibliotecas, por exemplo, é o programa
que controla o fluxo e faz as importações. Já quando se usa um framework, é ele quem acessa as
funções criadas pelo usuário.

Quais são os cuidados necessários ao usar essa tecnologia?


Alguns cuidados devem ser tomados quando falamos de uso de frameworks. Por exemplo, há algumas
perguntas que devem ser respondidas de antemão, tais como:
• Quem será o profissional responsável por auditar o código desenvolvido?
• Quantas pessoas utilizarão o código criado? Há uma equipe responsável que conseguirá detectar
os bugs?
• Quem serão os responsáveis pelas correções de bugs? Como eles serão corrigidos e quando?
• Como serão programadas as atualizações das aplicações que usam esse framework?
• Como será feito o cronograma para aplicação das funcionalidades?
• Como será documentado o framework?
Também é importante considerar a possibilidade de os frameworks existentes não suprirem a
necessidade das suas aplicações, ou, em alguns casos, ele apresente uma complexidade muito maior do
que as soluções necessitam.

Quais os principais modelos de framework?


Para escolher o modelo de framework ideal para as soluções desenvolvidas, é essencial que você saiba
um pouco mais sobre cada um dos existentes. Leia um pouco mais sobre as principais opções
disponíveis!

Zend
Criado em 2005, alcançou fama rapidamente, principalmente pelo apoio dado por empresas como
Google e Microsoft. É um dos frameworks mais atualizados e consistentes do mercado. Não é um
modelo simples, de forma que tende a ser mais indicado para os projetos mais robustos.
Laravel
É considerado um dos frameworks PHP mais utilizados no mercado atualmente. Isso se deve,
principalmente, por ter um caráter robusto e extremamente versátil. Lançado em 2011, tem se tornado
extremamente popular ao longo dos últimos anos.
Há diversos tutoriais e vídeos, o que ajuda os programadores iniciantes a aprenderem a trabalhar com
esse framework Conta também com o Laracasts, que ensina aqueles que não estão habituados com as
peculiaridades da plataforma, auxiliando tanto os que estejam começando quanto os mais experientes.
Ele é adaptável para os mais diferentes tipos de projeto, facilitando desde os mais simples como os
mais robustos, atendendo aos mais diferentes processos.

Symfony
Esse modelo foi lançado em 2005 e utiliza a arquitetura MVC. O Symfony foi arquitetado justamente
para trabalhar de forma colaborativa com outras metodologias ágeis de desenvolvimento de
soluções. Ele foca essencialmente em regras de negócio da aplicação. Normalmente é indicado em
trabalhos de grande escala e mais robustos.

Phalcon
Foi criado em 2012 e tem crescido, exponencialmente, na área de desenvolvimento. Isso traz uma
vantagem importante: sua comunidade ativa auxilia a encontrar os erros e bugs disponíveis
no código do framework, bem como tirar dúvidas dos demais programadores.
Outro ponto é a facilidade em ter versões traduzidas para diversos idiomas logo depois de serem
lançadas, já que a própria comunidade realiza esse trabalho. Uma de suas principais vantagens é ser um
dos frameworks mais ágeis atualmente, bem como é escrito em C, diferentemente dos demais, cuja
maioria é criada em PHP.

CakePHP
Foi lançado em 2005 e seu objetivo é simplificar o processo de desenvolvimento para quem utiliza a
linguagem PHP, facilitando o trabalho tanto para os iniciantes quanto para os avançados. Também
contém mecanismos para trabalhar com JavaScript, Ajax, entre outros. É bastante útil, pois, trabalha em
cima da arquitetura MVC, o que também possibilita a criação de projetos dos mais diversos portes.

Como o uso de frameworks pode beneficiar a empresa?


O principal benefício desse recurso é sua capacidade de economizar tempo no desenvolvimento de
softwares. Isso é possível porque há a reutilização de códigos já testados que se mostraram eficazes.
Apresentamos, a seguir, outros motivos para usá-lo em projetos de desenvolvimento.

Menos bugs
Como já passou por diversos testes, o código de um framework, geralmente, já está sem bugs graves. E
isso se aplica, principalmente, aos de maior porte, que têm uma comunidade voltada para reportar erros
e corrigi-los. Com isso, ao aplicar uma estrutura como essa ao projeto, há menor preocupação com
erros de implementação. Isso, naturalmente, representa um aumento na qualidade de código do sistema.

Facilidade de aprendizado
A maioria dos frameworks de grande porte tem um registro extenso de documentação, o que facilita
muito o aprendizado por parte dos desenvolvedores. Esse material ajuda os profissionais a conhecerem
melhor as funções e a forma de utilizá-las. Além disso, praticamente todos os frameworks têm uma
comunidade específica que trabalha quase que exclusivamente com a solução de problemas e cria
fóruns de suporte para auxiliar os usuários.

Padronização de código
Para que haja compatibilidade, o desenvolvedor deve seguir o mesmo padrão de codificação usado pelo
framework. Isso contribui para que o código seja mais legível e, assim, torna a manutenção mais fácil.
Com isso, garante-se que todos os desenvolvedores envolvidos no projeto utilizarão o mesmo padrão.
Então, qualquer profissional que trabalhe posteriormente nos códigos vai entender a lógica do sistema
para fazer manutenções e alterações.

Redução de custos
Uma das principais vantagens da adoção de frameworks em projetos de desenvolvimento de software é
a redução significativa de custos com relação ao tempo de produção. Como todas as bases já são
providas pela ferramenta, a equipe só precisa se concentrar na camada de negócio. Isso facilita o
desenvolvimento de software e diminui o tempo das entregas.

Maior consistência das aplicações


Um problema comum da produção de software é a falta de consistência de algumas partes do projeto
em relação a outras. O padrão exigido, quando se trabalha com um framework, garante que a aplicação
tenha menos falhas do que quando é produzida integralmente desde o início. Isso permite que os
desenvolvedores se concentrem no que realmente interessa. Assim, as regras de negócio e os requisitos
apresentados pelo cliente, além de sua satisfação com o sistema, têm prioridade.

Incentivo ao conhecimento
Os frameworks são ferramentas e, quanto mais se trabalha com eles, maiores são os conhecimentos
adquiridos acerca de seu funcionamento. A cada projeto, pode-se aproveitar diferentes funcionalidades
do recurso para melhorar o resultado final. E como essas estruturas estão em constante evolução, o
aprendizado é natural.

Há desvantagens no uso de frameworks?


Os benefícios de se usar um framework são muito maiores do que as desvantagens — desde que se
saiba escolher a melhor alternativa e use-a bem. Por isso, veja, a seguir, algumas práticas negativas
ligadas ao uso desse tipo de ferramenta, que devem ser evitadas.
Dependência
É importante ressaltar que o framework é diferente da linguagem de programação usada para escrevê-
lo. Por isso, o desenvolvedor precisa conhecer bem a linguagem com a qual trabalha. Afinal, a ideia é
que ele aprenda mais sobre as funções do recurso, e não a linguagem em si. Quando se usa essa
ferramenta, o projeto passa a estar ligado a ela, o que causa a necessidade de retrabalho em caso de
migrações.

Complexidade de modificação do framework


O framework é uma estrutura complexa com várias funções interligadas. Por isso, um desenvolvedor
precisa conhecer muito bem, tanto sua linguagem quanto sua estrutura, se quiser fazer alterações em
qualquer de suas funções.

Códigos desnecessários que podem deixar o programa pesado


Há frameworks de todos os tipos, com as mais variadas funções e diferentes tamanhos. Por isso, o
desenvolvedor deve encontrar aquele que tenha só as funções que são necessárias para seu projeto —
ou o mínimo possível de componentes extras.
Lembre-se de que há diversas opções mais robustas, mas que essas ferramentas vêm com uma gama de
funções que têm poucas chances de serem usadas pela aplicação. Com isso, vão representar um peso
desnecessário no programa.

Quais são os principais frameworks?


Existem diversos frameworks disponíveis no mercado e é comum que grandes projetos utilizem mais
de um deles no desenvolvimento de software. Isso porque cada uma dessas estruturas pode ser usada
em uma parte distinta da programação. Conheça alguns deles a seguir!

Bootstrap
O Bootstrap é a alternativa mais conhecida para o desenvolvimento de código de folhas de estilo
(Cascading Style Sheets — CSS). Ele é responsável pelo estilo visual das páginas e pela criação de um
resultado incrível. Uma das principais vantagens de utilizá-lo em um projeto está ligada à
responsividade. É ela que dá às telas e aos elementos que as formam, a capacidade de se adequar ao
tamanho do dispositivo do usuário — seja um desktop, seja um smartphone.

Ionic
Framework de desenvolvimento de aplicações híbridas, o Ionic utiliza linguagens não nativas para criar
aplicativos que possam ser executados em dispositivos móveis. Ele fornece diversas ferramentas que
facilitam a criação de aplicações híbridas, possíveis de serem instaladas a partir das principais lojas de
aplicativos do mercado. Além disso, essa ferramenta suporta linguagens web, como linguagem de
marcação de hipertexto (HyperText Markup Language — HTML), CSS e JavaScript.
Angular
O Angular é um framework criado especialmente para auxiliar na interação entre o front e o back end.
É muito utilizado em projetos de página única para possibilitar a comunicação entre o computador local
e o servidor. Esse recurso permite que muitas interações e tarefas sejam realizadas diretamente na
máquina do usuário. Isso poupa processamento e desafoga o link de internet.

Qual a diferença entre frameworks e biblioteca de código?


A biblioteca é menos complexa do que o framework. É um dos recursos mais utilizados na área de TI,
cuja ideia principal é compartilhar soluções já prontas, por meio de funções ou métodos. Em uma
analogia bastante simples, seria o mesmo que aplicar a estrutura de equações para resolver problemas
matemáticos. Assim, não é preciso desenvolver toda a lógica para chegar a formulação da equação — a
questão já está pronta.
Em outras palavras, é uma espécie de coleção de implementações de comportamentos, definidas em
uma linguagem e importadas para o código que está desenvolvendo. Um exemplo de biblioteca de
códigos bastante utilizado é o jQuery, utilizado para manipulação de códigos HTML.
O framework, normalmente, é conhecido por ser um conjunto de bibliotecas de códigos abstratos que
realizarão uma operação maior. Com um maior grau de complexidade, está diretamente ligado à
arquitetura de software.
Um exemplo simples são as telas de login. Elas possuem características sempre bem semelhantes: uma
tela para inserção do nome do usuário, campo para inserção da senha, um botão de recuperação de
senha e um de ‘entrar’. Por terem sempre a mesma estrutura, criou-se um framework dessa operação,
de forma que essa função é implementada rapidamente no código, sem ter que reescrevê-lo sempre que
quiser acrescentar uma tela de login a sua solução.

Qual a relação entre o uso de frameworks e processos de


engenharia de software?
Em primeiro lugar, deixemos claro o conceito de engenharia de software. Ele diz respeito a uma área da
computação que se destina à especificação, desenvolvimento, manutenção e criação de softwares, com
aplicação de tecnologias, ferramentas, estratégias e práticas de gerência de projetos. Isso tudo com o
objetivo de conseguir uma melhor organização interna, produtividade e qualidade.
Por isso, ações, ferramentas e estratégias que conduzam a uma maior agilidade de processos e
eficiência são sempre bem-vindas e contribuem para as práticas de engenharia de software. E o
framework está diretamente relacionado com isso. Em primeiro lugar, ganha-se em tempo de realização
de processos. Afinal, se você já tem um determinado framework, não precisa escrever determinados
códigos e funções manualmente, basta incorporá-los.
Além disso, a composição manual pode ocasionar em falhas no processo. Uma linha errada pode
comprometer todo o projeto que está sendo executado. Com a inserção do framework, o código já está
escrito corretamente e pode ser aplicado de imediato, facilitando as práticas implementadas pelos
engenheiros de software presentes no projeto.

Como o framework está ligado à segurança do software?


Ao mesmo tempo que a maioria das soluções de framework oferece segurança, também pode estar
sujeita a vulnerabilidades. Isso acontece porque, por um lado, há um amplo suporte à correção de falhas
de segurança — já que a ferramenta é usada por vários desenvolvedores e tem uma comunidade inteira
para resolver vulnerabilidades. Por outro, entretanto, por ser um software aberto, usuários maliciosos
podem procurar falhas e explorá-las — o que representa certo risco.
Por isso, é fundamental que os profissionais que utilizam frameworks avaliem, constantemente, as
linhas de código presentes, verificando se há brechas de segurança ou vulnerabilidades inseridas.
Também é importante implementar medidas e protocolos de segurança, para preservar a integridade do
projeto.

A empresa pode desenvolver seu próprio framework?


Desenvolver o próprio framework é uma possibilidade para empresas com setores de tecnologia da
informação (TI) bem desenvolvidos e necessidades muito específicas. Para isso, pode-se usar códigos
de soluções próprias que tenha criado. Mesmo assim, é de extrema importância ter desenvolvedores
que conheçam a linguagem a fundo. Até porque, vale ressaltar, o principal benefício de se criar o
próprio recurso é o controle completo que se tem sobre as soluções.
No entanto, com isso também vem a responsabilidade por fazer documentação, testes, correções,
atualizações e, é claro, a implementação das funções. Por isso, esse projeto pode representar um alto
custo para a empresa, já que vários profissionais terão de investir tempo na execução e na manutenção
do framework.
Porém, em alguns casos, torna-se vantajoso ou, até mesmo, necessária a elaboração de um framework
próprio. Essa é uma questão que deve ser avaliada com as equipes específicas, pensando em questões
de custo-benefício e verificando se há, de fato, condições para que a organização arque com um projeto
desses.
Como vimos, o uso de frameworks pode agilizar projetos, garantir uma política de entrega contínua em
sua empresa, minimizar erros e oferecer maior eficiência para seus colaboradores.
Achou este conteúdo interessante? Então, compartilhe-o em suas redes sociais, para que outros colegas
da área de TI entendam como podem se beneficiar com o uso de frameworks.
7

Você também pode gostar