quinta-feira, outubro 14, 2010

Rapidez na distribuição da aplicação e CouchDB! Por Luciano Ramalho (python-brasil)

Mensagem da lista Python-Brasil por Luciano Ramalho.

Eu ia falar sobre o quickly na minha palestra na PythonBrasil, mas
como tive que cancelar, resolvi compartilhar com vocês uma das
melhores descobertas que fiz ao pesquisar para a palestra.

Desde 2009 existe essa jóia pouco divulgada do projeto Ubunto chamada
Quickly [1]. Basicamente é um script e bibliotecas para ajudar você a
desenvolver, empacotar e publicar aplicações desktop com GUI para
rodar no Linux.

O script quickly funciona como o django-admin.py: você dá comandos e
ele gera diretórios e arquivos para te ajudar a começar a montar a
aplicação. O script quickly também se integra ao sistema de controle
de versão Bazaar e ao repositório de código Lauchpad, tornando a
divulgação do seu trabalho muito simples.

Docs oficiais:
[1] https://wiki.ubuntu.com/Quickly

Video demonstrando:
[2] http://www.youtube.com/watch?v=9EctXzH2dss

Pequenas receitas de código, muito úteis para principiantes em Python:
[3] https://wiki.ubuntu.com/Quickly/Snippets

Resenha:
[4] http://arstechnica.com/open-source/news/2009/08/quickly-new-rails-like-rapid-development-tools-for-ubuntu.ars

O que isso tem a ver com o tema "NoSQL para projetos de qualquer
tamanho", o título da minha palestra? Boa pergunta!

Tem tudo a ver. A API oferecida pelo Quickly integra com o
DesktopCouch, o CouchDB que vem instalado no Ubuntu Desktop desde a
versão 9.10. Nada mais racional como mecanismo de persistência para
pequenas aplicações do que um banco de dados orientado a documentos.

Vejam este exemplo, da página de snippets [3]:

########
from desktopcouch.records.server import CouchDatabase
from desktopcouch.records.record import Record as CouchRecord

db = CouchDatabase("dbname", create=True)
record = CouchRecord(
  {"a": 1, "b": 2}, record_type="http://recordtypeurl",
  record_id=XXX)
db.put_record(record)
########

Note que o conteúdo do registro é um dicionário, e pode ser tão
complexo quanto você queira, com listas e mais dicionários aninhados.
Nada de lidar com relacionamentos, tabelas de ligação e toda aquela
complicação ditada pelo modelo relacional normalizado.

--
Luciano Ramalho
programador repentista || stand-up programmer
Twitter: @luciano

Nenhum comentário: