Páginas

Thursday, August 7, 2008

Primeiras impressões no Django

De alguma forma, eu não tinha bons olhos pro Django. Parece que depois que comecei a usar o Turbogears eu me adaptei ao estilo de trabalho, e quando o Django fazia diferente acabava parecendo algo ruim.

Tirei isso da minha cabeça. Afinal, um bom tempo se passou, tanto o TG quanto o Django mudaram. O TG, aliás, é algo absolutamente diferente com a versão 2.0. Fui no site do Django e tive boas surpresas. Fiquei empolgado com o que vi. Django começou na frente.

Minhas percepções superficiais:
  • Gostei da ferramenta admin, que gera automaticamente uma inferface para classes do Model para seu projeto, e serve como scaffolding do Rails, ou quase isso. O TG não faz nada nesse nível out of the box. Existe o módulo tgcrud que supostamente faria o scaffolding, mas parece ser um projeto pouco ativo. No Turbogears temos uma interface de administração, mas ela não é tão facilmente imbutível no projeto em si. Nela, o CatWalk permite criar, ler, editar e remover itens do banco de dados via interface amigável, porém, para disponibilizar essa ferramenta na sua própria aplicação é preciso fazer algumas magias, e ainda assim não fica apresentável *.
  • Ainda em relação ao admin site, facilidades como: filtro automático em tabelas por determinado valor em uma coluna, busca baseado em uma ou mais colunas, e ordenação automática (basta clicar no título da coluna), são muito interessantes para permitir ações comumente realizadas em planilhas eletrônicas.
  • Enquanto o TG 2.0 não tem previsão de lançamento, o Django 1.0 vem no início de Setembro. É um ótimo momento de começar e já ir usando a versão que está no repositório SVN.
  • A filosofia do Django também me pareceu interessante, embora seja estranho eles quererem se chamar MTV ao invés de MVC. O que é View no MVC é Template no Django, e o que é Controller no MVC é View no Django. Só mesmo o Model se salvou.
  • Outro ponto que me causou desconforto desde o primeiro contato no início do ano passado foram os templates. Eu gosto do Kid Templating usado no TG pela cara de HTML e a limpeza visual do código. Todavia, não parece que o template do Django seja tão ruim assim, é mais questão de costume. O sistema de templating do Django suporta auto-escape, herança, e, hmm... *não* suporta código Python arbitrário! Isso parece ótimo, forçando o programador a não colocar lógica no Template (View do MVC...).

Depois que eu instalar o Django e ter percepções reais, posto o resultado!

* Se alguém se interessar em saber como colocar o CatWalk dentro de um projeto do Turbogears (sem usar o tg-admin toolbox), eu posso publicar a respeito.

Links:
http://www.djangoproject.com/documentation/tutorial02/
http://www.djangoproject.com/documentation/design_philosophies/
http://www.djangoproject.com/documentation/templates/

No comments: