sua aplicação não é filha de um framework
TRANSCRIPT
![Page 1: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/1.jpg)
Sua aplicação não é filha de um framework
Dev In Company 2014
![Page 2: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/2.jpg)
- Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”
Sobre mim...
![Page 3: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/3.jpg)
- Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”- Programador há “um tanto” de tempo (+10 anos)
Sobre mim...
![Page 4: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/4.jpg)
- Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”- Programador há “um tanto” de tempo (+10 anos)- APAIXONADO por Arquitetura de Software
Sobre mim...
![Page 5: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/5.jpg)
- Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”- Programador há “um tanto” de tempo (+10 anos)- APAIXONADO por Arquitetura de Software- Músico, Produtor, DJ… essas coisas aí.
Sobre mim...
![Page 6: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/6.jpg)
- Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”- Programador há “um tanto” de tempo (+10 anos)- APAIXONADO por Arquitetura de Software- Músico, Produtor, DJ… essas coisas aí.- @yourwebmaker
Sobre mim...
![Page 7: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/7.jpg)
- Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”- Programador há “um tanto” de tempo (+10 anos)- APAIXONADO por Arquitetura de Software- Músico, Produtor, DJ… essas coisas aí.- @yourwebmaker (só escrevo besteira)
Sobre mim...
![Page 8: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/8.jpg)
- Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”- Programador há “um tanto” de tempo (+10 anos)- APAIXONADO por Arquitetura de Software- Músico, Produtor, DJ… essas coisas aí.- @yourwebmaker (só escrevo besteira)- fb.com/dlpinheiro
Sobre mim...
![Page 9: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/9.jpg)
- Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”- Programador há “um tanto” de tempo (+10 anos)- APAIXONADO por Arquitetura de Software- Músico, Produtor, DJ… essas coisas aí.- @yourwebmaker (só escrevo besteira)- fb.com/dlpinheiro
Sobre mim...
![Page 10: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/10.jpg)
- Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”- Programador há “um tanto” de tempo (+10 anos)- APAIXONADO por Arquitetura de Software- Músico, Produtor, DJ… essas coisas aí.- @yourwebmaker (só escrevo besteira)- fb.com/dlpinheiro
Sobre mim...
![Page 11: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/11.jpg)
![Page 12: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/12.jpg)
- Maior site de cifras do Brasil- 560mil visitas diárias- Projeto de 18 anos e…. crescendo!
![Page 13: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/13.jpg)
- Código legado em alguns lugares- Código espalhado- “Feito em casa”- Despadronizado- Difícil de manter
![Page 14: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/14.jpg)
Vamos usar um framework!
![Page 15: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/15.jpg)
Full-stack- Zend- Symfony- Cake- Laravel- Phalcon- “um tanto”
Qual iríamos usar?
![Page 16: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/16.jpg)
Full-stack- Zend- Symfony- Cake- Laravel- Phalcon- “um tanto”
Qual iríamos usar?
Micro- Silex- Respect- Slim- Aura- Flight- “um tanto”
![Page 17: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/17.jpg)
Phalcon
![Page 18: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/18.jpg)
Phalcon
Prós- Extension do PHP- Compilado- Alta performance- Baixo consumo de memória- Responde a um grande número de reqs/s
![Page 19: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/19.jpg)
Phalcon
![Page 20: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/20.jpg)
Phalcon
![Page 21: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/21.jpg)
Phalcon
![Page 22: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/22.jpg)
Phalcon
![Page 23: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/23.jpg)
PhalconContras- Escrito em C
- Quem aqui é um bom desenvolvedor C?- Péssimo para testar
- “final” em diversos métodos- Péssimo para debugar
- Stack-trace? Onde? Como?
![Page 24: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/24.jpg)
Quem aqui é um bom desenvolvedor C?
![Page 25: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/25.jpg)
OK...Dá pra levar#chatiado
![Page 26: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/26.jpg)
Até que…
![Page 27: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/27.jpg)
HHVM
![Page 28: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/28.jpg)
HHVM
- Symfony 2 + HHVM > Phalcon- Zend 2 + HHVM > Phalcon- Controle do framework usado- Debug e manutenção do framework usado
![Page 29: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/29.jpg)
HHVM
![Page 30: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/30.jpg)
HHVM
![Page 31: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/31.jpg)
HHVM
Assunto pra outra palestra =)
![Page 32: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/32.jpg)
Let’s code direito!!!
![Page 33: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/33.jpg)
Let’s Desacoplar!
![Page 34: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/34.jpg)
Não… Pera!
![Page 35: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/35.jpg)
Pense!
![Page 36: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/36.jpg)
- Isso não é receita de bolo!- Assim como quase tudo em dev também não é!
- Talvez não seja o caso para sites novos!- Não é necessário reinventar a roda!
Pense!
![Page 37: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/37.jpg)
Pensou?
![Page 38: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/38.jpg)
Let’s code direito!!!
![Page 39: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/39.jpg)
Separando conceitos
![Page 40: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/40.jpg)
MVC?
![Page 41: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/41.jpg)
Quanto mais camadas melhor!
![Page 42: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/42.jpg)
![Page 43: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/43.jpg)
Divida camadas em sub-camadas
![Page 44: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/44.jpg)
User Interface
Application
Domain
Infra
Forms Nav Grid Search
Input Validation Session Auth Router
Domain Services
Entities Repositories Value Objects
Database Cache FileSystem Log
...
Factories
![Page 45: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/45.jpg)
Domain
Domain Services
Entities Repositories Value Objects Factories
Domain do Cifra Club
![Page 46: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/46.jpg)
Domain
Domain Services
Entities Repositories Value Objects Factories
- Exibir cifras- Transpor cifras- Listar músicas - Ver video aulas- Enviar cifra- Moderar cifra- Moderar usuários
- Top artistas por periodo- Top cifras por periodo- Segredinhos =)
![Page 47: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/47.jpg)
Domain
Domain Services
Entities Repositories Value Objects Factories
Domain é vida!- Independente do framework, ele será o mesmo!- Se importe com ele, de verdade =)- Coração da sua aplicação!
![Page 48: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/48.jpg)
Domain
Domain Services
Entities Repositories Value Objects Factories
Domain é vida!- Independente do framework, ele será o mesmo!- Se importe com ele, de verdade =)- Coração da sua aplicação!
- Ele NÃO DEVE saber qual framework é usado.- Ele NÃO DEVE saber qual banco ou infra é usada.
![Page 49: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/49.jpg)
Domain
Domain Services
Entities Repositories Value Objects Factories
Mas… Como separá-lo?
![Page 50: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/50.jpg)
Interfaces
![Page 51: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/51.jpg)
Repositories
![Page 52: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/52.jpg)
Services
![Page 53: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/53.jpg)
S.O.L.I.D.
![Page 54: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/54.jpg)
Tudo isso ligado com...
![Page 55: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/55.jpg)
Injeção de Dependência
![Page 56: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/56.jpg)
Cadê o código?
![Page 57: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/57.jpg)
- Entidades- Interfaces dos repositórios- Implementação dos repositórios- Serviço- Controller- Config das dependencias- Index.php
Gist
![Page 58: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/58.jpg)
Reflexões sobre o gist...
![Page 59: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/59.jpg)
Apesar de parecerem “simples” e “facilitar” a
vida, caia fora deles!
![Page 60: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/60.jpg)
“deles”, quem?
![Page 61: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/61.jpg)
dos frameworks?
![Page 62: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/62.jpg)
NÃO!!!
![Page 63: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/63.jpg)
Desses caras aqui!!!
![Page 64: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/64.jpg)
- C.R.U.D.
Desses caras aqui!!!
![Page 65: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/65.jpg)
- C.R.U.D.- Arrays
Desses caras aqui!!!
![Page 66: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/66.jpg)
- C.R.U.D.- Arrays- Rotinas
Desses caras aqui!!!
![Page 67: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/67.jpg)
- C.R.U.D.- Arrays- Rotinas- Código “Deus”
Desses caras aqui!!!
![Page 68: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/68.jpg)
Interfaces devem representar o que seu
Domain faz...
![Page 69: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/69.jpg)
interface MusicaRepositoryInterface
{
function buscarMaisAcessadas($quantidade = 1000);
function buscarMaisAcessadasPorArtista(Artista $artista);
}
#bom
![Page 70: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/70.jpg)
interface ArtistaRepositoryInterface
{
function buscarMaisAcessados(Periodo $periodo);
}
#bom
![Page 71: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/71.jpg)
… E depois devem ser implementadas em outras
camadas!
![Page 72: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/72.jpg)
class MusicaDbRepository implements MusicaRepositoryInterface
{
function buscarMaisAcessadas($quantidade = 1000)
{ //.. acessa o banco }
function buscarMaisAcessadasPorArtista(Artista $artista)
{ //.. acessa o banco }
}
#bom
![Page 73: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/73.jpg)
“Saber” muito em OO é MUITO ruim!
![Page 74: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/74.jpg)
class DomainClass
{
public function fazAlgumaCoisa()
{
$infraObject = new InfraClass;
$applicationObject = new ApplicationClass;
$uiObject = new UIClass;
}
}
#ruim
![Page 75: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/75.jpg)
class DomainClass
{
public function fazAlgumaCoisa(
DomainInterfaceX $infraObject,
DomainInterfaceY $appObject,
DomainInterfaceZ $uiObject,
)
{ //.. }
}
#bom
![Page 76: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/76.jpg)
Evite usar o operador “new” dentro de métodos
![Page 77: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/77.jpg)
public function fazAlgo()
{
$componente = new Componente;
}
#ruim
![Page 78: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/78.jpg)
$componente = new SeuComponente;
//..
public function fazAlgo(SeuComponente
$componente)
{
$foo = $componente->fazAlgo();
}
#bom
![Page 79: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/79.jpg)
Evite singletons dentro de *suas* classes
![Page 80: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/80.jpg)
public function fazAlgo()
{
$componente = $frameworkComponente::
getInstance();
}
#ruim
![Page 81: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/81.jpg)
$componente = $frameworkComponente::getInstance();
//..
public function fazAlgo(SeuComponente
$componente)
{
$componente->fazAlgo();
}
#bom
![Page 82: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/82.jpg)
Evite herança de componentes do
framework no seu Domain
![Page 83: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/83.jpg)
class DomainClass extends FrameworkClass
#ruim
![Page 84: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/84.jpg)
class DomainClass
#bom
![Page 85: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/85.jpg)
Lembre-se:“Software development is
all design”
![Page 86: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/86.jpg)
Seja pramático na escolha das suas libs...
![Page 87: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/87.jpg)
… evite libs “novas”, pouco ativas, non-community
standards…
![Page 88: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/88.jpg)
#use libs de verdade
TWIG
Monolog
Doctrine
sf\Crawler
aura\signal
![Page 89: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/89.jpg)
![Page 90: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/90.jpg)
Pense!
![Page 91: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/91.jpg)
Phalcon???
![Page 92: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/92.jpg)
Perguntas?
![Page 93: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/93.jpg)
Guilherme Blanco
Agradecimentos
Luís Cobucci
![Page 94: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/94.jpg)
ReferênciasPatterns of Enterprise Application Architecture
Domain-Driven Design: Tackling Complexity in the Heart of Software
Refactoring: Improving the Design of Existing Code
![Page 95: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/95.jpg)
Estamos contratando!
![Page 96: Sua aplicação não é filha de um framework](https://reader031.vdocuments.com.br/reader031/viewer/2022030309/58f139cd1a28abb80b8b4575/html5/thumbnails/96.jpg)
Valeu!