Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

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 emModels/Relations:
image
Este é um exemplo de uma trait para o relacionamentoBelongsToUser:
image

No exemplo, os models deAddress ePointpossuem o mesmo relacionamento com o model de User, é feito apenas a chamada da traitBelongsToUser 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 meuUserViewComposer
image

Eu tenho um ServiceProvider chamadoViewServiceProvider 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 noUserViewComposer 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 oForm 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 😃

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

  • Location
    Brazil
  • Work
    Desenvolvedor Backend Wepayments
  • Joined

More fromJilcimar Fernandes

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp