O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
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...
Apresentação‣   experiência (>10 anos)    ‣   agências, portais, software houses    ‣   flash, perl, asp, php, js, html, cs...
Sobre a Globo.com
Globo.com‣   11 anos‣   Globo preza pela excelência    ‣   dita tendências em tecnologia, design e conteúdo    ‣   líder d...
Globo.com‣   5 áreas de desenvolvimento + OGs‣   metodologias ágeis‣   20 times com     ‣   1 scrum master             ‣  ...
Globo.com hoje
Globo.com hoje‣   desenvolvimento orientado a testes‣   programação em pares‣   integração contínua‣   entregas contínuas ...
Produtos‣   a maioria usa a plataforma de publicação    ‣   g1: notícias, telejornais, ego, economia, etc.    ‣   ge, nove...
Tecnologias‣   python / django / tornado‣   ruby / rails / sinatra‣   mysql / oracle / mongodb / memcached‣   php / wordpr...
Plataformas‣   publicação‣   busca & semântica‣   estatísticas
Plataforma de publicação‣   Experiência de desenvolvimento    ‣   o desenvolvedor é o nosso cliente    ‣   usabilidade de ...
Busca & semântica‣   busca global do portal‣   soluções de busca entre portais‣   integração com google‣   otimização de S...
Estatísticas‣   estatísticas em tempo real‣   perfil de comportamento dos usuários‣   tomada de decisão para os editores   ...
Antes do Python
Java / vignette‣   software proprietário‣   bugs que não podiam ser arrumados‣   interface seca, nada amigável‣   falta de...
Arquitetura‣   arquitetura orientada a serviços    ‣   complexidade desnecessária    ‣   lentidão    ‣   tentativas com ra...
Mudança de paradigma‣   de waterfall para agile‣   scrum / kanban‣   testes, integração contínua‣   linguagens dinâmicas‣ ...
Python
Python‣   nome inspirado na comédia Monty Python‣   criado por Guido Van Rossum (hoje no Google)‣   a linguagem que cabe n...
Quem usa Python?‣   google: youtube, groups, gmail‣   dropbox‣   nasa‣   reddit‣   eve online‣   ferramentas no Linux‣   e...
Exemplos de códigoclass Quadrado(object):         texto = "string"    def __init__(self, lado):   numero = 1        self.l...
Intepretador interativo$ pythonPython 2.6.1 (r261:67515, Aug 2 2010,    20:10:18)[GCC 4.2.1 (Apple Inc. build 5646)] on   ...
Estrutura de arquivos‣   quadrado.py                          ‣   quadrado/__init__.pyfrom quadrado import Quadrado‣   qua...
Ecossistema Python‣   grande comunidade ativa‣   fanáticos‣   testam menos do que deveriam‣   python foundation, gsoc‣   a...
Pacotes Python‣   python package index (+ de 16 mil pacotes)    ‣   http://pypi.python.org/pypi‣   pip (pip installs packa...
Django
Django‣   djangoproject.com‣   não é um CMS, é um framework‣   nome inspirado em um guitarrista de jazz‣   pattern MVC (ou...
Quem usa Django?‣   globo.com              ‣   nytimes.com‣   parana-online.com.br   ‣   addons.mozilla.org‣   misterape.c...
Caminho de um request                                                 browser                                             ...
Ecossistema Django‣   grande comunidade: google groups, irc        ‣   http://www.djangobrasil.org/‣   no Brasil    ‣   mu...
Apps reutilizáveis‣   aplicações reutilizáveis    ‣   registration, facebook, cms, e-commerce, comentários, blogs, busca, ...
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 aju...
Lições aprendidas‣   testes não são perda de tempo‣   dão segurança para experimentar e velocidade‣   teste o que é import...
Hands On
Instalação$   sudo apt-get install git$   git clone git://github.com/ricobl/django-handson.git$   cd django-handson$   ./i...
Pós-instalaçãoNew python executable in env/bin/pythonInstalling setuptools............done.Installing pip...............do...
Obrigado!                            ;)‣   @ricobl             ‣   ricobl.wordpress.com‣   rico.bl@gmail.com   ‣   github....
Próximos SlideShares
Carregando em…5
×

Python e Django na Globo.com

13.832 visualizações

Publicada em

Publicada em: Tecnologia

Python e Django na Globo.com

  1. 1. globo python e django.com na globo.com
  2. 2. Agenda‣ Globo.com‣ Antes e depois do Python‣ Django‣ Lições aprendidas‣ Hands On
  3. 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 ‣ rico.bl@gmail.com ‣ github.com/ricobl
  4. 4. Apresentação‣ experiência (>10 anos) ‣ agências, portais, software houses ‣ flash, perl, asp, php, js, html, css, python, xslt
  5. 5. Sobre a Globo.com
  6. 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. 7. Globo.com‣ 5 áreas de desenvolvimento + OGs‣ metodologias ágeis‣ 20 times com ‣ 1 scrum master ‣ 1 designer ‣ 4 devs (server / client) ‣ 1 arquiteto
  8. 8. Globo.com hoje
  9. 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. 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. 11. Tecnologias‣ python / django / tornado‣ ruby / rails / sinatra‣ mysql / oracle / mongodb / memcached‣ php / wordpress‣ java
  12. 12. Plataformas‣ publicação‣ busca & semântica‣ estatísticas
  13. 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. 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. 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
  16. 16. Antes do Python
  17. 17. Java / vignette‣ software proprietário‣ bugs que não podiam ser arrumados‣ interface seca, nada amigável‣ falta de dinamismo no desenvolvimento
  18. 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. 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
  20. 20. Python
  21. 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. 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. 23. Exemplos de códigoclass 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. 24. Intepretador interativo$ pythonPython 2.6.1 (r261:67515, Aug 2 2010, 20:10:18)[GCC 4.2.1 (Apple Inc. build 5646)] on darwinType "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. 25. Estrutura de arquivos‣ quadrado.py ‣ quadrado/__init__.pyfrom quadrado import Quadrado‣ quadrilateros/ from quadrilateros.quadrado import Quadrado from quadrilateros.losango import Losango ‣ __init__.py ‣ quadrado.py ‣ losango.py
  26. 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. 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
  28. 28. Django
  29. 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. 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. 31. Caminho de um request browser webserver request middleware response middleware exception middleware url dispatcher view middleware view
  32. 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. 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)
  34. 34. Lições aprendidas
  35. 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. 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
  37. 37. Hands On
  38. 38. Instalação$ sudo apt-get install git$ git clone git://github.com/ricobl/django-handson.git$ cd django-handson$ ./install.sh
  39. 39. Pós-instalaçãoNew python executable in env/bin/pythonInstalling 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 djangoInstalling 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 755Successfully installed djangoCleaning up...Creating tables ...Installing custom SQL ...Installing indexes ...Installed 1 object(s) from 1 fixture(s)...
  40. 40. Obrigado! ;)‣ @ricobl ‣ ricobl.wordpress.com‣ rico.bl@gmail.com ‣ github.com/ricobl

×