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
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)
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)
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)
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