Laravel 

Best Practices




Melhorando seu código

Quem eu sou?



Guilherme Guitte (Guitte)

Fatec Sorocaba

Desenvolvedor Web

Já trabalhei com Ruby on Rails

Trabalho na Leroy Merlin (Laravel4)

Minha apresentação




  • O que são "boas práticas"?
  • Repositories
  • Libraries
  • Re-aproveitamento de código
  • TESTES
  • e muito mais...

O que são "boas práticas"?


"Boas práticas é uma expressão derivada do inglês "best practices" que denomina as técnicas identificadas como as melhores em termos de eficácia, eficiência e reconhecimento de valor para os envolvidos e afetados direta e ou indiretamente na realização de determinadas tarefas, atividades, procedimentos, ou até mesmo, na realização de um conjunto de tarefas, atividades, procedimentos devidamente agrupados ou integrados por um objetivo comum."

Resumindo...

Um "padrão" que funcionou para alguém e que pode funciona para você.

O que são "boas práticas"?


  • Não existe "silver bullet".
  • Veja o que se adequa à você.
  • Seja crítico.
  • Implemente em uma pequena porção e veja o resultado.
  • Pratique.
  • Não insira um "pattern" só porque acha bonito.

Cenário



  • Eu tenho uma aplicação CRUD de Meets bem básica.
  • Tenho o conceito em mente sobre: Skinny Controller, Fat Model.
  • Um ótimo começo.
  • Toda minha lógica consulta, validação está aplicada no Model.


Depois de um tempo que sua aplicação cresce ...

Cenário







Na prática

Repository Pattern





"Repositories are simply an interface between two things. You can think of them as a contract that states that certain

methods will be made available when using this interface."

Repository Pattern






Na prática

Repository Pattern


Repository Pattern


TO-DO:
  • Crie uma pasta em: app/repositories
  • adicione no seu composer.json "app/repositories"
  • composer dump-autoload
  • Crie uma classe repository
  • Crie uma interface repository
  • __construct




Repository Pattern


Ideias


  • BaseRepository??

Libraries





Problema

"Aonde coloco uma classe que não é model, nem controller?"

Libraries



Em nossa aplicação de meets, pode ter uma foto, então...

Go Go Go!!



Libraries


Re-aproveitamento de Código





Herança

Traits

Re-aproveitamento de código





Herança - Exemplo do BaseRepository


Agora Traits...

Re-aproveitamento de código







Na prática...

Testes

Próximos Hangouts....



Testes



Mas...

Testes mostram sinais de refactoring
Testes garantem consistência de seu código (se você testou direito)
Testes auxiliam num clean code

...

Testes


Por favor.... ;)


Outras coisas...



PSR-0, PSR-1, PSR-2.

Doc-Blocks

http://www.phptherightway.com/

Versione seu código...

etc...







Obrigado!

Contato





Github: @GuilhermeGuitte

LinkedIn: http://www.linkedin.com/in/guilhermefguitte

guilherme.guitte@gmail.com



laravel4-best-practices

By guilhermeguitte

laravel4-best-practices

  • 2,385