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

Post on 25-May-2015

987 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Indifex

Diego Búrigo Zacarãodiegobz@indifex.com

@diegobz

Desenvolvendo uma aplicação complexana 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

Indifex

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.

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

Indifex

Criando um projeto Django

django­admin.py startproject transifex

transifex/__init__.pymanage.pysettings.pyurls.py

Indifex

Criando um aplicação Django

./manage.py startapp project

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

Indifex

Problemas e Soluções

Indifex

from django.db import models

class Project(models.Model):

    name = models.CharField(max_length=50)

models.py

# Criar tabelas# ./manage.py syncdb

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

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)

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

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

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

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.

Indifex

Enfim...

Perguntas?

Indifex

Diego Búrigo Zacarãodiegobz@indifex.com

@diegobz

Licenciada sob Creative Commons CC-BY 3.0

Obrigado!

top related