29
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

Melhores Práticas para o Desenvolvimento com Plone 4

Embed Size (px)

Citation preview

Page 1: Melhores Práticas para o Desenvolvimento com Plone 4

Melhores Práticas para desenvolvimento com

Plone 4http://www.slideshare.net/dorneles/melhores-praticas-dev-plone-4

Curitiba, PythonBrasil[6]23 de Outubro de 2010

Dorneles TreméaX3ng / Enfold / APyB / GTiC

1

quinta-feira, 4 de novembro de 2010

Page 2: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 3: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 4: Melhores Práticas para o Desenvolvimento com Plone 4

4

Plone?(WTF?)

quinta-feira, 4 de novembro de 2010

Page 5: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 6: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 7: Melhores Práticas para o Desenvolvimento com Plone 4

7

quinta-feira, 4 de novembro de 2010

Page 9: Melhores Práticas para o Desenvolvimento com Plone 4

Primeiros Passos

• Sistema Operacional• Python• Buildout• Coca-Cola Código• Profit!

9

quinta-feira, 4 de novembro de 2010

Page 10: Melhores Práticas para o Desenvolvimento com Plone 4

Desenvolvimento & Produção

Sistema Operacional

10

quinta-feira, 4 de novembro de 2010

Page 11: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 12: Melhores Práticas para o Desenvolvimento com Plone 4

Buildout

“Live together, die alone!”

-- Lost S02E23

12

quinta-feira, 4 de novembro de 2010

Page 13: Melhores Práticas para o Desenvolvimento com Plone 4

Controle de Versões

Não interessa qual,

mas use alguma coisa, pelamordedeus! :-P

13

quinta-feira, 4 de novembro de 2010

Page 14: Melhores Práticas para o Desenvolvimento com Plone 4

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/zopedownload-cache=/home/dorneles/cache/downloaddownload-directory=/home/dorneles/cache/downloadeggs-directory=/home/dorneles/cache/eggsextends-cache=/home/dorneles/cache/extends

quinta-feira, 4 de novembro de 2010

Page 15: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 16: Melhores Práticas para o Desenvolvimento com Plone 4

Dica: virtualenv

16

Ative o virtualenv a ser usado

$ python -VPython 2.6.1$ source ~/python/python-2.6/bin/activate$ python -VPython 2.6.6

quinta-feira, 4 de novembro de 2010

Page 17: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 18: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 19: Melhores Práticas para o Desenvolvimento com Plone 4

Dica: fixar versões

19

Define a versão exata dos pacotes

$ cat buildout.cfgextends = ... versions.cfg$ cat versions.cfg[versions]package.one = 1.0package.two = 0.666-satan++

quinta-feira, 4 de novembro de 2010

Page 20: Melhores Práticas para o Desenvolvimento com Plone 4

Dica: dump versions

20

Lista todos pacotes não pinados

$ cat buildout.cfg[buildout]extensions = buildout.dumppickedversions...

quinta-feira, 4 de novembro de 2010

Page 21: Melhores Práticas para o Desenvolvimento com Plone 4

Dica: road runner

21

Pré-carrega testes para TDD

$ cat buildout.cfg...[roadrunner]recipe = roadrunner:plonepackages-under-test = package.one package.two

quinta-feira, 4 de novembro de 2010

Page 22: Melhores Práticas para o Desenvolvimento com Plone 4

Dica: omelette

22

Gera árvore explodida pacotes

$ cat buildout.cfg...[omelette]recipe = collective.recipe.omeletteeggs = ${instance:eggs}location = ${buildout:directory}/source

quinta-feira, 4 de novembro de 2010

Page 23: Melhores Práticas para o Desenvolvimento com Plone 4

Dica: produtos úteis

• Products.Clouseau

• Products.Gloworm

• Products.DocFinderTab

• Products.PDBDebugMode

23

quinta-feira, 4 de novembro de 2010

Page 24: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 25: Melhores Práticas para o Desenvolvimento com Plone 4

Registro Usuários

25

• Introdução do plone.app.users

• Permite personalizar o formuláriode cadastro (e das preferências) do usuário sem editar templates

• Exemplo: collective.examples.userdata

quinta-feira, 4 de novembro de 2010

Page 26: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 27: Melhores Práticas para o Desenvolvimento com Plone 4

Dexterityfor 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

Page 28: Melhores Práticas para o Desenvolvimento com Plone 4

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

Page 29: Melhores Práticas para o Desenvolvimento com Plone 4

Contato

• Dorneles Treméa

• @dorneles

[email protected]

• deo @ irc://irc.freenode.net

29

quinta-feira, 4 de novembro de 2010