Desmistificando web2py - #TDC2011

2,093 views
1,980 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,093
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
42
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Desmistificando web2py - #TDC2011

  1. 1. Desmistificando web2py <ul><li>Apresentação
  2. 2. Mitos
  3. 3. Esclarecimentos
  4. 4. Novidades </li></ul>
  5. 5. Bruno Cezar Rocha - @rochacbruno <ul><li>Programador Python na blouweb.com
  6. 6. Colaborador no desenvolvimento do web2py
  7. 7. Mantenedor e desenvolvedor: </li><ul><li>www.web2pyslices.com
  8. 8. www.web2py.com e www.web2py.com.br
  9. 9. administrador da lista web2py-users-brasil </li></ul><li>Empreendedor: </li><ul><li>www.AnimalSystem.com.br
  10. 10. www.CursoDePython.com.br </li></ul></ul>
  11. 11. ”Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.” – Fayad Schmidit <ul><li>Não requer instalação
  12. 12. Web server integrado
  13. 13. Suporte a multiplos bancos de dados
  14. 14. Camada de abstração de acesso a dados
  15. 15. Padrão MVC
  16. 16. Padrão WSGI
  17. 17. MultiPlataforma
  18. 18. Geradores de Forms, uploads, validadores
  19. 19. Segurança e controle de acesso
  20. 20. Web services
  21. 21. Interface administrativa
  22. 22. Editor de códigos via web
  23. 23. Sistema de testes unitários
  24. 24. Sistema de ticket/log para erros
  25. 25. Sistema de plugins
  26. 26. Compatibilidade ETERNA! </li></ul>
  27. 27. Hein? (demo mostrando como funciona o web2py)
  28. 28. <ul><li>web2py não usa 'import' ?
  29. 29. só podemos desenvolver pelo navegador?
  30. 30. só funciona no Google App Engine?
  31. 31. só posso usar SQLITE?
  32. 32. web2py escala? (radbox.me)
  33. 33. existe TDD em web2py? (web2py_test_runner)
  34. 34. web2py é Pythonico? </li></ul>[MITO]
  35. 35. Esclarecimentos
  36. 36. Princípios Pythonicos
  37. 37. Definition of: Pythonic; &quot;to program in Python the same way one would program in Java&quot; ????????
  38. 38. PEP-8 – http://bit.ly/pep8 Zen do Python Nunca quebre os 3 princípios: 1. Não se repita! (DRY) 2. Deve haver apenas uma maneira para se fazer algo 3. Explícito é melhor do que implícito
  39. 39. isinstance ( web2py , Pythonic ) <ul><li>web2py segue os dois primeiros princípios: </li><ul><li>1. DRY
  40. 40. 2. Apenas uma maneira para se fazer algo
  41. 41. 3. Explícito é melhor do que Implícito </li></ul><li>web2py EXPLICITAMENTE altera o terceiro para: </li><ul><li>Em alguns casos,
  42. 42. O Implícito acaba sendo mais DRY que o Explícito </li></ul></ul>
  43. 43. web2py auto imports (into its own environment) <ul><li>request
  44. 44. response
  45. 45. session
  46. 46. cache
  47. 47. URL
  48. 48. HTTP
  49. 49. redirect
  50. 50. T
  51. 51. DAL, and Field
  52. 52. (plus some HTML helpers and validators). </li></ul>>>> import keyword >>> keyword.kwlist ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'] Python keywords
  53. 53. Demo mostrando o shell do wen2py: video: http://vimeo.com/rochacbruno/idepraque
  54. 54. “Estou farto dessa porcaria de senso de “pureza” da comunidade Python. Tornando a linguagem e a plataforma dificeis de utilizar. Viva a magia, Eu quero mais”
  55. 55. exec() <ul><li>web2py executa as aplicações (M, V, C) </li><ul><li>Razão : </li><ul><li>Único framework que permite criar e remover apps em tempo de execução
  56. 56. Previne conflitos com nomes no sys.path
  57. 57. Funciona em webservers não Python (IIS, Jboss) </li></ul><li>Segurança </li><ul><li>web2py executa apenas código server-side, assim como o próprio Python faz!
  58. 58. web2py não executa user-input </li><ul><li>(a não ser que você queira) </li></ul></ul></ul></ul>Python stdlib também usa exec() htttp://bit.ly/namedtuples the real functional difference between an interpreted language and a compiled language
  59. 59. web2py é uma DSL? <ul><li>Se fosse, seria uma ótima linguagem! :) </li><ul><li>mas o fato é que web2py é puro Python, outros frameworks costumam utilizar DSL's como linguagens de template e arquivos de configuração.
  60. 60. No web2py templates, views, controllers, models, modules e configs são escritos em puro Python! </li></ul></ul>
  61. 61. web2py não é perfeito! <ul><li>Verdade! Nada é perfeito. </li><ul><li>O web2py pode não ser perfeito para todo mundo, e se este for o seu caso, não o use!
  62. 62. Mas não argumente contra as pessoas que se dedicam e o desenvolvem e disponibilizam para qualquer pessoa utilizar, sem custos! </li></ul></ul>
  63. 63. NOVIDADES web2py 1.97+
  64. 64. CORE <ul><li>REST API
  65. 65. WebSockets
  66. 66. PyPI Package
  67. 67. Auto setup para Nginx e uwsgi
  68. 68. Custom importer
  69. 69. Android </li></ul>
  70. 70. DAL <ul><li>Independência (agora pode ser usada for a do web2py)
  71. 71. Google MySQL for GAE
  72. 72. *SAP DB, Teradata, CUBRID, MongoDB e CouchDB
  73. 73. Validators for insert, update, delete (sem forms) </li></ul>
  74. 74. Auth <ul><li>user_signature (URLs assinadas)
  75. 75. request.tenant (multi tenância a nível de BD)
  76. 76. extra_fields (personalização do login)
  77. 77. CAS (Central Auth Server) </li></ul>
  78. 78. Plugins <ul><li>PluginManager
  79. 79. Tables, Grids, Forms </li><ul><li>PowerTable
  80. 80. PowerFormWizard
  81. 81. PowerGrid
  82. 82. web2py-app-rerport </li></ul><li>CMS </li><ul><li>plugin_wiki
  83. 83. powerpack
  84. 84. instant press </li></ul></ul>
  85. 85. Live demo: websockets (web2py_comet_messaging) CAS Plugins (PowerTable, PowerForm, PowerGrid, appreport)

×