as escolhas do desenvolvedor

85
As escolhas do desenvolvedor Willian Molinari (a.k.a PotHix)

Upload: willian-molinari

Post on 05-Aug-2015

58 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: As escolhas do desenvolvedor

As escolhas do desenvolvedor

Willian Molinari (a.k.a PotHix)

Page 2: As escolhas do desenvolvedor

Aviso

Page 3: As escolhas do desenvolvedor
Page 4: As escolhas do desenvolvedor
Page 7: As escolhas do desenvolvedor
Page 11: As escolhas do desenvolvedor

Porque esse tema?

Page 12: As escolhas do desenvolvedor

Especialista em desenvolvimento de

sistemasNa carteira de trabalho

Page 13: As escolhas do desenvolvedor

Software Engineerpara ficar bonito em inglês

Page 14: As escolhas do desenvolvedor

Desenvolvedorcomo eu acho que deveria ser

Page 15: As escolhas do desenvolvedor

Solucionador de problemas

o que realmente somos

Page 16: As escolhas do desenvolvedor

E para solucionar...fazemos algumas escolhas

Page 17: As escolhas do desenvolvedor

1. Linguagens

Page 19: As escolhas do desenvolvedor

C

Page 20: As escolhas do desenvolvedor

Porque ruby?

● a syntax é bem enxuta● tem bastante coisa pronta que facilita● para aplicações web o Rails é muito útil● prototipagem rápida● já tenho uma boa experiência● porque eu gosto! :)

Page 21: As escolhas do desenvolvedor

Então, tudo em ruby?

Page 22: As escolhas do desenvolvedor

Ferramenta X Problema

Page 25: As escolhas do desenvolvedor

C

Page 26: As escolhas do desenvolvedor

C

Page 27: As escolhas do desenvolvedor

C

Page 28: As escolhas do desenvolvedor

Seja “fluente”em pelo menos 1 linguagem

Page 29: As escolhas do desenvolvedor

SarumanWise provisioning

Page 30: As escolhas do desenvolvedor

em 9 mesesEconomia de 75

servidores, cerca de 1.5MM de reais

Page 31: As escolhas do desenvolvedor

2. Testes

Page 32: As escolhas do desenvolvedor

Test Driven Development?

Page 33: As escolhas do desenvolvedor
Page 35: As escolhas do desenvolvedor

Unitário? Integração?

Page 36: As escolhas do desenvolvedor

Garanta que funcionade forma automática

Page 37: As escolhas do desenvolvedor

3. Equipe

Page 38: As escolhas do desenvolvedor

Mais de um devsempre que possível

Page 39: As escolhas do desenvolvedor

Por projetoBus factor

Page 40: As escolhas do desenvolvedor

Por funcionalidadePair programming, code review, ...

Page 42: As escolhas do desenvolvedor
Page 43: As escolhas do desenvolvedor
Page 44: As escolhas do desenvolvedor

4. Código

Page 45: As escolhas do desenvolvedor
Page 46: As escolhas do desenvolvedor
Page 47: As escolhas do desenvolvedor
Page 48: As escolhas do desenvolvedor

Métodos menores

Page 50: As escolhas do desenvolvedor

Implementações paralelas

Page 51: As escolhas do desenvolvedor
Page 53: As escolhas do desenvolvedor

Feature toggle

Page 55: As escolhas do desenvolvedor

Otimização

Page 56: As escolhas do desenvolvedor

Premature optimization is the root of all evil.

Donald Knuth

Page 57: As escolhas do desenvolvedor

Padrões

Page 58: As escolhas do desenvolvedor

● Observer

● Factory

● Singleton

● Adapter

● ...

Design patterns

Page 59: As escolhas do desenvolvedor

● Responsabilidade única

● Aberto / Fechado

● Substituição de Liskov

● Segregação de interface

● Inversão de dependencia

SOLID

Page 61: As escolhas do desenvolvedor

Twelve factor app

● Codebase● Dependencies● Config● Backing services● Build, release, run● Processes

● Port binding● Concurrency● Disposability● Dev/prod parity● Logs● Admin processes

Page 62: As escolhas do desenvolvedor

5. Servidores

Page 63: As escolhas do desenvolvedor

Conf. Managerou gerenciador de configuração

Page 66: As escolhas do desenvolvedor

Alta disponibilidade

Page 67: As escolhas do desenvolvedor
Page 68: As escolhas do desenvolvedor
Page 69: As escolhas do desenvolvedor

6. Deploy

Page 70: As escolhas do desenvolvedor

Etapa de build

Page 71: As escolhas do desenvolvedor
Page 72: As escolhas do desenvolvedor

vm, docker, lxc, chroot

Page 73: As escolhas do desenvolvedor
Page 74: As escolhas do desenvolvedor

Deb, rpm, tar.gz, exe, ...

Page 76: As escolhas do desenvolvedor
Page 77: As escolhas do desenvolvedor
Page 78: As escolhas do desenvolvedor
Page 79: As escolhas do desenvolvedor
Page 80: As escolhas do desenvolvedor

10%

90%

Page 82: As escolhas do desenvolvedor

Conclusão

Page 83: As escolhas do desenvolvedor

Relembrando...

1. Linguagem2. Testes3. Equipe4. Código5. Servidores6. Deploy

Page 84: As escolhas do desenvolvedor

Opçõese não respostas

Page 85: As escolhas do desenvolvedor

Perguntas?

Willian Molinari

@[email protected]

Slides: http://goo.gl/V5BT5Jhttp://tinyurl.com/pothix-17elw