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

As escolhas do desenvolvedor

Aug 05, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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