Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PHP Simples e Produtivo

6,008 views

Published on

Palestra apresentada na TDC - The Developers Conference, em São Paulo, em 2011.

Published in: Technology
  • Be the first to comment

PHP Simples e Produtivo

  1. 1. @fgsl Zend Framework PHP Simples e Produtivo    Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 
  2. 2. @fgsl Livre distribuição Desde que citada a fonte    Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 
  3. 3. @fgsl Quem sou eu? www.fgsl.eti.br   
  4. 4. @fgsl Do que vamos falar? Simplicidade + Produtividade   
  5. 5. @fgsl Simplicidade Mito:Só coisas complicadas tem qualidade   
  6. 6. @fgsl A princípio impressiona...A  prosopopeia  flácida  para  acalentar  bovinos inflou o volume de minha bolsa escrotal de modo que estava para derrubar, com a extremidade do membro  inferior,  o  suporte  sustentáculo  de  uma das unidades de acampamento.   
  7. 7. @fgsl Já ouviu isso? Não entendi nada do que ele  falou. Esse cara deve ser bom!   
  8. 8. @fgsl Mas era só isso... Aquela conversa pra boi dormir  estava me enchendo o saco e eu  queria chutar o pau da barraca.   
  9. 9. @fgsl Olha quem está falando...Qualquer  tolo  inteligente  pode  fazer  coisas grandes,  mais  complexas  e  mais  violentas.  É preciso  um  toque  de  gênio  –  e  um  pouco  de coragem – para se mover na direção oposta. Albert Einstein   
  10. 10. @fgsl Olha quem está falando...A maioria das ideias fundamentais da ciência são essencialmente  simples,  e  podem,  como  regra, ser  expressas  em  uma  linguagem  compressível para todos. Albert Einstein   
  11. 11. @fgsl Essência do PHPA  solução  mais  complexa  raramente  é  a  certa. (…)  enquanto  outras  soluções  que  nos  cercam parecem  ficar  maiores  e  mais  complexas, estamos  nos  esforçando  para  simplificar  e racionalizar o PHP (...). Rasmus Lerdorf   
  12. 12. @fgsl PHP é objetivo   
  13. 13. @fgsl PHP é eficaz   
  14. 14. @fgsl Produtividade O que é produtividade?   
  15. 15. @fgsl Não é isso, certamente...   
  16. 16. @fgsl Talvez isso...   
  17. 17. @fgsl Não, não, é mais que isso...   
  18. 18. @fgsl PHP é produtivo   
  19. 19. @fgsl Mas cuidado...   
  20. 20. @fgsl fazer rápido X fazer bem feito Rápido Bem feito Rápido Bem feito Rápido  e bem  feito   
  21. 21. @fgsl fazer rápido X fazer bem feito Arrumar o escapamento   
  22. 22. @fgsl fazer rápido X fazer bem feito Reaproveitar o gabinete   
  23. 23. @fgsl fazer rápido X fazer bem feito Adaptar o carro para rodar na Inglaterra   
  24. 24. @fgsl FatosFazer  algo  rápido  pode  gerar  complexidade, enquanto  fazer  algo  bem  feito  pode  gerar simplicidade.   
  25. 25. @fgsl FatosAlgo  criado  para  resolver  um  problema  pode  se tornar um problema.   
  26. 26. @fgsl FatosA  situação  crítica  é  quando  você  não  consegue mudar  algo  mal  feito  por  precisar  dele  para contornar um problema maior.   
  27. 27. @fgsl Fatos   
  28. 28. @fgsl Fatos CPOP: Copy & Paste Oriented Programming Dead Code CBI: Cross Bug Injection TDB: Total Destruction Button   
  29. 29. @fgsl O que devo fazer?   
  30. 30. @fgsl Recomendações Newton    Copernico Galileu Descartes
  31. 31. @fgsl Recomendações   
  32. 32. @fgsl Recomendações Utilize a experiência de especialistas. Repita projetos de sucesso feitos por outras  pessoas. Não reinvente a roda.                                      
  33. 33. @fgsl E você pergunta... COMO?   
  34. 34. @fgsl E eu respondo: Use padrões de  projetos e boas  práticas   
  35. 35. @fgsl E você pergunta... Mas os padrões são  apenas um modelo de  solução! Eu tenho que  implementá­los!   
  36. 36. @fgsl E eu respondo: Então use frameworks!   
  37. 37. @fgsl E eu respondo: Ou melhor, use Zend Framework!   
  38. 38. @fgsl QuestãoO que é Zend Framework?   
  39. 39. @fgsl É a Liga da Justiça   
  40. 40. @fgsl São os Vingadores!   
  41. 41. @fgsl Ou seja... É uma biblioteca de  componentes PHP com baixo  acoplamento que podem ser  utilizados de forma separada ou  em conjunto para construção ou  manutenção de projetos.   
  42. 42. @fgsl A volta ao mundo em ~70  componentes De A a Z, o que podemos fazer  com Zend Framework   
  43. 43. @fgsl Zend_Acl Lista de controle de acessos.  Trabalha com a abordagem  RBAC (Role Based Access  Control)   
  44. 44. @fgsl Zend_Amf AMF (Action Message Format).  Integração com com Adobe Flex.   
  45. 45. @fgsl Zend_Application Encapsula a inicialização e  processamento das requisições.   
  46. 46. @fgsl Zend_Auth Componente que faz  autenticação, independente do  motor, e mantém os dados em  armazenamento próprio.   
  47. 47. @fgsl Zend_Barcode   
  48. 48. @fgsl Zend_Cache   
  49. 49. @fgsl Zend_Captcha   
  50. 50. @fgsl Zend_Cloud Componente para abstração de  recursos de computação em  nuvem.   
  51. 51. @fgsl Zend_CodeGenerator ...   
  52. 52. @fgsl Zend_Config Lê e escreve nos formatos INI,  XML, YAML e JSON.   
  53. 53. @fgsl Zend_Console_Getopt Facilita a criação de interfaces  para linha de comando.   
  54. 54. @fgsl Zend_Controller Implementação dos padrões de  projeto Front Controller, Page  Controller, com URLs amigáveis  e roteamento personalizado.   
  55. 55. @fgsl Zend_Currency Implementa o padrão de projeto  Currency, para abstrair moedas.  i18n.   
  56. 56. @fgsl Zend_Date Abstração de data e hora. i18n.   
  57. 57. @fgsl Zend_Db Abstração de conexão com  banco de dados e mapeador  objeto­relacional.   
  58. 58. @fgsl Zend_Debug Componente para ajudar a  depurar aplicações.   
  59. 59. @fgsl Zend_Dojo Integração com o framework  Javascript Dojo Toolkit.   
  60. 60. @fgsl Zend_Dom Manipulação da árvore DOM.   
  61. 61. @fgsl Zend_Exception Exceção padrão.   
  62. 62. @fgsl Zend_Feed Leitor e escritor de RSS.   
  63. 63. @fgsl Zend_File Transferência de arquivos com  validadores e filtros.   
  64. 64. @fgsl Zend_Filter Filtro de entrada e saída de  dados.   
  65. 65. @fgsl Zend_Form Construção dinâmica de  formulários.   
  66. 66. @fgsl Zend_GDataIntegração com a API do Google.   
  67. 67. @fgsl Zend_Http Abstração de requisições e  respostas.   
  68. 68. @fgsl Zend_Infocard Utilizado por Zend_Auth, abstrai  cartões de identidade.   
  69. 69. @fgsl Zend_Json Conversor e servidor JSON.   
  70. 70. @fgsl Zend_Layout Parte do padrão Two Step View.   
  71. 71. @fgsl Zend_Ldap Integração com serviços LDAP.   
  72. 72. @fgsl Zend_Loader Autocarregador de classes.   
  73. 73. @fgsl Zend_Locale Componente para localização  (l10n).   
  74. 74. @fgsl Zend_Log Abstração de log.   
  75. 75. @fgsl Zend_Mail Abstração de e­mail.   
  76. 76. @fgsl Zend_Markup Abstração para leitura e geração  de documentos baseados em  linguagem de marcação.   
  77. 77. @fgsl Zend_Measure Abstração de medidas. i18n.   
  78. 78. @fgsl Zend_Memory Objetos para ambientes com  limitações de memória.   
  79. 79. @fgsl Zend_Mime Manipulador de mensagens  MIME (Multipurpose Internet Mail  Extensions), usado por  Zend_Mail.   
  80. 80. @fgsl Zend_Navigation Controlador da navegação do  usuário, gerencia árvores de  ponteiros para páginas Web.   
  81. 81. @fgsl Zend_Oauth Implementação da especificação  Oauth para autorização segura.   
  82. 82. @fgsl Zend_OpenId Encapsula OpenId para  autenticação.   
  83. 83. @fgsl Zend_Paginator Controle de paginação de dados.   
  84. 84. @fgsl Zend_Pdf Geração e carregamento de  arquivos PDF.   
  85. 85. @fgsl Zend_ProgressBar Geração de barra de progresso.   
  86. 86. @fgsl Zend_Queue Fábrica de clientes para filas.   
  87. 87. @fgsl Zend_Reflection Extensão da API de reflexão do  PHP.   
  88. 88. @fgsl Zend_Registry Implementação do padrão de  projeto Registry.   
  89. 89. @fgsl Zend_Rest Clientes e servidores REST.   
  90. 90. @fgsl Zend_Search_Lucene Mecanismo de busca baseado  no Apache Lucene.   
  91. 91. @fgsl Zend_Serializer Fábrica de formatos de  serialização.   
  92. 92. @fgsl Zend_Server Abstração para criação de  servidores (provedores de  serviços).   
  93. 93. @fgsl Zend_Service Abstração para serviços de  terceiros, possui diversas  implementações prontas.   
  94. 94. @fgsl Zend_Session Abstração da sessão. Controla  início, fim e cria namespaces.   
  95. 95. @fgsl Zend_Soap Servidor e cliente SOAP.   
  96. 96. @fgsl Zend_Tag Criação de listas de tags.   
  97. 97. @fgsl Zend_Test Extensão do PHPUnit para  aplicações Zend Framework.   
  98. 98. @fgsl Zend_TextClasses para criar artes e tabelas  baseadas em texto.   
  99. 99. @fgsl Zend_TimeSync Recupera data e hora de  servidores NTP (Network Time  Protocol) ou SNTP (Simple  NTP).   
  100. 100. @fgsl Zend_Tool Gerador de código e framework  para criação de geradores.   
  101. 101. @fgsl Zend_Translate Tradução de textos. i18n.   
  102. 102. @fgsl Zend_Uri Abstração de URI.   
  103. 103. @fgsl Zend_Validate Regras de validação de dados.   
  104. 104. @fgsl Zend_Version Versão do framework.   
  105. 105. @fgsl Zend_View Implementação da camada de  visão. Usa por padrão templates  com extensão .phtml.   
  106. 106. @fgsl Zend_Wildfire Wildfire é um projeto open source  para canais de comunicação  padronizados. O componente do  Zend permite enviar dados do  servidor para o Firebug.   
  107. 107. @fgsl Zend_XmlRpc Cliente e servidor de XML­RPC.   
  108. 108. @fgsl UFA!   
  109. 109. @fgsl Perguntas?flaviogomesdasilva@yahoo.com.brwww.fgsl.eti.br http://www.temporealeventos.com.br    
  110. 110. @fgsl Obrigado!flaviogomesdasilva@yahoo.com.brwww.fgsl.eti.br http://www.temporealeventos.com.br    
  111. 111. @fgsl Referências Holmes, Josh. The Lost Art of Simplicity.  PHP Conference 2010. http://www.joshholmes.com/blog/2009/04/29/thelostartofsimplicity/   

×