Aplicando SOLID com PHP7

416 visualizações

Publicada em

A nossa linguagem preferida evolui e o nosso código deve então seguir o mesmo passo. PHP 7 oferece novas funcionalidades que permitem simplificar, melhorar e aumentar o desempenho do seu código. Nessa palestra, apresentarei os conceitos SOLID e Object Calisthenics e como aplica-los e combina-los com as novas funcionalidades dessa sétima versão. Nossa atualização deve ser constante e do nosso código também.

Publicada em: Tecnologia
0 comentários
7 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
416
No SlideShare
0
A partir de incorporações
0
Número de incorporações
16
Ações
Compartilhamentos
0
Downloads
15
Comentários
0
Gostaram
7
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aplicando SOLID com PHP7

  1. 1. Aplicando S.O.L.I.D. com PHP7
  2. 2. Archer! Daniel Archer ● Programador PHP na KingHost ● Zend Certified Engineer 5.3 ● Organizador PHPRS ● Trabalho com PHP há 6 anos ● Palestrante ○ PHP Conference Brasil ○ TDC Porto Alegre ○ Faculdade Senac
  3. 3. ??? Como é o seu ambiente de trabalho?
  4. 4. Assim...
  5. 5. Ou Assim…...?
  6. 6. ??? O Que é SOLID? Em poucas palavras
  7. 7. “ Princípios para criar sistemas de fácil manutenção e extensíveis ao longo do tempo.
  8. 8. Benefícios Compreensão Mais fácil de entender o funcionamento do sistema
  9. 9. Benefícios Fácil Manutenção Classes definidas e com scopo pequeno
  10. 10. Benefícios Reuso Poucas responsabilidades, facilitam o reaproveitamento
  11. 11. Benefícios Extensível Pouca dependência, facilita e criação de novas classes.
  12. 12. O que significa S.O.L.I.D ?
  13. 13. O que significa? ◎ Single Responsability A classe deve ter apenas um motivo para ser alterada.
  14. 14. O que significa? ◎ Single Responsability ◎ Open / Close Principle Aberta para extensão, fechada para alteração.
  15. 15. O que significa? ◎ Single Responsability ◎ Open / Close Principle ◎ Liskov Subtitution A SubClasse deve ser substituível por sua classe Base.
  16. 16. O que significa? ◎ Single Responsability ◎ Open / Close Principle ◎ Liskov Subtitution ◎ Interface Segregation Interfaces específicas para problemas específicos.
  17. 17. O que significa? ◎ Single Responsability ◎ Open / Close Principle ◎ Liskov Subtitution ◎ Interface Segregation ◎ Dependency Inversion Design é gerenciar Dependências!
  18. 18. O que significa? ◎ Dependency Inversion Se voçe utiliza alguma coisa, Você é dependente dela. Se algo que você é dependente muda, Voçe precisa mudar.
  19. 19. Um mundo melhor...
  20. 20. … ou não!
  21. 21. Over Engineering Não antecipe problemas que você não tem
  22. 22. PHP7 PHP como nunca se viu antes!
  23. 23. Scalar Type Hints Int, Float, String, Bool + declare(strict_types = 1);
  24. 24. Place your screenshot here Lets Code Aprendemos código, fazendo código.
  25. 25. +Robusto -Código -Responsabilidades
  26. 26. Próximo Passo Exercitar...
  27. 27. Calisthenics “Exercícios” Créditos: Frank Medrano, Atleta Vegano
  28. 28. Fisiculturismo === Proteina Animal
  29. 29. Fisiculturismo === Proteina Animal
  30. 30. PHP === WordPress
  31. 31. PHP !== WordPress Nós podemos escrever um código bom!
  32. 32. Continuando… Calisthenics ◎ 1#Uma identação por método
  33. 33. Continuando… Calisthenics ◎ 1#Uma identação por método ◎ 2#Não use Else
  34. 34. Continuando… Calisthenics ◎ 1#Uma identação por método ◎ 2#Não use Else ◎ 3#Encapsular tipos Primitivos
  35. 35. Continuando… Calisthenics ◎ 1#Uma identação por método ◎ 2#Não use Else ◎ 3#Encapsular tipos Primitivos ◎ 4#Apenas uma -> por linha
  36. 36. Continuando… Calisthenics ◎ 1#Uma identação por método ◎ 2#Não use Else ◎ 3#Encapsular tipos Primitivos ◎ 4#Apenas uma -> por linha ◎ 5#Não Abrevie
  37. 37. ◎ 6#Classes Pequenas Continuando… Calisthenics
  38. 38. ◎ 6#Classes Pequenas ◎ 7#Limite atributos Continuando… Calisthenics
  39. 39. ◎ 6#Classes Pequenas ◎ 7#Limite atributos ◎ 8#Use Coleções Continuando… Calisthenics
  40. 40. ◎ 6#Classes Pequenas ◎ 7#Limite atributos ◎ 8#Use Coleções ◎ 9#Getters and Setters Continuando… Calisthenics
  41. 41. ◎ 6#Classes Pequenas ◎ 7#Limite atributos ◎ 8#Use Coleções ◎ 9#Getters and Setters ◎ 10#Documente! Continuando… Calisthenics
  42. 42. PHP7 SOLID Calisthenics
  43. 43. PHP7 SOLID Calisthenics
  44. 44. Single Resp.
  45. 45. PHP7
  46. 46. Calisth. Early Return
  47. 47. Collections
  48. 48. Obrigado! Perguntas? ◎ contato@danielcramer.com.br ◎ facebook.com/danielmarquescramer ◎ github.com/danielcramer ◎ www.php-rs.org
  49. 49. Resources Obrigado especial a todos que contribuíram com essa palestra: ◎ https://wiki.php.net/rfc/scalar_type_hints ◎ http://fr.slideshare.net/darkmira/scalar-types-hints ◎ http://pt.slideshare.net/rdohms/writing-code-that-lasts-or-writing- code-you-wont-hate-tomorrow-57656162 ◎ http://confreaks.tv/videos/goruco2009-solid-object-oriented-design ◎ http://pt.slideshare.net/petrabarus/whats-new-in-php7 ◎ http://pt.slideshare.net/guilhermeblanco/php-para-adultos-clean-code- e-object-calisthenics ◎ ◎

×