SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Melhores Práticas para
desenvolvimento com
Plone 4
http://www.slideshare.net/dorneles/melhores-praticas-dev-plone-4
Curitiba, PythonBrasil[6]
23 de Outubro de 2010
Dorneles Treméa
X3ng / Enfold / APyB / GTiC
1
quinta-feira, 4 de novembro de 2010
Crise de Identidade!
• Segundo Grau: Codorna (?)
• Universidade: Cortininha (???)
• Sidnei: Dorna
• APyB: Big Kahuna (2009)
• Limi:“Dolores” (??????????????????????????)
• Família: Déo
• 007: Neles, Dorneles.
• Eu:Apenas um rapaz latino-americano
2
quinta-feira, 4 de novembro de 2010
O que faço?
• Empreendedor na X3ng
• Desenvolvedor na Enfold Systems
• Presidente (office-boy, ...) na APyB
• Mestre de cerimônia na PythonBrasil :-)
• Tento ser um bom pai em casa!
• Colaborador no projeto Plone
3
quinta-feira, 4 de novembro de 2010
4
Plone?
(WTF?)
quinta-feira, 4 de novembro de 2010
Por que estão aqui?
• A outra sala estava lotada
• O Wifi é mais rápido
• Único lugar com tomadas sobrando
• Curitiba não tem praia
• Talvez tenham interesse no tema!
5
quinta-feira, 4 de novembro de 2010
Plone
• “Plone é atualmente o CMS mais
completo presente no mercado.”
-- Dorneles, PythonBrasil[6]
• E um dos mais rápidos também! :-)
6
quinta-feira, 4 de novembro de 2010
7
quinta-feira, 4 de novembro de 2010
Plone é RÁPIDO!
8
quinta-feira, 4 de novembro de 2010
Primeiros Passos
• Sistema Operacional
• Python
• Buildout
• Coca-Cola Código
• Profit!
9
quinta-feira, 4 de novembro de 2010
Desenvolvimento & Produção
Sistema Operacional
10
quinta-feira, 4 de novembro de 2010
Versões do Python
Plone 3.x Python 2.4.x
Plone 4.x Python 2.6.x
Plone 5.x Python ?
11
quinta-feira, 4 de novembro de 2010
Buildout
“Live together, die alone!”
-- Lost S02E23
12
quinta-feira, 4 de novembro de 2010
Controle deVersões
Não interessa qual,
mas use alguma coisa,
pelamordedeus! :-P
13
quinta-feira, 4 de novembro de 2010
Dica: cache
14
Ative o cache do buildout
$ mkdir -p ~/cache/{zope,download,eggs,extends}
$ cat ~/.buildout/default.cfg
[buildout]
zope-directory=/home/dorneles/cache/zope
download-cache=/home/dorneles/cache/download
download-directory=/home/dorneles/cache/download
eggs-directory=/home/dorneles/cache/eggs
extends-cache=/home/dorneles/cache/extends
quinta-feira, 4 de novembro de 2010
Dica: python
Use seu próprio Python
$ cd ~
$ svn co http://svn.plone.org/svn/collective/buildout/python
$ cd python
$ python bootstrap.py
$ bin/buildout
$ ls python*
15
quinta-feira, 4 de novembro de 2010
Dica: virtualenv
16
Ative o virtualenv a ser usado
$ python -V
Python 2.6.1
$ source ~/python/python-2.6/bin/activate
$ python -V
Python 2.6.6
quinta-feira, 4 de novembro de 2010
Dica: ZopeSkel
17
Conjunto templates para paster
$ pip install ZopeSkel
$ zopeskel plone3_buildout teste
$ cd teste
$ python bootstrap.py
$ bin/buildout
$ bin/instance start
quinta-feira, 4 de novembro de 2010
Dica: novos pacotes
18
Utilize o zopeskel, ora bolas!
$ zopeskel --help
$ zopeskel plone3_buildout teste
$ zopeskel plone_app package.one
$ zopeskel plone_pas package.two
quinta-feira, 4 de novembro de 2010
Dica: fixar versões
19
Define a versão exata dos pacotes
$ cat buildout.cfg
extends =
...
versions.cfg
$ cat versions.cfg
[versions]
package.one = 1.0
package.two = 0.666-satan++
quinta-feira, 4 de novembro de 2010
Dica: dump versions
20
Lista todos pacotes não pinados
$ cat buildout.cfg
[buildout]
extensions = buildout.dumppickedversions
...
quinta-feira, 4 de novembro de 2010
Dica: road runner
21
Pré-carrega testes para TDD
$ cat buildout.cfg
...
[roadrunner]
recipe = roadrunner:plone
packages-under-test =
package.one
package.two
quinta-feira, 4 de novembro de 2010
Dica: omelette
22
Gera árvore explodida pacotes
$ cat buildout.cfg
...
[omelette]
recipe = collective.recipe.omelette
eggs = ${instance:eggs}
location = ${buildout:directory}/source
quinta-feira, 4 de novembro de 2010
Dica: produtos úteis
• Products.Clouseau
• Products.Gloworm
• Products.DocFinderTab
• Products.PDBDebugMode
23
quinta-feira, 4 de novembro de 2010
Problemas buildout?
• bin/buildout -U
• Evita ler o ~/.buildout/default.cfg
• bin/buildout -D
• Inicia o pdb no ponto da exceção
• bin/buildout -t 2
• Reduz o timeout para 2 segundos
24
quinta-feira, 4 de novembro de 2010
Registro Usuários
25
• Introdução do plone.app.users
• Permite personalizar o formulário
de cadastro (e das preferências) do
usuário sem editar templates
• Exemplo: collective.examples.userdata
quinta-feira, 4 de novembro de 2010
Generic Setup
26
• Crie um snapshot no portal_setup
para ver todas as opções suportadas
• Arquivos devem conter apenas o que
realmente é necessário
• Utilize os atributos disponívies:
insert-before/.../purge/remove
quinta-feira, 4 de novembro de 2010
Dexterity
for the rescue?
27
• Archetypes não morreu (e não vai
morrer tão cedo!)
• Dexterity simplifica a criação de novos
tipos de conteúdo, permitindo a
edição do schema e a definição de
comportamentos pelo navegador
• ZopeSkel plugin: zopeskel.dexterity
quinta-feira, 4 de novembro de 2010
Outras Regras de Ouro
• Sempre alterar a senha do Manager após o
primeiro acesso
• Nunca mudar manualmente as permissões
dos objetos na ZMI, a menos que saiba o
que está fazendo!
• Utilize o collective.recipe.backup para não
se preocupar mais tarde...
28
quinta-feira, 4 de novembro de 2010
Contato
• Dorneles Treméa
• @dorneles
• dorneles@tremea.com
• deo @ irc://irc.freenode.net
29
quinta-feira, 4 de novembro de 2010

Weitere ähnliche Inhalte

Ähnlich wie Melhores Práticas para o Desenvolvimento com Plone 4

Novas tecnologias no aprendizado - Hábitos e ferramentas eficazes para os des...
Novas tecnologias no aprendizado - Hábitos e ferramentas eficazes para os des...Novas tecnologias no aprendizado - Hábitos e ferramentas eficazes para os des...
Novas tecnologias no aprendizado - Hábitos e ferramentas eficazes para os des...falarodrigo
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o pythonRodrigo Lira
 
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...tdc-globalcode
 
Poco Bibliotecas C++
Poco Bibliotecas C++Poco Bibliotecas C++
Poco Bibliotecas C++Uilian Ries
 
Ferramentas digitais interessantes para tutoria online
Ferramentas digitais interessantes para tutoria onlineFerramentas digitais interessantes para tutoria online
Ferramentas digitais interessantes para tutoria onlineespiraldigital
 
Primeiros passos em Python - Tchelinux Uruguaiana 2011
Primeiros passos em Python - Tchelinux Uruguaiana 2011Primeiros passos em Python - Tchelinux Uruguaiana 2011
Primeiros passos em Python - Tchelinux Uruguaiana 2011Jerônimo Medina Madruga
 
Plone total#1 - Introdução e Instalação
Plone total#1 - Introdução e InstalaçãoPlone total#1 - Introdução e Instalação
Plone total#1 - Introdução e InstalaçãoLucas Aquino
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 
Python e tipagem estática
Python e tipagem estáticaPython e tipagem estática
Python e tipagem estáticaVinta Software
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 
Desbravando a web com python - Matheus Lima
Desbravando a web com python - Matheus LimaDesbravando a web com python - Matheus Lima
Desbravando a web com python - Matheus LimaMatheus Dos Santos Lima
 
Debian no limite - como ter um desktop atualizado
Debian no limite - como ter um desktop atualizadoDebian no limite - como ter um desktop atualizado
Debian no limite - como ter um desktop atualizadoClaudio Ferreira Filho
 
Wordpress Além do Blog
Wordpress Além do BlogWordpress Além do Blog
Wordpress Além do BlogLuã de Souza
 

Ähnlich wie Melhores Práticas para o Desenvolvimento com Plone 4 (20)

Python Zope Plone - Ftec
Python Zope Plone - FtecPython Zope Plone - Ftec
Python Zope Plone - Ftec
 
Novas tecnologias no aprendizado - Hábitos e ferramentas eficazes para os des...
Novas tecnologias no aprendizado - Hábitos e ferramentas eficazes para os des...Novas tecnologias no aprendizado - Hábitos e ferramentas eficazes para os des...
Novas tecnologias no aprendizado - Hábitos e ferramentas eficazes para os des...
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...
 
Palestra Sacomp 2015
Palestra Sacomp 2015Palestra Sacomp 2015
Palestra Sacomp 2015
 
Poco Bibliotecas C++
Poco Bibliotecas C++Poco Bibliotecas C++
Poco Bibliotecas C++
 
Ferramentas digitais interessantes para tutoria online
Ferramentas digitais interessantes para tutoria onlineFerramentas digitais interessantes para tutoria online
Ferramentas digitais interessantes para tutoria online
 
O Futuro do Plone
O Futuro do PloneO Futuro do Plone
O Futuro do Plone
 
Primeiros passos em Python - Tchelinux Uruguaiana 2011
Primeiros passos em Python - Tchelinux Uruguaiana 2011Primeiros passos em Python - Tchelinux Uruguaiana 2011
Primeiros passos em Python - Tchelinux Uruguaiana 2011
 
Plone total#1 - Introdução e Instalação
Plone total#1 - Introdução e InstalaçãoPlone total#1 - Introdução e Instalação
Plone total#1 - Introdução e Instalação
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Development pitfalls
Development pitfallsDevelopment pitfalls
Development pitfalls
 
Trabalhando com Módulos no Puppet
Trabalhando com Módulos no PuppetTrabalhando com Módulos no Puppet
Trabalhando com Módulos no Puppet
 
Python e tipagem estática
Python e tipagem estáticaPython e tipagem estática
Python e tipagem estática
 
O Estado do Plone
O Estado do PloneO Estado do Plone
O Estado do Plone
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
Puppet webcast 4linux
Puppet webcast 4linuxPuppet webcast 4linux
Puppet webcast 4linux
 
Desbravando a web com python - Matheus Lima
Desbravando a web com python - Matheus LimaDesbravando a web com python - Matheus Lima
Desbravando a web com python - Matheus Lima
 
Debian no limite - como ter um desktop atualizado
Debian no limite - como ter um desktop atualizadoDebian no limite - como ter um desktop atualizado
Debian no limite - como ter um desktop atualizado
 
Wordpress Além do Blog
Wordpress Além do BlogWordpress Além do Blog
Wordpress Além do Blog
 

Melhores Práticas para o Desenvolvimento com Plone 4

  • 1. Melhores Práticas para desenvolvimento com Plone 4 http://www.slideshare.net/dorneles/melhores-praticas-dev-plone-4 Curitiba, PythonBrasil[6] 23 de Outubro de 2010 Dorneles Treméa X3ng / Enfold / APyB / GTiC 1 quinta-feira, 4 de novembro de 2010
  • 2. Crise de Identidade! • Segundo Grau: Codorna (?) • Universidade: Cortininha (???) • Sidnei: Dorna • APyB: Big Kahuna (2009) • Limi:“Dolores” (??????????????????????????) • Família: Déo • 007: Neles, Dorneles. • Eu:Apenas um rapaz latino-americano 2 quinta-feira, 4 de novembro de 2010
  • 3. O que faço? • Empreendedor na X3ng • Desenvolvedor na Enfold Systems • Presidente (office-boy, ...) na APyB • Mestre de cerimônia na PythonBrasil :-) • Tento ser um bom pai em casa! • Colaborador no projeto Plone 3 quinta-feira, 4 de novembro de 2010
  • 5. Por que estão aqui? • A outra sala estava lotada • O Wifi é mais rápido • Único lugar com tomadas sobrando • Curitiba não tem praia • Talvez tenham interesse no tema! 5 quinta-feira, 4 de novembro de 2010
  • 6. Plone • “Plone é atualmente o CMS mais completo presente no mercado.” -- Dorneles, PythonBrasil[6] • E um dos mais rápidos também! :-) 6 quinta-feira, 4 de novembro de 2010
  • 7. 7 quinta-feira, 4 de novembro de 2010
  • 8. Plone é RÁPIDO! 8 quinta-feira, 4 de novembro de 2010
  • 9. Primeiros Passos • Sistema Operacional • Python • Buildout • Coca-Cola Código • Profit! 9 quinta-feira, 4 de novembro de 2010
  • 10. Desenvolvimento & Produção Sistema Operacional 10 quinta-feira, 4 de novembro de 2010
  • 11. Versões do Python Plone 3.x Python 2.4.x Plone 4.x Python 2.6.x Plone 5.x Python ? 11 quinta-feira, 4 de novembro de 2010
  • 12. Buildout “Live together, die alone!” -- Lost S02E23 12 quinta-feira, 4 de novembro de 2010
  • 13. Controle deVersões Não interessa qual, mas use alguma coisa, pelamordedeus! :-P 13 quinta-feira, 4 de novembro de 2010
  • 14. Dica: cache 14 Ative o cache do buildout $ mkdir -p ~/cache/{zope,download,eggs,extends} $ cat ~/.buildout/default.cfg [buildout] zope-directory=/home/dorneles/cache/zope download-cache=/home/dorneles/cache/download download-directory=/home/dorneles/cache/download eggs-directory=/home/dorneles/cache/eggs extends-cache=/home/dorneles/cache/extends quinta-feira, 4 de novembro de 2010
  • 15. Dica: python Use seu próprio Python $ cd ~ $ svn co http://svn.plone.org/svn/collective/buildout/python $ cd python $ python bootstrap.py $ bin/buildout $ ls python* 15 quinta-feira, 4 de novembro de 2010
  • 16. Dica: virtualenv 16 Ative o virtualenv a ser usado $ python -V Python 2.6.1 $ source ~/python/python-2.6/bin/activate $ python -V Python 2.6.6 quinta-feira, 4 de novembro de 2010
  • 17. Dica: ZopeSkel 17 Conjunto templates para paster $ pip install ZopeSkel $ zopeskel plone3_buildout teste $ cd teste $ python bootstrap.py $ bin/buildout $ bin/instance start quinta-feira, 4 de novembro de 2010
  • 18. Dica: novos pacotes 18 Utilize o zopeskel, ora bolas! $ zopeskel --help $ zopeskel plone3_buildout teste $ zopeskel plone_app package.one $ zopeskel plone_pas package.two quinta-feira, 4 de novembro de 2010
  • 19. Dica: fixar versões 19 Define a versão exata dos pacotes $ cat buildout.cfg extends = ... versions.cfg $ cat versions.cfg [versions] package.one = 1.0 package.two = 0.666-satan++ quinta-feira, 4 de novembro de 2010
  • 20. Dica: dump versions 20 Lista todos pacotes não pinados $ cat buildout.cfg [buildout] extensions = buildout.dumppickedversions ... quinta-feira, 4 de novembro de 2010
  • 21. Dica: road runner 21 Pré-carrega testes para TDD $ cat buildout.cfg ... [roadrunner] recipe = roadrunner:plone packages-under-test = package.one package.two quinta-feira, 4 de novembro de 2010
  • 22. Dica: omelette 22 Gera árvore explodida pacotes $ cat buildout.cfg ... [omelette] recipe = collective.recipe.omelette eggs = ${instance:eggs} location = ${buildout:directory}/source quinta-feira, 4 de novembro de 2010
  • 23. Dica: produtos úteis • Products.Clouseau • Products.Gloworm • Products.DocFinderTab • Products.PDBDebugMode 23 quinta-feira, 4 de novembro de 2010
  • 24. Problemas buildout? • bin/buildout -U • Evita ler o ~/.buildout/default.cfg • bin/buildout -D • Inicia o pdb no ponto da exceção • bin/buildout -t 2 • Reduz o timeout para 2 segundos 24 quinta-feira, 4 de novembro de 2010
  • 25. Registro Usuários 25 • Introdução do plone.app.users • Permite personalizar o formulário de cadastro (e das preferências) do usuário sem editar templates • Exemplo: collective.examples.userdata quinta-feira, 4 de novembro de 2010
  • 26. Generic Setup 26 • Crie um snapshot no portal_setup para ver todas as opções suportadas • Arquivos devem conter apenas o que realmente é necessário • Utilize os atributos disponívies: insert-before/.../purge/remove quinta-feira, 4 de novembro de 2010
  • 27. Dexterity for the rescue? 27 • Archetypes não morreu (e não vai morrer tão cedo!) • Dexterity simplifica a criação de novos tipos de conteúdo, permitindo a edição do schema e a definição de comportamentos pelo navegador • ZopeSkel plugin: zopeskel.dexterity quinta-feira, 4 de novembro de 2010
  • 28. Outras Regras de Ouro • Sempre alterar a senha do Manager após o primeiro acesso • Nunca mudar manualmente as permissões dos objetos na ZMI, a menos que saiba o que está fazendo! • Utilize o collective.recipe.backup para não se preocupar mais tarde... 28 quinta-feira, 4 de novembro de 2010
  • 29. Contato • Dorneles Treméa • @dorneles • dorneles@tremea.com • deo @ irc://irc.freenode.net 29 quinta-feira, 4 de novembro de 2010