Introdução ao Laravel Framework – Parte 01
Saudações, devs! 😎👍 Neste post vamos aprender sobre frameworks e como eles ajudam o desenvolvedor a ser mais produtivo e errar menos no processo de desenvolvimento e codificação de sistemas. Bora! 🚀
Mas, afinal de contas, o que é um framework? 🤔 Bom, nos dias atuais, considerando questões de prazo e produtividade, não dá pra ficar reinventando a roda, ou seja, construir classes e bibliotecas do “zero” para usar em projetos de desenvolvimento de software, independentemente da linguagem que você irá usar.
É justamente aí que entram os frameworks, que podem ser definidos como um conjunto de classes abstratas e bibliotecas integradas e testadas que se propõem a resolver problemas recorrentes em um projeto de software, provendo uma arquitetura extensível e flexível.
Um dos exemplos mais é o Twitter Bootstrap. Trata-se de um framework para o desenvolvimento front-end, focando na estrutura da página (HTML) e sua estilização (CSS), fornecendo diversas classes CSS e bibliotecas Javascript para a construção de páginas responsivas. Um outro exemplo é o Ionic, um framework para o desenvolvimento de aplicações mobile multiplataforma.
De fato, existem diversos frameworks para as mais diversas linguagens, todos eles com um único objetivo: prover uma arquitetura padronizada, escalável e extensível.
Sim, meus amigos! Podemos afirmar que os frameworks são os melhores amigos dos desenvolvedores, pois permitem focar no que realmente importa, ou seja, o domínio da aplicação e regras de negócio 😉👍. Todo o restante, isto é, aquilo que é recorrente em um projeto de software, tais como autenticação, segurança, ORM (Object-relational Mapping), etc, fica a cargo do framework.
Vantagens dos frameworks
- Provê um conjunto de bibliotecas integradas e testadas: não é necessário reinventar a roda!
- Oferece uma série de classes para lidar com requisitos comuns a todas as aplicações: autenticação, segurança, ORM, rotas, URLs amigáveis, validação, etc;
- Reduz o tempo de desenvolvimento: quando o foco está nos requisitos do usuário, há aumento de produtividade;
- Permite o desenvolvimento padronizado: facilita a reutilização e o compartilhamento de código;
- Provê uma arquitetura flexível: permite escalabilidade e integração com outros frameworks e sistemas;
- Geralmente possuem extensa documentação e diversas comunidades de desenvolvedores ativos.
Desvantagens dos frameworks
- O framework define a arquitetura da sua aplicação: essa falta de liberdade incomoda muitos desenvolvedores;
- Problemas de compatibilidade: pode haver problemas de integração com outros frameworks, bibliotecas e pacotes;
- Sua aplicação fica dependente do framework: Há risco de descontinuidade – quando a empresa ou a comunidade por trás da ferramenta resolve abandoná-lo;
- Atualizações podem causar problemas: migrar para versões mais atuais nem sempre é uma tarefa fácil, considerando as dependências do projeto.
Não estou usando um canhão pra matar uma formiga?
Essa clássica pergunta assombra muitos desenvolvedores, experientes ou não. Isso significa que às vezes o projeto é tão simples, que não vale a pena usar toda a complexidade de um framework para desenvolvê-lo.
Claro, temos que considerar que mesmo pequenos projetos podem escalar em tamanho e complexidade. Se isso acontecer, estar alicerçado em um framework robusto e popular pode fazer toda a diferença num cenário competitivo.
Há também o conceito de microframework, ou seja, versões “lite” 🤔 de frameworks, para aplicações mais simples. Enfim, o desenvolvedor deve escolher com sabedoria 👍.
Falando sobre o Laravel Framework
Laravel é um framework back-end baseado na linguagem PHP para o desenvolvimento rápido de aplicações web.
Atualmente na versão 8.x (agosto/2021), ele possui um completo ecossistema de aplicações e APIs de apoio, incluindo servidor de desenvolvimento, APIs de autenticação, microframework (Lumen), utilitários de linha de comando, motor de template para criação de views, entre outros.
Possui um poderoso console chamado Artisan, que auxilia o desenvolvedor na criação e no gerenciado do projeto e dos elementos que o compõem.
Possui Tinker, um utilitário REPL (read-eval print loop) que permite interagir com toda a aplicação mediante uma CLI (command-line interface);
Também oferece o conceito de Migrations, que permite a criação e o versionamento incremental de banco de dados relacionais;
As aplicações criadas com o Laravel framework são baseadas no padrão arquitetural MVC (Model View Controller), assim, o framework possui elementos para trabalhar em cada uma dessas camadas separadamente:
- Model: usa a biblioteca Eloquent ORM que implementa o padrão de projeto Active Record, ou seja, mantém cópias de registros das tabelas do banco de dados em memória, facilitando operações em bancos de dados relacionais;
- View: motor de template Blade, que deixa as views (arquivos HTML) mais limpos, legíveis e semânticos;
- Controller: classes que automatizam a criação de views e rotas.
Por essas características, apesar de ser considerando, a priori, um framework back-end, podemos afirmar que a “pegada” do Laravel é mais full-stack. Talvez por isso ele seja atualmente o mais popular framework baseado em PHP.
Conclusão
O Laravel framework possui um alto poder de abstração, tornando o processo de desenvolvimento de aplicações web uma tarefa mais simples, padronizada e rápida.
Por ser baseado na linguagem PHP, que é uma linguagem simples de aprender, sua curva de aprendizado é menor se comparado com outros frameworks.
O site oficial, laravel.com, possui completa documentação, além de exibir diversos tutoriais e exemplos de código. Há também a comunidade Laracasts, que possui um fórum de discussão e troca de ideias entre desenvolvedores. Um outro site que se destaca pela quantidade de conteúdo relacionado o framework é o Laravel News. Vale a pena conferir cada um deles!
No próximo post irei mostrar como instalar o Laravel e criar nosso primeiro projeto. Até breve! 😎👍