10 formas como Laravel vai aumentar a sua produtividade

Por -

Desenvolvedores familiarizados com Laravel já sabem que um dos principais benefícios do framework é a velocidade com que resultados bons e robustos são obtidos. Se você ainda não teve a oportunidade de fazer um projeto com o “framework do momento”, esse artigo é definitivamente para você.

"Did someone say rapid? Elegant applications delivered at warp speed." - Laravel.com

Conheça 10 formas como Laravel vai te ajudar a cumprir prazos sem deixar a qualidade de lado.

1. Migrations

Migrations são um tipo de controle de versão para schema de banco de dados. Eles permitem que você e a sua equipe modifiquem e evoluam as tabelas e colunas de forma que todos vão ter a versão mais atualizada da base de dados.

Diga adeus ao “phpmyadmin”, softwares visuais de gerenciamento ao estilo “mysql workbench” e ficar guardando e transportando arquivos “.sql” para o servidor. Você não faz ideia do tempo que pode economizar utilizando migrations.

MigrationGif

Leia mais sobre migrações na documentação traduzida do Laravel.

2. O elegante Eloquent ORM

O Eloquent é incluído com o Laravel e fornece uma forma bonita, simples e robusta para trabalhar com o seu banco de dados. Cada tabela do banco de dados tem um "Modelo" correspondente que é usado para interagir com determinada tabela.

Se você já sujou a mão acessando, inserindo e atualizando suas tabelas sem um ORM, tenho certeza acabou sofrendo conforme a complexidade do projeto aumentava.

Toda a interação com o banco de dados fica simples e intuitiva com o Eloquent. O acesso as linhas do banco de dados, relação entre tabelas e inserção de novos registros pode ser feito rapidamente e com todas as medidas de segurança que o PDO não te oferece out-of-the-box.

Eloquent

O Eloquent pode ser comparado com o Doctrine. Ambos tem a mesma proposta, porém o Eloquent se foca na produtividade e elegância mais do que o seu primo mais inchado (Doctrine).

3. Agendamento de Tarefas

Você já precisou adicionar algum tipo de "tarefa agendada" na sua aplicação? Para isso, é necessário gerar uma entrada na Crontab para cada tarefa a qual queria agendar, e as vezes pode ser bastante irritante.

Configurar a sua agenda de tarefas direto no servidor (e não na sua aplicação) exige que você faça um trabalho delicado de relojoeiro, é difícil de testar, versionar e encontrar problemas, podendo acabar com a estabilidade de um castelo de cartas.

Com o agendamento de tarefas do Laravel podemos criar os agendamentos dentro da aplicação. Com isso você vai ter tarefas rodando no momento certo e sem complicação.

Scheduled Jobs in Laravel

Aprenda como agendar tarefas para sua aplicação com Laravel

4. Validação sem dor

O Laravel tem um componente muito conveniente de validação. Com ele é possível validar facilmente formulários e registros antes de inserir no banco de dados. Tudo isso já com mensagens de erro padronizadas que são geradas automaticamente com o nome dos campos (disponível e personalizável em português).

Esse sistema de validação é simples de usar e bastante expansível. Confira a documentação e dê uma olhada nos exemplos.

5. Artisan e a linha de comando

Utilizar o terminal / linha de comando do sistema operacional faz você parecer um hacker ninja, isso é indiscutível! Mas além disso a linha de comando confere uma rapidez na hora de executar tarefas e gerar esqueletos para as suas classes.

Existe alguma tarefa que você precisa executar com frequência na sua aplicação? Fazer backup da base? Entrar em modo de “manutenção”? Marcar assinaturas antigas como “sem acesso”? Basta criar o seu próprio comando do artisan e depois, sempre que precisar, basta chama-lo na linha de comando.

Pode parecer estranho a princípio, mas depois de certo uso você vai entender porque os developers utilizam tanto a linha de comando (além de para parecer um ninja hacker, claro!).

6. Testando o disparo de E-mails

Se você já se encontrou configurando ou pegando as credenciais de seu servidor de SMTP para testar o disparo de e-mails pela sua aplicação sabe o quanto isso pode ser chato. Hoje existem várias ferramentas robustas para testar o disparo de e-mails. Mas a pergunta que fica é: Você realmente precisa investir tanto tempo nesse setup?

Com Laravel, basta escolher “log” como driver de e-mail e pronto! Qualquer e-mail que sua aplicação dispare vai ser impresso no Log com todos os detalhes necessários. Bem prático não?

Log Email Driver in Laravel

7. Funções “Helper”

Ainda que exista polêmica em torno do uso de funções do escopo global, Laravel oferece uma serie de funções opcionais que podem salvar o seu tempo.

Existem várias funções para manipular e acessar arrays que vão certamente elevar a sua produtividade (e te deixar mal acostumado). Por exemplo array_get, array_only, array_pull.

Manipulação de strings, diretórios, debugging e acessar variáveis de ambientes também fica mais fácil com as helper functions.

Não se sinta culpado por usar essas funções globais. O acoplamento é baixissimo mesmo utilizando esses helpers, pois o framework utiliza o Service Container para resolver os reais objetos por trás de cada uma dessas funções. Com isso você pode até trocar a implementação original dos helpers se desejar.

8. Composer e packages específicos

Imagine se cada amigo do Facebook te ajudasse a adicionar uma funcionalidade ou resolver algo do seu projeto. Agora imagine que você tem 5000 amigos!

O Packalyst.com lista os pacotes do Packagist.org que são específicos para Laravel, contando com mais de 5500 pacotes que vão te poupar tempo de desenvolvimento.

Packalyst lists Laravel Packages

Se você não conhece o composer, ele é uma ferramenta que gerencia as dependências e o carregamento dos arquivos do seu projeto.

O composer pode ser usado sem framework e sozinho já fornece diversos benefícios, porém o Laravel conta com uma forma específica de criar modulos / pacotes melhores para projetos Laravel.

Packages para Laravel usam o poder de modularização dos ServiceProviders já que contam com a base do framework presente na sua aplicação. (Ou seja, podem ser mais poderosos que packages genéricos)

Destaque para alguns packages que podem evitar a “re-invenção da roda” no seu próximo projeto: barryvdh/laravel-debugbar, zizaco/entrust, frozennode/administrator, intervention/image, toin0u/geotools-laravel, maatwebsite/excel, barryvdh/laravel-dompdf.

9. Assets do front-end com Elixir

O Elixir é uma ferramenta independente do framework mas que já é incluso com uma instalação limpa.

Se você acompanha as melhores práticas de front-end então já deve estar familiarizado com pré processadores, fusão de arquivos JavaScript e task-runners como Grunt e Gulp. Não? Então considere o Elixir como uma porta de entrada para o mundo do front-end moderno.

O Elixir fornece uma forma simples e fluente de definir Gulp tasks para sua aplicação. Ele executa pré-processadores de CSS e JavaScript além de test-runners automatizados.

Laravel Elixir in action

Agora você pode trabalhar com uma variedade de ferramentas de front-end sem gastar horas fazendo o setup de tudo isso. O Elixir incluí suporte à: Sass, Less, Source-Maps, CoffeeScript, ECMAScript6, Browserify, Babel e muito mais.

Aprenda mais sobre Elixir na documentação oficial

10. Comunidade receptiva

Laravel é um framework que se popularizou por ser amigável aos usuários. O criador, Taylor Otwell, sempre se preocupou em oferecer uma documentação de ótima qualidade aos desenvolvedores e toda a comunidade abraçou a causa de forma colaborativa.

"In my view, the best way I can serve my “customers” is by working very hard to present the absolute best “meal” I know how to create. And it’s served with the best documentation, the best website, the best community, and so on." - Taylor Otwell (http://productandsupport.com/taylor-otwell/)

O “eco-sistema Laravel” conta com uma rica documentação, Laracasts, Codecasts, comunidade em diversos países (inclusive o Laravel Brasil conta com mais de 3000 membros) com hangouts, encontros, tutoriais e artigos.

Com isso você certamente vai economizar tempo obtendo soluções para os seus problemas e buscando material de apoio para se aperfeiçoar cada vez mais em programação e no framework.

Conclusão

Alguns projetos podem ser complicados ao ponto de parecerem impossíveis. Mas boas ferramentas desconstroem a complexidade em partes concisas, humanas e acessíveis, poupando tempo e esforço.

"Any fool can make something complicated. It takes a genious to make it simple." - Woody Guthrie

OBS: Implementado sobre a base dos componentes do Symfony, o Laravel não deixa de lado a modularização, boas práticas e performance para oferecer as facilidades que foram apresentadas.