SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
Over Patternization, YAGNI,
           KISS
        Vinicius Quaiato
Sério?!
Precisamos mesmo de tanta coisa, agora?
@vquaiato

Vinicius Quaiato

vinicius.quaiato@gmail.com

http://viniciusquaiato.com

http://gonow.com.br
Sim, isso é o Quaiato...
Sem certificações… sem títulos…

     (Bi-Mundial manolos!)
Está não é mais uma daquelas palestras
           engraçadinhas...
Estes são slides sérios...
Simplicidade



Sabemos que é a chave
Simplicidade


Estamos falando sobre isso há muito tempo...
Ah vá



Acabaram de falar isso, antes de mim o/
Simplicidade


Sabemos que BDUF é um cara muito, muito
              malvado
The BDUF
Então por quê?
Sim...



Por que sempre tentamos fazer(fazemos!) BDUF?
Por que...


Sempre tentamos preparar o software para algo
            que não precisamos?
Pior


Preparamos para algo complexo e que
   possivelmente não precisamos!
Mas...



Eu preciso desses padrões!
Você não precisa!



Na maioria das vezes achamos que precisamos...
Você não precisa!



  Queremos precisar...
Estamos doentes



Por mais que pensemos ter tomado as vacinas...
Patterns Happy



Ainda não nos livramos deste sintoma
Patterns Happy
Patterns Happy


Estamos felizes buscando mais e mais lugares
           para colocar um padrão
Patterns Happy



Estamos felizes aprendendo e usando padrões
Patterns Happy



Só mais um padrãozinho aqui...
Patterns Happy


Acreditamos que conhecer padrões nos levará a
               um bom design
Patterns Happy


Acreditamos que conhecer padrões nos fará bons
             designers de código
Patterns Happy
Adapter                                                Mais
                            Eo                          um
, ham?!
                          Visitor?                    Singleto
           Só uma         Já viu?                        n
                                      Vamos
           Factory
                                     usar um
                                     Facade                  Aqui
               Vamos                                       cabe um
Sim aqui        usar                                        Builder
 vamos        Repositor                         Aqui é
                 y           Memento
   de                                           bom o
                                ?
Strategy                                       Decorator
Think...


Nem sempre onde cabe um padrão é preciso
            colocar o padrão
Trust me
YAGNI


You Aren’t Going Need It / You Ain’t Gonna Need
                      It
YAGNI


Identificar um padrão não quer dizer que
        precisamos implementá-lo
YAGNI


Em alguns momentos o padrão é complexidade
                  extra
YAGNI


Se você não conhece o futuro não aceite que o
               compreende
YAGNI



Se você não precisa agora use quando precisar
YAGNI



O tempo é finito: use-o para o que é necessário
YAGNI


O novo código precisa ser testado =>
     documentado e funcional
YAGNI



Discernimento + Conhecimento = Boas Decisões
KISS
KISS
KISS
KISS



Keep It Simple, Stupid!
Mas...



Patterns não são bacanas?
Sim...


Mas seu uso muitas vezes nos faz não enxergar
           soluções mais simples
Juro!


Muitas vezes condicionais são mais simples e
           claras que estratégias
Juro!


Muitas vezes são mais simples de escrever,
        manter, testar e comunicar
Fique de olho



Keep It Simple, Stupid
Obrigado!
@vquaiato

Vinicius Quaiato

vinicius.quaiato@gmail.com

http://viniciusquaiato.com

http://gonow.com.br

Mais conteúdo relacionado

Destaque

2° Bimestre_2° Avaliação (Simulado)_1° Ano_A_B_C_AM
2° Bimestre_2° Avaliação (Simulado)_1° Ano_A_B_C_AM2° Bimestre_2° Avaliação (Simulado)_1° Ano_A_B_C_AM
2° Bimestre_2° Avaliação (Simulado)_1° Ano_A_B_C_AMO mundo da FÍSICA
 
Reinventing Tourism Destinations - Edna Rozo
Reinventing Tourism Destinations - Edna RozoReinventing Tourism Destinations - Edna Rozo
Reinventing Tourism Destinations - Edna RozoFlorida Universitaria
 
1° Bimestre_1° Avaliação_1° Ano_C
1° Bimestre_1° Avaliação_1° Ano_C1° Bimestre_1° Avaliação_1° Ano_C
1° Bimestre_1° Avaliação_1° Ano_CO mundo da FÍSICA
 
Tema 3 1º bch Tecidos animais e vexetais
Tema 3 1º bch Tecidos animais e vexetaisTema 3 1º bch Tecidos animais e vexetais
Tema 3 1º bch Tecidos animais e vexetaisalfresvi
 
Taller de Redacción III módulo 16
Taller de Redacción III módulo 16Taller de Redacción III módulo 16
Taller de Redacción III módulo 16Joel Amparán
 
História da literatura brasileira arcadismo
História da literatura brasileira arcadismoHistória da literatura brasileira arcadismo
História da literatura brasileira arcadismoJúnior Souza
 
Electrònica analògica
Electrònica analògicaElectrònica analògica
Electrònica analògicaMaikel
 
Microsoft Office Word 20071
Microsoft Office Word  20071Microsoft Office Word  20071
Microsoft Office Word 20071valeria
 
Unidade 3 cap 1.2 (b) e cap 1.3
Unidade 3 cap 1.2 (b) e cap 1.3Unidade 3 cap 1.2 (b) e cap 1.3
Unidade 3 cap 1.2 (b) e cap 1.3Manuel Matos
 
Hallgrímur pétursson þorgils
Hallgrímur pétursson þorgilsHallgrímur pétursson þorgils
Hallgrímur pétursson þorgilsÖldusels Skóli
 
Homenagem a Francisco Neves de Macedo
Homenagem a Francisco Neves de MacedoHomenagem a Francisco Neves de Macedo
Homenagem a Francisco Neves de MacedoConfraria Paranaense
 
Haur Hezkuntzarako softwareak
Haur Hezkuntzarako softwareakHaur Hezkuntzarako softwareak
Haur Hezkuntzarako softwareakurruju
 
Seguimiento del procedimiento de titulación integrada
Seguimiento del procedimiento de titulación integradaSeguimiento del procedimiento de titulación integrada
Seguimiento del procedimiento de titulación integradaAlquimista estatal de Amestris
 
Apres. duo cliente
Apres. duo   clienteApres. duo   cliente
Apres. duo clienteRoberto Braz
 
Illes paradisíaques i fons marí
Illes paradisíaques i fons maríIlles paradisíaques i fons marí
Illes paradisíaques i fons maríjordimanrique
 

Destaque (18)

2° Bimestre_2° Avaliação (Simulado)_1° Ano_A_B_C_AM
2° Bimestre_2° Avaliação (Simulado)_1° Ano_A_B_C_AM2° Bimestre_2° Avaliação (Simulado)_1° Ano_A_B_C_AM
2° Bimestre_2° Avaliação (Simulado)_1° Ano_A_B_C_AM
 
Reinventing Tourism Destinations - Edna Rozo
Reinventing Tourism Destinations - Edna RozoReinventing Tourism Destinations - Edna Rozo
Reinventing Tourism Destinations - Edna Rozo
 
1° Bimestre_1° Avaliação_1° Ano_C
1° Bimestre_1° Avaliação_1° Ano_C1° Bimestre_1° Avaliação_1° Ano_C
1° Bimestre_1° Avaliação_1° Ano_C
 
Tema 3 1º bch Tecidos animais e vexetais
Tema 3 1º bch Tecidos animais e vexetaisTema 3 1º bch Tecidos animais e vexetais
Tema 3 1º bch Tecidos animais e vexetais
 
Taller de Redacción III módulo 16
Taller de Redacción III módulo 16Taller de Redacción III módulo 16
Taller de Redacción III módulo 16
 
História da literatura brasileira arcadismo
História da literatura brasileira arcadismoHistória da literatura brasileira arcadismo
História da literatura brasileira arcadismo
 
Electrònica analògica
Electrònica analògicaElectrònica analògica
Electrònica analògica
 
Tutorial De Instalacion
Tutorial De InstalacionTutorial De Instalacion
Tutorial De Instalacion
 
Microsoft Office Word 20071
Microsoft Office Word  20071Microsoft Office Word  20071
Microsoft Office Word 20071
 
Unidade 3 cap 1.2 (b) e cap 1.3
Unidade 3 cap 1.2 (b) e cap 1.3Unidade 3 cap 1.2 (b) e cap 1.3
Unidade 3 cap 1.2 (b) e cap 1.3
 
Professores
ProfessoresProfessores
Professores
 
Hallgrímur pétursson þorgils
Hallgrímur pétursson þorgilsHallgrímur pétursson þorgils
Hallgrímur pétursson þorgils
 
Homenagem a Francisco Neves de Macedo
Homenagem a Francisco Neves de MacedoHomenagem a Francisco Neves de Macedo
Homenagem a Francisco Neves de Macedo
 
Haur Hezkuntzarako softwareak
Haur Hezkuntzarako softwareakHaur Hezkuntzarako softwareak
Haur Hezkuntzarako softwareak
 
Seguimiento del procedimiento de titulación integrada
Seguimiento del procedimiento de titulación integradaSeguimiento del procedimiento de titulación integrada
Seguimiento del procedimiento de titulación integrada
 
Apres. duo cliente
Apres. duo   clienteApres. duo   cliente
Apres. duo cliente
 
Illes paradisíaques i fons marí
Illes paradisíaques i fons maríIlles paradisíaques i fons marí
Illes paradisíaques i fons marí
 
17 bizantinos
17   bizantinos17   bizantinos
17 bizantinos
 

Semelhante a Sobre Simplicidade, YAGNI e KISS no Desenvolvimento de Software

YAGNI, KISS e Over Patternization
YAGNI, KISS e Over PatternizationYAGNI, KISS e Over Patternization
YAGNI, KISS e Over PatternizationVinicius Quaiato
 
Guia de roteiro rápido, prático 2
Guia de roteiro rápido, prático 2Guia de roteiro rápido, prático 2
Guia de roteiro rápido, prático 2Guilherme Cerqueira
 
Webquest Língua Inglesa
Webquest Língua InglesaWebquest Língua Inglesa
Webquest Língua Inglesaivone-soares
 
Projeto de aprendizagem webquest
Projeto de aprendizagem   webquestProjeto de aprendizagem   webquest
Projeto de aprendizagem webquestivone-soares
 
AgileBrazil2012 - Fuja da Inércia
AgileBrazil2012 - Fuja da InérciaAgileBrazil2012 - Fuja da Inércia
AgileBrazil2012 - Fuja da InérciaCecilia Fernandes
 
Do Agil ao agil, como evoluimos processos na plataformatec
Do Agil ao agil, como evoluimos processos na plataformatecDo Agil ao agil, como evoluimos processos na plataformatec
Do Agil ao agil, como evoluimos processos na plataformatecBreno Campos
 
Quais são os erros mais comuns de um programador ruby
Quais são os erros mais comuns de um programador ruby Quais são os erros mais comuns de um programador ruby
Quais são os erros mais comuns de um programador ruby Flavia Fortes
 

Semelhante a Sobre Simplicidade, YAGNI e KISS no Desenvolvimento de Software (7)

YAGNI, KISS e Over Patternization
YAGNI, KISS e Over PatternizationYAGNI, KISS e Over Patternization
YAGNI, KISS e Over Patternization
 
Guia de roteiro rápido, prático 2
Guia de roteiro rápido, prático 2Guia de roteiro rápido, prático 2
Guia de roteiro rápido, prático 2
 
Webquest Língua Inglesa
Webquest Língua InglesaWebquest Língua Inglesa
Webquest Língua Inglesa
 
Projeto de aprendizagem webquest
Projeto de aprendizagem   webquestProjeto de aprendizagem   webquest
Projeto de aprendizagem webquest
 
AgileBrazil2012 - Fuja da Inércia
AgileBrazil2012 - Fuja da InérciaAgileBrazil2012 - Fuja da Inércia
AgileBrazil2012 - Fuja da Inércia
 
Do Agil ao agil, como evoluimos processos na plataformatec
Do Agil ao agil, como evoluimos processos na plataformatecDo Agil ao agil, como evoluimos processos na plataformatec
Do Agil ao agil, como evoluimos processos na plataformatec
 
Quais são os erros mais comuns de um programador ruby
Quais são os erros mais comuns de um programador ruby Quais são os erros mais comuns de um programador ruby
Quais são os erros mais comuns de um programador ruby
 

Mais de DNAD

LT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmosLT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmosDNAD
 
LT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao clienteLT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao clienteDNAD
 
LT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server sideLT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server sideDNAD
 
LT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidiaLT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidiaDNAD
 
LT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRYLT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRYDNAD
 
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaDNAD
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpDNAD
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureDNAD
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadDNAD
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionáriaDNAD
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do railsDNAD
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidosDNAD
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?DNAD
 
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDDDNAD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TIDNAD
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura EvolucionáriaDNAD
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)DNAD
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - KeynoteDNAD
 

Mais de DNAD (18)

LT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmosLT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmos
 
LT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao clienteLT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao cliente
 
LT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server sideLT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server side
 
LT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidiaLT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidia
 
LT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRYLT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRY
 
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharp
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitecture
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionária
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
 
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote
 

Sobre Simplicidade, YAGNI e KISS no Desenvolvimento de Software