Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sua aplicação NÃO é filha de um Framework

Sua aplicação NÃO é filha de um Framework

O PHP cresceu muito e com isso veio a saga dos Frameworks. Eles são ótimos para agilizar o desenvolvimento de qualquer aplicação. São legais... Só que não!.. Quer dizer, em partes. Frameworks têm dificultado coisas simples. Eles têm causado infartes nos corações das apps, dando muito trabalho a times de desenvolvimento. Mostraremos como arquitetar sua app sem uma forte dependência de um framework.

Daniel Lima

May 31, 2014
Tweet

More Decks by Daniel Lima

Other Decks in Programming

Transcript

  1. - Daniel Lima dos Anjos Pinheiro, a.k.a “Tonho da Lua”

    - Programador há “um tanto” de tempo (+10 anos) Sobre mim...
  2. - 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...
  3. - 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...
  4. - 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...
  5. - 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...
  6. - 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...
  7. - 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...
  8. - 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...
  9. - Maior site de cifras do Brasil - 560mil visitas

    diárias - Projeto de 18 anos e…. crescendo!
  10. - Código legado em alguns lugares - Código espalhado -

    “Feito em casa” - Despadronizado - Difícil de manter
  11. Full-stack - Zend - Symfony - Cake - Laravel -

    Phalcon - “um tanto” Qual iríamos usar?
  12. Full-stack - Zend - Symfony - Cake - Laravel -

    Phalcon - “um tanto” Qual iríamos usar? Micro - Silex - Respect - Slim - Aura - Flight - “um tanto”
  13. Phalcon Prós - Extension do PHP - Compilado - Alta

    performance - Baixo consumo de memória - Responde a um grande número de reqs/s
  14. Phalcon Contras - 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?
  15. HHVM - Symfony 2 + HHVM > Phalcon - Zend

    2 + HHVM > Phalcon - Controle do framework usado - Debug e manutenção do framework usado
  16. - 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!
  17. 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
  18. 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 =)
  19. 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!
  20. 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.
  21. - Entidades - Interfaces dos repositórios - Implementação dos repositórios

    - Serviço - Controller - Config das dependencias - Index.php Gist
  22. class MusicaDbRepository implements MusicaRepositoryInterface { function buscarMaisAcessadas($quantidade = 1000) {

    //.. acessa o banco } function buscarMaisAcessadasPorArtista(Artista $artista) { //.. acessa o banco } } #bom
  23. class DomainClass { public function fazAlgumaCoisa() { $infraObject = new

    InfraClass; $applicationObject = new ApplicationClass; $uiObject = new UIClass; } } #ruim
  24. Referências Patterns of Enterprise Application Architecture Domain-Driven Design: Tackling Complexity

    in the Heart of Software Refactoring: Improving the Design of Existing Code