transifex - desenvolvendo uma aplicação complexa na simplicidade do django

23
Indi fex Diego Búrigo Zacarão [email protected] @diegobz Desenvolvendo uma aplicação complexa na simplicidade do Django

Upload: diego-burigo-zacarao

Post on 25-May-2015

987 views

Category:

Technology


0 download

TRANSCRIPT

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

Indifex

Diego Búrigo Zacarã[email protected]

@diegobz

Desenvolvendo uma aplicação complexana simplicidade do Django

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

Indifex

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

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

Indifex

Visão geral

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

Indifex

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

Indifex

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

Indifex

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

Indifex

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

Indifex

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

Indifex

O que está por trás do Transifex?

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

Indifex

Um framework Web de alto nível escrito em Python que estimula o desenvolvimento rápido e limpo.

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

Indifex

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

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

Indifex

Criando um projeto Django

django­admin.py startproject transifex

transifex/__init__.pymanage.pysettings.pyurls.py

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

Indifex

Criando um aplicação Django

./manage.py startapp project

transifex/project/    __init__.py    models.py    views.py    urls.py    templates/    templatetags/    ...

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

Indifex

Problemas e Soluções

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

Indifex

from django.db import models

class Project(models.Model):

    name = models.CharField(max_length=50)

models.py

# Criar tabelas# ./manage.py syncdb

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

Indifex

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

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

Indifex

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)

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

Indifex

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

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

Indifex

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

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

Indifex

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

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

Indifex

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.

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

Indifex

Enfim...

Perguntas?

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

Indifex

Diego Búrigo Zacarã[email protected]

@diegobz

Licenciada sob Creative Commons CC-BY 3.0

Obrigado!