Banco de dados sobrecarregado ★ Pesquisas ao banco não incluíam os models dependentes ★ Novas queries eram necessárias para complementar os registros (N+1) ★ Cache das queries mais custosas ★ Queries mal escritas...
Servidor do banco de dados ★ Adoção de um servidor exclusivo para o banco de dados ★ Aplicação bastante baseada em pesquisa e combinação de resultados ★ Tuning do banco de dados
Testes! ★ As aplicações vão crescendo e adquirindo complexidade ★ Inviável testar manualmente toda a aplicação a cada nova funcionalidade ou refatoração ★ O Cidade Democrática não tinha nenhum teste
Por onde começar a testar? ★ Reescritas críticas de código sempre começavam pela criação dos testes ★ Novas funcionalidades com cobertura total de testes ★ Testes de funcionalidade com os principais casos de uso...
Integração contínua ★ Con guração do Travis ★ A cada push no repositório, os testes são rodados no serviço ★ Garantia de código sempre passando nos testes ★ Apoio para validar correção de Pull Requests
Servidor de staging ★ Servidor dedicado para testar e depurar novas versões da aplicação ★ Con guração de máquina e ambiente iguais às de produção ★ Todo o deploy é feito antes para o servidor de Staging
Qualidade de código ★ Code Climate ★ Suíte de ferramentas de análise estática ★ Métricas de complexidade ★ Identi ca código duplicado ou fonte de ataque
★ Projeto original com Rails plugins ★ Rails 3.0 introduz o uso do ★ Dependências indicadas em um arquivo Gem le ★ As Gems sempre serão as certas sem precisar versionar seu código no projeto Dependências
Autenticação dos usuários ★ Sistema de autenticação defasado ★ Gem Devise para autenticação ★ Diferentes permissões para os usuários ★ Suporte a Omniauth (login via Facebook)
Autenticação através do Facebook ★ Criar a app no Facebook ★ Con gurar uma rota de destino na aplicação ★ Adicionar chave secreta e identi cador da app
O que são os concursos? ★ Nova seção do Cidade Democrática ★ Etapas de inspiração, propostas, aplausos, união, anúncio ★ Na fase de união, duas propostas podem ser uni cadas formando uma terceira
Entregas ★ Não teríamos tempo de entregar o concurso completo antes da data de início prevista ★ O concurso possui etapas que foram codi cadas progressivamente