Upload
daniel-archer-marques-cramer
View
619
Download
0
Embed Size (px)
Citation preview
AplicandoS.O.L.I.D.
comPHP7
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
???Como é o seu ambiente de trabalho?
Assim...
Ou Assim…...?
???O Que é SOLID?Em poucas palavras
“Princípios para criar sistemas de fácil manutenção e extensíveis
ao longo do tempo.
Benefícios
CompreensãoMais fácil de entender o
funcionamento do sistema
Benefícios
Fácil ManutençãoClasses definidas e com scopo
pequeno
Benefícios
ReusoPoucas responsabilidades, facilitam o
reaproveitamento
Benefícios
ExtensívelPouca dependência, facilita e criação
de novas classes.
O que significaS.O.L.I.D ?
O que significa?
◎ Single Responsability
A classe deve ter apenas um motivo para ser alterada.
O que significa?
◎ Single Responsability
◎ Open / Close Principle
Aberta para extensão, fechada para alteração.
O que significa?
◎ Single Responsability
◎ Open / Close Principle
◎ Liskov Subtitution
A SubClasse deve ser substituível por sua classe Base.
O que significa?
◎ Single Responsability
◎ Open / Close Principle
◎ Liskov Subtitution
◎ Interface Segregation
Interfaces específicas para problemas específicos.
O que significa?
◎ Single Responsability
◎ Open / Close Principle
◎ Liskov Subtitution
◎ Interface Segregation
◎ Dependency InversionDesign é gerenciar Dependências!
O que significa?
◎ Dependency Inversion
Se voçe utiliza alguma coisa,Você é dependente dela.
Se algo que você é dependente muda, Voçe precisa mudar.
Um mundo melhor...
… ou não!
Over EngineeringNão antecipe problemas que você não tem
PHP7PHP como nunca se viu antes!
Scalar Type HintsInt, Float, String, Bool+declare(strict_types = 1);
Place your screenshot here
Lets CodeAprendemos código, fazendo código.
+Robusto-Código-Responsabilidades
Próximo PassoExercitar...
Calisthenics
“Exercícios”
Créditos: Frank Medrano, Atleta Vegano
Fisiculturismo ===
Proteina Animal
Fisiculturismo ===
Proteina Animal
PHP ===
WordPress
PHP !==
WordPressNós podemos escrever um código
bom!
Continuando… Calisthenics
◎ 1# Uma identação por método
Continuando… Calisthenics
◎ 1# Uma identação por método
◎ 2# Não use Else
Continuando… Calisthenics
◎ 1# Uma identação por método
◎ 2# Não use Else
◎ 3# Encapsular tipos Primitivos
Continuando… Calisthenics
◎ 1# Uma identação por método
◎ 2# Não use Else
◎ 3# Encapsular tipos Primitivos
◎ 4# Apenas uma -> por linha
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
◎ 6# Classes Pequenas
Continuando… Calisthenics
◎ 6# Classes Pequenas
◎ 7# Limite atributos
Continuando… Calisthenics
◎ 6# Classes Pequenas
◎ 7# Limite atributos
◎ 8# Use Coleções
Continuando… Calisthenics
◎ 6# Classes Pequenas
◎ 7# Limite atributos
◎ 8# Use Coleções
◎ 9# Getters and Setters
Continuando… Calisthenics
◎ 6# Classes Pequenas
◎ 7# Limite atributos
◎ 8# Use Coleções
◎ 9# Getters and Setters
◎ 10# Documente!
Continuando… Calisthenics
PHP7
SOLID
Calisthenics
PHP7
SOLID
Calisthenics
Single Resp.
PHP7
Calisth.Early
Return
Collections
Obrigado!Perguntas?
◎ [email protected]◎ facebook.com/danielmarquescramer◎ github.com/danielcramer◎ www.php-rs.org
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◎
◎