SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Desenvolvendo uma aplicação complexa
      na simplicidade do Django


          Diego Búrigo Zacarão
             diegobz@indifex.com
                  @diegobz
                                       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__.py
      manage.py
      settings.py
      urls.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
models.py

from django.db import models


class Project(models.Model):
    name = models.CharField(max_length=50)




# 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
Obrigado!
    Diego Búrigo Zacarão
         diegobz@indifex.com
              @diegobz



Licenciada sob Creative Commons CC-BY 3.0   Indifex

Weitere ähnliche Inhalte

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

Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a Rômulo Jales
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniterAnderson Gonçalves
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Webantonio sérgio nogueira
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma JavaEteg
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonGrupo de Testes Carioca
 
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)Douglas Fischer
 

Ähnlich wie Transifex - Desenvolvendo uma aplicação complexa na simplicidade do Django (20)

Django
DjangoDjango
Django
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Oficina de Django
Oficina de DjangoOficina de Django
Oficina de Django
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Apresentação Drupal como LMS
Apresentação Drupal como LMSApresentação Drupal como LMS
Apresentação Drupal como LMS
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniter
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma Java
 
Inovando na Plataforma Java
Inovando na Plataforma JavaInovando na Plataforma Java
Inovando na Plataforma Java
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Aula 1a.ppt
Aula 1a.pptAula 1a.ppt
Aula 1a.ppt
 
Web open source
Web open sourceWeb open source
Web open source
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em python
 
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
 

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

  • 1. Desenvolvendo uma aplicação complexa na simplicidade do Django Diego Búrigo Zacarão diegobz@indifex.com @diegobz Indifex
  • 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. Visão geral Indifex
  • 9. O que está por trás do Transifex? Indifex
  • 10. Um framework Web de alto nível escrito em Python que estimula o desenvolvimento rápido e limpo. Indifex
  • 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. Criando um projeto Django django­admin.py startproject transifex transifex/ __init__.py manage.py settings.py urls.py Indifex
  • 13. Criando um aplicação Django ./manage.py startapp project transifex/ project/     __init__.py     models.py     views.py     urls.py     templates/     templatetags/     ... Indifex
  • 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. 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. 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. 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. 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. 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
  • 23. Obrigado! Diego Búrigo Zacarão diegobz@indifex.com @diegobz Licenciada sob Creative Commons CC-BY 3.0 Indifex