Desenvolvendo uma aplicação complexa      na simplicidade do Django          Diego Búrigo Zacarão             diegobz@indi...
Transifex●   Plataforma de gerenciamento de tradução open source●   Agnóstico à repositórios e VCS´s●   Conta com uma API ...
Visão geral              Indifex
Indifex
Indifex
Indifex
Indifex
Indifex
O que está por trás do Transifex?                                Indifex
Um framework Web de alto nível escrito em Python que estimula o desenvolvimento rápido e limpo.                           ...
Componentes básicos do Django●   Templates - Django Template Engine●   Models - Django ORM (Mapeamento Objeto-Relacional)●...
Criando um projeto Djangodjango­admin.py startproject transifex   transifex/      __init__.py      manage.py      settings...
Criando um aplicação Django./manage.py startapp project   transifex/      project/          __init__.py          models.py...
Problemas e Soluções                       Indifex
models.pyfrom django.db import modelsclass Project(models.Model):    name = models.CharField(max_length=50)# Criar tabelas...
Alterações no models.py●   Syncdb não é capaz de manipular essas mudanças,    mas uma aplicação chamada south é:        – ...
Carregamento dinâmico de apps●   Django-addons       –   Carregamento de apps plugáveis               ●   Models, views, c...
Cache em todos os lugares●   Django tem suporte a cache        –   memcache, db, filebased, etc...●   O importante é saber...
Múltiplos Dbs e roteamento●   Django tem suporte à múltiplos banco de dados●   Roteamento        –   Balanceamento de carg...
Indexação de dados●   Django-haystack       –   Suporte à vários motores: Solr, Whoosh e Xapian.       –   Natural para qu...
Desnormalização de dados●   Pré-calcular algumas informações e armazenar no    banco de dados.●   O mecanismo de sinais do...
Enfim...Perguntas?             Indifex
Obrigado!    Diego Búrigo Zacarão         diegobz@indifex.com              @diegobzLicenciada sob Creative Commons CC-BY 3...
Próximos SlideShares
Carregando em…5
×

Transifex - Desenvolvendo uma aplicação complexa na simplicidade do Django

1.124 visualizações

Publicada em

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Transifex - Desenvolvendo uma aplicação complexa na simplicidade do Django

  1. 1. Desenvolvendo uma aplicação complexa na simplicidade do Django Diego Búrigo Zacarão diegobz@indifex.com @diegobz Indifex
  2. 2. Transifex● Plataforma de gerenciamento de tradução open source● Agnóstico à repositórios e VCS´s● Conta com uma API poderosa● CLI – Aplicação Cliente em Linha de Comando● Eficiente e Efetivo● Total controle no processo de tradução Indifex
  3. 3. Visão geral Indifex
  4. 4. Indifex
  5. 5. Indifex
  6. 6. Indifex
  7. 7. Indifex
  8. 8. Indifex
  9. 9. O que está por trás do Transifex? Indifex
  10. 10. Um framework Web de alto nível escrito em Python que estimula o desenvolvimento rápido e limpo. Indifex
  11. 11. Componentes básicos do Django● Templates - Django Template Engine● Models - Django ORM (Mapeamento Objeto-Relacional)● Views – Classes/Funções escritas em Python● URL Patterns – Baseadas em expressões regulares Indifex
  12. 12. Criando um projeto Djangodjango­admin.py startproject transifex transifex/ __init__.py manage.py settings.py urls.py Indifex
  13. 13. Criando um aplicação Django./manage.py startapp project transifex/ project/     __init__.py     models.py     views.py     urls.py     templates/     templatetags/     ... Indifex
  14. 14. Problemas e Soluções Indifex
  15. 15. models.pyfrom django.db import modelsclass Project(models.Model):    name = models.CharField(max_length=50)# Criar tabelas# ./manage.py syncdb Indifex
  16. 16. Alterações no models.py● Syncdb não é capaz de manipular essas mudanças, mas uma aplicação chamada south é: – Esquema (alter table, etc...) – Migrações Forwards e Backwards – Tudo através de comandos de gerenciamento – Migra dados também Indifex
  17. 17. Carregamento dinâmico de apps● Django-addons – Carregamento de apps plugáveis ● Models, views, código em geral ● Com opção de habilitar/desabilitar apps ● Templates (com hooks) Indifex
  18. 18. Cache em todos os lugares● Django tem suporte a cache – memcache, db, filebased, etc...● O importante é saber como usar cache – Resultados de cálculos – Páginas inteiras ou seguimento específicos de páginas – Páginas em diferente idiomas Indifex
  19. 19. Múltiplos Dbs e roteamento● Django tem suporte à múltiplos banco de dados● Roteamento – Balanceamento de carga ● Escrita no db1, leitura no db2 – Aplicações com banco de dados independentes ● Login a partir de outro banco de dados – Configurável através de uma Classe Indifex
  20. 20. Indexação de dados● Django-haystack – Suporte à vários motores: Solr, Whoosh e Xapian. – Natural para quem usa Django ● Consultas de forma similar ao ORM do Django – Configurável através de modelos (models.py) – Opção de filtro ● Campos de um modelo e/ou por modelo Indifex
  21. 21. Desnormalização de dados● Pré-calcular algumas informações e armazenar no banco de dados.● O mecanismo de sinais do Django pode ser uma alternativa para disparar esses cálculos – pre_save, post_save, ou o que você quiser. Indifex
  22. 22. Enfim...Perguntas? Indifex
  23. 23. Obrigado! Diego Búrigo Zacarão diegobz@indifex.com @diegobzLicenciada sob Creative Commons CC-BY 3.0 Indifex

×