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