SlideShare uma empresa Scribd logo
globo   python e django
.com    na globo.com
Agenda
‣   Globo.com
‣   Antes e depois do Python
‣   Django
‣   Lições aprendidas
‣   Hands On
Apresentação
‣   Enrico Batista da Luz
‣   Formação
        ‣    Técnico em Informática ( ET - UFPR )

        ‣    Bacharel em Design Gráfico ( UFPR )

        ‣    Especialista em Gestão de TI ( UniFAE )

‣   Contatos
    ‣       @ricobl                      ‣   ricobl.wordpress.com

    ‣       rico.bl@gmail.com            ‣   github.com/ricobl
Apresentação
‣   experiência (>10 anos)
    ‣   agências, portais, software houses
    ‣   flash, perl, asp, php, js, html, css, python, xslt
Sobre a Globo.com
Globo.com
‣   11 anos
‣   Globo preza pela excelência
    ‣   dita tendências em tecnologia, design e conteúdo
    ‣   líder de audiência em vários segmentos
    ‣   na web
        ‣   45 milhões de acessos / dia     ‣   32 mil acessos / minuto

        ‣   1.8 milhões de acessos / hora   ‣   10 milhões de visitantes únicos / mês
Globo.com
‣   5 áreas de desenvolvimento + OGs
‣   metodologias ágeis
‣   20 times com
     ‣   1 scrum master             ‣   1 designer
     ‣   4 devs (server / client)   ‣   1 arquiteto
Globo.com hoje
Globo.com hoje
‣   desenvolvimento orientado a testes
‣   programação em pares
‣   integração contínua
‣   entregas contínuas
    ‣   por sprint (~ 10 dias)
    ‣   por trimestre
Produtos
‣   a maioria usa a plataforma de publicação
    ‣   g1: notícias, telejornais, ego, economia, etc.
    ‣   ge, novelas, bbb, home, entretenimento
    ‣   redeglobo, universal channel
    ‣   uso interno para portais de documentação e
        anúncio de releases
Tecnologias
‣   python / django / tornado
‣   ruby / rails / sinatra
‣   mysql / oracle / mongodb / memcached
‣   php / wordpress
‣   java
Plataformas
‣   publicação
‣   busca & semântica
‣   estatísticas
Plataforma de publicação
‣   Experiência de desenvolvimento
    ‣   o desenvolvedor é o nosso cliente
    ‣   usabilidade de código
    ‣   documentação, screencasts, tech talks
    ‣   evitar quebras, atualizações transparentes
    ‣   conviver com código legado
    ‣   refatorar, cobrir com testes
Busca & semântica
‣   busca global do portal
‣   soluções de busca entre portais
‣   integração com google
‣   otimização de SEO
‣   soluções com semântica
    ‣   conteúdos relacionados inteligentes
    ‣   rápida disponibilização de conteúdo
Estatísticas
‣   estatísticas em tempo real
‣   perfil de comportamento dos usuários
‣   tomada de decisão para os editores
    ‣   o que está “quente” no momento
Antes do Python
Java / vignette
‣   software proprietário
‣   bugs que não podiam ser arrumados
‣   interface seca, nada amigável
‣   falta de dinamismo no desenvolvimento
Arquitetura
‣   arquitetura orientada a serviços
    ‣   complexidade desnecessária
    ‣   lentidão
    ‣   tentativas com rails e com python
‣   problemas de implementação, não das linguagens
Mudança de paradigma
‣   de waterfall para agile
‣   scrum / kanban
‣   testes, integração contínua
‣   linguagens dinâmicas
‣   período sem entregas / timão
Python
Python
‣   nome inspirado na comédia Monty Python
‣   criado por Guido Van Rossum (hoje no Google)
‣   a linguagem que cabe na sua cabeça
‣   você “advinha” algo que funciona
‣   bibliotecas para tudo
‣   código fácil de aprender e naturalmente limpo
Quem usa Python?
‣   google: youtube, groups, gmail
‣   dropbox
‣   nasa
‣   reddit
‣   eve online
‣   ferramentas no Linux
‣   extensões para softwares gráficos e jogos
Exemplos de código
class Quadrado(object):         texto = "string"
    def __init__(self, lado):   numero = 1
        self.largura = lado     nulo = None
        self.altura = lado      booleano = True or False
                                lista = [1, 2, 3]
quadrado = Quadrado(lado=2)     dicionario = {'chave': 'valor'}

def soma(a, b=1):               soma(1)
    return a + b                soma(1, 2)
                                soma(a=1, b=2)
soma = lambda a, b=1: a + b     soma(b=1, a=2)

                                impares = [n for n in lista if n % 2]
Intepretador interativo
$ python

Python 2.6.1 (r261:67515, Aug 2 2010,    20:10:18)
[GCC 4.2.1 (Apple Inc. build 5646)] on   darwin
Type "help", "copyright", "credits" or   "license" for more information.
>>> lista = [1, 2, 3]
>>> impares = [n for n in lista if n %   2]
>>> pares = [n for n in lista if n % 2   == 0]
>>> impares
[1, 3]
>>> pares
[2]
>>>
Estrutura de arquivos
‣   quadrado.py                          ‣   quadrado/__init__.py
from quadrado import Quadrado



‣   quadrilateros/              from quadrilateros.quadrado import Quadrado
                                from quadrilateros.losango import Losango
    ‣   __init__.py
    ‣   quadrado.py
    ‣   losango.py
Ecossistema Python
‣   grande comunidade ativa
‣   fanáticos
‣   testam menos do que deveriam
‣   python foundation, gsoc
‣   associação Python Brasil
    ‣   http://www.pythonbrasil.org.br/

    ‣   Python Brasil 7 em SP (29/9 a 1º/10)
Pacotes Python
‣   python package index (+ de 16 mil pacotes)
    ‣   http://pypi.python.org/pypi

‣   pip (pip installs packages)
$ pip install django
$ pip install git+git://github.com/ricobl/django-quicktag.git
$ pip install -r requirements.txt
Django
Django
‣   djangoproject.com
‣   não é um CMS, é um framework
‣   nome inspirado em um guitarrista de jazz
‣   pattern MVC (ou model - view - template)
‣   DRY: tarefas rotineiras de forma simples
    ‣   banco, rotas, http, forms, templates, testes, usuários, login, L10N, I18N, cache

    ‣   rss, sitemaps, comentários, cruds (admin)
Quem usa Django?
‣   globo.com              ‣   nytimes.com
‣   parana-online.com.br   ‣   addons.mozilla.org
‣   misterape.com          ‣   disqus (comentários)
‣   bandab.pron.com.br     ‣   convore (fórum)
Caminho de um request
                                                 browser



                                                 webserver



                            request middleware             response middleware
     exception middleware




                              url dispatcher



                             view middleware



                                  view
Ecossistema Django
‣   grande comunidade: google groups, irc
        ‣   http://www.djangobrasil.org/

‣   no Brasil
    ‣   muitos vindos do PHP
    ‣   muitos conhecem Django antes do Python
        ‣   (ou antes do HTML / JS)
Apps reutilizáveis
‣   aplicações reutilizáveis
    ‣   registration, facebook, cms, e-commerce, comentários, blogs, busca, file managers

‣   djangopackages.com
‣   github.com/search?q=django
‣   pypi.python.org/pypi (buscar django)
Lições aprendidas
Lições aprendidas
‣   mais gente não entrega mais rápido ou melhor
‣   não espere que a ferramenta faça tudo
‣   o django ajuda mas não é perfeito:
    1. procure um módulo que ajude (avalie opções)
    2. desenvolva a sua solução
    3. ignore o Django, sobrescreva o comportamento
Lições aprendidas
‣   testes não são perda de tempo
‣   dão segurança para experimentar e velocidade
‣   teste o que é importante para o negócio
    ‣   testar demais toma tempo e dificulta manutenção
Hands On
Instalação
$   sudo apt-get install git
$   git clone git://github.com/ricobl/django-handson.git
$   cd django-handson
$   ./install.sh
Pós-instalação
New python executable in env/bin/python
Installing setuptools............done.
Installing pip...............done.
Downloading/unpacking django==1.3
  Downloading Django-1.3.tar.gz (6.5Mb): 6.5Mb downloaded
  Running setup.py egg_info for package django
Installing collected packages: django
  Running setup.py install for django
    changing mode of build/scripts-2.6/django-admin.py from 644 to 755
    changing mode of /Users/enrico.luz/projects/django-handson/env/bin/django-
admin.py to 755
Successfully installed django
Cleaning up...
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 1 object(s) from 1 fixture(s)

...
Obrigado!

                            ;)
‣   @ricobl             ‣   ricobl.wordpress.com

‣   rico.bl@gmail.com   ‣   github.com/ricobl

Mais conteúdo relacionado

Mais procurados (6)

PPTX
Intro to css
Rajashekarkorva
 
PPT
Cataloging basics
robin fay
 
PPTX
Design your first website using HTML
Bunty Jain
 
PDF
Front end developer responsibilities what does a front-end developer do?
Katy Slemon
 
PDF
Padlet in teaching and learning Dr.C.Thanavathi
Thanavathi C
 
PPTX
Website Sitemap
Suresh Kumar
 
Intro to css
Rajashekarkorva
 
Cataloging basics
robin fay
 
Design your first website using HTML
Bunty Jain
 
Front end developer responsibilities what does a front-end developer do?
Katy Slemon
 
Padlet in teaching and learning Dr.C.Thanavathi
Thanavathi C
 
Website Sitemap
Suresh Kumar
 

Semelhante a Python e Django na Globo.com (20)

PDF
Big data e globo.com - Uma visão sobre a cultura de dados
Renan Moreira de Oliveira
 
KEY
Introdução ao Python & Web Services
Dorneles Treméa
 
PDF
BeavOps : Como o Python ajudou a integrar o mundo DevOps
4LinuxCursos
 
PPT
GSoC tcptest - TCP/IP Regression Test
Victor Hugo Bilouro
 
PDF
Django - A sua cápsula de soluções web em python
Paula Grangeiro
 
PDF
Junho 2016 - Django - A sua cápsula de soluções web em python
Grupo de Testes Carioca
 
PDF
Zabbix meetup RJ: Integrações e opensource
Filipe Paternot
 
PDF
Introdução a linguagem Python
Luciano Ramalho
 
PDF
Web open source
Carlos Maniero
 
PDF
Canivete python
Anderson Dantas
 
PDF
O poder do Python/Django
Átila Bezerra
 
PDF
Big data e a globo.com - 2017
Renan Moreira de Oliveira
 
PDF
Desenvolvimento web ágil com Django
Igor Sobreira
 
PDF
José Roberto: Por que o profissional de Tecnologia da Informação deve conhece...
ParaLivre
 
ODP
Python-Fenalivre-Imed
Luciano Camargo Cruz
 
PDF
Com vocês, Django!
Marinho Brandão
 
PPTX
Automação de Aplicativos: Scripting com Python
Fabio Spanhol
 
PDF
Python e Golang - Parte 1
Marcos Aurelio Barranco
 
PDF
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Felipe Pedroso
 
PDF
Desenvolvimento ágil do jeito certo
Marcos Petry
 
Big data e globo.com - Uma visão sobre a cultura de dados
Renan Moreira de Oliveira
 
Introdução ao Python & Web Services
Dorneles Treméa
 
BeavOps : Como o Python ajudou a integrar o mundo DevOps
4LinuxCursos
 
GSoC tcptest - TCP/IP Regression Test
Victor Hugo Bilouro
 
Django - A sua cápsula de soluções web em python
Paula Grangeiro
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Grupo de Testes Carioca
 
Zabbix meetup RJ: Integrações e opensource
Filipe Paternot
 
Introdução a linguagem Python
Luciano Ramalho
 
Web open source
Carlos Maniero
 
Canivete python
Anderson Dantas
 
O poder do Python/Django
Átila Bezerra
 
Big data e a globo.com - 2017
Renan Moreira de Oliveira
 
Desenvolvimento web ágil com Django
Igor Sobreira
 
José Roberto: Por que o profissional de Tecnologia da Informação deve conhece...
ParaLivre
 
Python-Fenalivre-Imed
Luciano Camargo Cruz
 
Com vocês, Django!
Marinho Brandão
 
Automação de Aplicativos: Scripting com Python
Fabio Spanhol
 
Python e Golang - Parte 1
Marcos Aurelio Barranco
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Felipe Pedroso
 
Desenvolvimento ágil do jeito certo
Marcos Petry
 
Anúncio

Python e Django na Globo.com

  • 1. globo python e django .com na globo.com
  • 2. Agenda ‣ Globo.com ‣ Antes e depois do Python ‣ Django ‣ Lições aprendidas ‣ Hands On
  • 3. Apresentação ‣ Enrico Batista da Luz ‣ Formação ‣ Técnico em Informática ( ET - UFPR ) ‣ Bacharel em Design Gráfico ( UFPR ) ‣ Especialista em Gestão de TI ( UniFAE ) ‣ Contatos ‣ @ricobl ‣ ricobl.wordpress.com ‣ [email protected] ‣ github.com/ricobl
  • 4. Apresentação ‣ experiência (>10 anos) ‣ agências, portais, software houses ‣ flash, perl, asp, php, js, html, css, python, xslt
  • 6. Globo.com ‣ 11 anos ‣ Globo preza pela excelência ‣ dita tendências em tecnologia, design e conteúdo ‣ líder de audiência em vários segmentos ‣ na web ‣ 45 milhões de acessos / dia ‣ 32 mil acessos / minuto ‣ 1.8 milhões de acessos / hora ‣ 10 milhões de visitantes únicos / mês
  • 7. Globo.com ‣ 5 áreas de desenvolvimento + OGs ‣ metodologias ágeis ‣ 20 times com ‣ 1 scrum master ‣ 1 designer ‣ 4 devs (server / client) ‣ 1 arquiteto
  • 9. Globo.com hoje ‣ desenvolvimento orientado a testes ‣ programação em pares ‣ integração contínua ‣ entregas contínuas ‣ por sprint (~ 10 dias) ‣ por trimestre
  • 10. Produtos ‣ a maioria usa a plataforma de publicação ‣ g1: notícias, telejornais, ego, economia, etc. ‣ ge, novelas, bbb, home, entretenimento ‣ redeglobo, universal channel ‣ uso interno para portais de documentação e anúncio de releases
  • 11. Tecnologias ‣ python / django / tornado ‣ ruby / rails / sinatra ‣ mysql / oracle / mongodb / memcached ‣ php / wordpress ‣ java
  • 12. Plataformas ‣ publicação ‣ busca & semântica ‣ estatísticas
  • 13. Plataforma de publicação ‣ Experiência de desenvolvimento ‣ o desenvolvedor é o nosso cliente ‣ usabilidade de código ‣ documentação, screencasts, tech talks ‣ evitar quebras, atualizações transparentes ‣ conviver com código legado ‣ refatorar, cobrir com testes
  • 14. Busca & semântica ‣ busca global do portal ‣ soluções de busca entre portais ‣ integração com google ‣ otimização de SEO ‣ soluções com semântica ‣ conteúdos relacionados inteligentes ‣ rápida disponibilização de conteúdo
  • 15. Estatísticas ‣ estatísticas em tempo real ‣ perfil de comportamento dos usuários ‣ tomada de decisão para os editores ‣ o que está “quente” no momento
  • 17. Java / vignette ‣ software proprietário ‣ bugs que não podiam ser arrumados ‣ interface seca, nada amigável ‣ falta de dinamismo no desenvolvimento
  • 18. Arquitetura ‣ arquitetura orientada a serviços ‣ complexidade desnecessária ‣ lentidão ‣ tentativas com rails e com python ‣ problemas de implementação, não das linguagens
  • 19. Mudança de paradigma ‣ de waterfall para agile ‣ scrum / kanban ‣ testes, integração contínua ‣ linguagens dinâmicas ‣ período sem entregas / timão
  • 21. Python ‣ nome inspirado na comédia Monty Python ‣ criado por Guido Van Rossum (hoje no Google) ‣ a linguagem que cabe na sua cabeça ‣ você “advinha” algo que funciona ‣ bibliotecas para tudo ‣ código fácil de aprender e naturalmente limpo
  • 22. Quem usa Python? ‣ google: youtube, groups, gmail ‣ dropbox ‣ nasa ‣ reddit ‣ eve online ‣ ferramentas no Linux ‣ extensões para softwares gráficos e jogos
  • 23. Exemplos de código class Quadrado(object): texto = "string" def __init__(self, lado): numero = 1 self.largura = lado nulo = None self.altura = lado booleano = True or False lista = [1, 2, 3] quadrado = Quadrado(lado=2) dicionario = {'chave': 'valor'} def soma(a, b=1): soma(1) return a + b soma(1, 2) soma(a=1, b=2) soma = lambda a, b=1: a + b soma(b=1, a=2) impares = [n for n in lista if n % 2]
  • 24. Intepretador interativo $ python Python 2.6.1 (r261:67515, Aug 2 2010, 20:10:18) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> lista = [1, 2, 3] >>> impares = [n for n in lista if n % 2] >>> pares = [n for n in lista if n % 2 == 0] >>> impares [1, 3] >>> pares [2] >>>
  • 25. Estrutura de arquivos ‣ quadrado.py ‣ quadrado/__init__.py from quadrado import Quadrado ‣ quadrilateros/ from quadrilateros.quadrado import Quadrado from quadrilateros.losango import Losango ‣ __init__.py ‣ quadrado.py ‣ losango.py
  • 26. Ecossistema Python ‣ grande comunidade ativa ‣ fanáticos ‣ testam menos do que deveriam ‣ python foundation, gsoc ‣ associação Python Brasil ‣ http://www.pythonbrasil.org.br/ ‣ Python Brasil 7 em SP (29/9 a 1º/10)
  • 27. Pacotes Python ‣ python package index (+ de 16 mil pacotes) ‣ http://pypi.python.org/pypi ‣ pip (pip installs packages) $ pip install django $ pip install git+git://github.com/ricobl/django-quicktag.git $ pip install -r requirements.txt
  • 29. Django ‣ djangoproject.com ‣ não é um CMS, é um framework ‣ nome inspirado em um guitarrista de jazz ‣ pattern MVC (ou model - view - template) ‣ DRY: tarefas rotineiras de forma simples ‣ banco, rotas, http, forms, templates, testes, usuários, login, L10N, I18N, cache ‣ rss, sitemaps, comentários, cruds (admin)
  • 30. Quem usa Django? ‣ globo.com ‣ nytimes.com ‣ parana-online.com.br ‣ addons.mozilla.org ‣ misterape.com ‣ disqus (comentários) ‣ bandab.pron.com.br ‣ convore (fórum)
  • 31. Caminho de um request browser webserver request middleware response middleware exception middleware url dispatcher view middleware view
  • 32. Ecossistema Django ‣ grande comunidade: google groups, irc ‣ http://www.djangobrasil.org/ ‣ no Brasil ‣ muitos vindos do PHP ‣ muitos conhecem Django antes do Python ‣ (ou antes do HTML / JS)
  • 33. Apps reutilizáveis ‣ aplicações reutilizáveis ‣ registration, facebook, cms, e-commerce, comentários, blogs, busca, file managers ‣ djangopackages.com ‣ github.com/search?q=django ‣ pypi.python.org/pypi (buscar django)
  • 35. Lições aprendidas ‣ mais gente não entrega mais rápido ou melhor ‣ não espere que a ferramenta faça tudo ‣ o django ajuda mas não é perfeito: 1. procure um módulo que ajude (avalie opções) 2. desenvolva a sua solução 3. ignore o Django, sobrescreva o comportamento
  • 36. Lições aprendidas ‣ testes não são perda de tempo ‣ dão segurança para experimentar e velocidade ‣ teste o que é importante para o negócio ‣ testar demais toma tempo e dificulta manutenção
  • 38. Instalação $ sudo apt-get install git $ git clone git://github.com/ricobl/django-handson.git $ cd django-handson $ ./install.sh
  • 39. Pós-instalação New python executable in env/bin/python Installing setuptools............done. Installing pip...............done. Downloading/unpacking django==1.3 Downloading Django-1.3.tar.gz (6.5Mb): 6.5Mb downloaded Running setup.py egg_info for package django Installing collected packages: django Running setup.py install for django changing mode of build/scripts-2.6/django-admin.py from 644 to 755 changing mode of /Users/enrico.luz/projects/django-handson/env/bin/django- admin.py to 755 Successfully installed django Cleaning up... Creating tables ... Installing custom SQL ... Installing indexes ... Installed 1 object(s) from 1 fixture(s) ...
  • 40. Obrigado! ;) ‣ @ricobl ‣ ricobl.wordpress.com ‣ [email protected] ‣ github.com/ricobl

Notas do Editor