TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
Mais conteúdo relacionado
Semelhante a TDC2017 | São Paulo - Trilha Mobile How we figured out we had a SRE team at - A chave para domar um grande projeto Android: Clean Architecture
Semelhante a TDC2017 | São Paulo - Trilha Mobile How we figured out we had a SRE team at - A chave para domar um grande projeto Android: Clean Architecture (20)
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
TDC2017 | São Paulo - Trilha Mobile How we figured out we had a SRE team at - A chave para domar um grande projeto Android: Clean Architecture
1. A chave para domar grandes projetos
Clean Architecture
Rafael Matias e Vitor Navarro
hummingbird.com.br
2. Frases como: "Vamos começar tudo do zero."
Legado que faz qualquer um desejar tirar
férias imediatamente.
Classes que ninguém mais sabe para que
servem.
Sintomas
4. Nextel
Base de código Android de mais de 200 mil linhas e
aproximadamente 20~30 features em um aplicativo
legado, apresentando todos síntomas anteriores.
Funcionalidades precisavam ser migradas aos poucos.
E novas precisavam ser adicionadas.
Múltiplos times de vendors diferentes trabalhando em
conjunto
Paciente
5. Faltavam:
● Testes A/B e testes de unidade
● Qualidade de código
● Continuous Integration & Deployment
● Rollout de features + Feature toggle
Paciente
6. Possíveis tratamentos
● Simplesmente jogar tudo fora e recomeçar
do zero
● Criar um segundo app e copiar
manualmente as funcionalidades
● Aplicar arquitetura nova
13. Antes do Clean Architecture
Passo 1
Identificar todas a dependências
Passo 2
Implementar nova feature utilizando as dependências
Passo 3
Manter código antigo e novo funcionando juntos: duplicar, remover, inserir flags de
controle, o que for necessário.
Passo 4
Repetir os passos anteriores até que ambas features antiga e nova funcionem em conjunto
14. Depois do Clean Architecture
Passo 1
Cria uma feature nova com feature toggle
Passo 2
Rollout de feature nova para os usuários até que a base atinja 100%
Passo 3
Remover feature antiga
15. Porque pacote por Feature
Rastreabilidade
Gerenciamento Design Código Testes Crashlytics Produto Outras Áreas
16. ○ Facilita testes de unidade
Mas e aí...funciona?
○ Facilita manutenção
○ Código modular
○ Organiza o código
○ Aumenta a qualidade do código
○ Maleável para mudança constante nas regras de negócio
○ Vários vendors em módulos separados