DEV Community

Jilcimar Fernandes
Jilcimar Fernandes

Posted on

[Tips & Tricks] Laravel Clean Code

Alt Text

E ai galera, neste artigo como o próprio título já fala, pretendo reunir algumas dicas para construirmos códigos mais limpos no Laravel. Todo bom desenvolvedor sabe o quanto é essencial termos um código "enxuto" e limpo, além de facilitar o entendimento ajuda os próximos devs que venham a pegar o seu código para manutenção.

Nem todos os passos aqui contidos devem ser estritamente seguidos e menos ainda se tornarão regras absolutas. Estas são dicas e nada mais, mas são coisas que aprendi ao longo da minha experiência trabalhando em equipe e a partir do que leio pelos autores de "Código Limpo".

1- Uso de Traits

As Traits servem simplesmente para reuso de código, que pode nos auxiliar nos casos em que fatalmente precisamos cair no comportamento de “copiar e colar” determinados trechos de códigos em diferentes classes. Dessa forma, a primeira dica é criarmos traits para nossos relacionamentos, assim podemos aproveitar eles em diferentes Models.

Eu gosto de criar elas em Models/Relations:
image
Este é um exemplo de uma trait para o relacionamento BelongsToUser:
image

No exemplo, os models de Address e Point possuem o mesmo relacionamento com o model de User, é feito apenas a chamada da trait BelongsToUser no início da classe sem precisar ficar reescrevendo o código do relacionamento:

2 - View Composer

Um recurso muito bacana do framework que gosto de utilizar é o uso de View Composer, nele simplesmente centralizamos as variáveis de cada view quando ela é renderizada sem precisar ficar passando os parâmetros pelo controller. Então, independente do lugar que chame aquela view, você não precisa ficar se preocupando com as variáveis que ela precisa receber. Veja o exemplo do meu UserViewComposer
image

Eu tenho um ServiceProvider chamado ViewServiceProvider que é onde define em quais views aquelas variáveis (roles e users) devem aparecer quando forem renderizadas.
image
Veja que sempre que forem chamada as views: 'pages.users.index', 'pages.users.create' e 'pages.users.edit' essas variáveis definidas no UserViewComposer estarão disponíveis, assim não precisamos nos preocupar em ficar passando elas pelo o controller! Sem falar que ocorre das vezes acabamos esquecendo de alguma 😅

3 - Separe a regra de negócio

Crie métodos no seu model para isolar a lógica de negócio. Seus controladores devem ser simples. Eles precisam dizer coisas como "criar fatura do pedido". Eles não devem se preocupar com os detalhes de como seu banco de dados está estruturado. Deixe isso para o modelo.

4 - Form's Request's

Ao invés de usar o validate dentro do seu controler, escolha os Requests, porque além de isolar toda a lógica de validação do seu backend, ainda deixa o controller mais limpo. Veja um exemplo da validação com e sem o uso de Form Request.

Sem Form Request ❌

image

Com Form Request ✅

image

Bem mais limpo né? Além disso, você pode até re-aproveitar a chamada das regras de validação e também fazer um esquema de "permissão" no authorize. Se curtiu essa dica, você pode da uma olhada na documentação oficial de como utilizar o Form Request

5 - Uso de Helper Functions

Se existem trechos de códigos que estão repetidos, outro recurso que você pode utilizar são os helpers.É muito comum usarmos para formatação e conversão de texto, por exemplo.
image
A função "money" agora pode ser chamada em qualquer parte do projeto.

E aí, você já sabia de todas? Essas foram só algumas sugestões que se aplicarmos no nosso dia a dia podem fazer muita diferença! Espero que tenham gostado, deixem mais dicas nos comentários 😃

Discussion (0)