SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Klederson Bueno
Pai
Marido
NERD
CTO
Arquiteto de Sistemas
Desenvolvedor
Evangelista PHP
github.com/klederson
br.linkedin.com/in/klederson
"I’m Batman"
CV / RESUME
"Doutrina que toma por critério da verdade o valor prático"
(Para o pragmatismo é verdadeiro tudo o que pode ser feito com êxito e não há verdade absoluta)
"Uma solução genérica e rePetível para um problema comum no desenho de software"

( Padrões de projeto e boas práticas são propostas arquiteturais para a resolução de problemas no desenvolvimento de software )
MVP

minimum Viable Product
Direct to the point01
fast02
PROOF OF CONCEPT03
NO DIa-a-Dia
Satisfação Pessoal
Aumentar Conhecimento
Suscetível A Mudanças
Produtividade
Novas Funcionalidades
Espaço para inovação REFACTORING
Produtividade e MOTIVAÇÃO
Um código limpo e claro aumenta a produtividade de
uma equipe e reduz o desinteresse natural pela
codificação no projeto.
ENTREGAS E PRAZOS
Em qualquer negócio o planejamento é essencial
e o cumprimento de prazos e entregas bem
definidas são cruciais para a saúde de um projeto.
REUSABILIDADE DE CÓDIGO
No ciclo de desenvolvimento toda vez que precisamos
parar para criar novas ferramentas para executar
tarefas já executadas antes quer dizer que estamos
com uma arquitetura pobre e um código não reutilizável.
MANUTENIBILIDADE DE PROJETOS
Um bom software é todo aquele no qual podemos
focar pelo menos 80% do desenvolvimento das
regras de negócio, novas funcionalidades e
melhorias ao invés de consertar problemas.
NO SOFTWARE
Legibilidade
Testabilidade
Suscetível A Mudanças
CLEAN CODE
S.O.L.I.D.
MANUTENIBILIDADE REUSO DE Código
ITERATOR
LOCATOR
Factory OBSERVER
SINGLETON
STRATEGY
FACADE
DECORATOR
COMMAND
MVC
Single Responsibility
Open/Close Principle
LIskov SubstitutioN
Interface Segregation
Dependency Inversion
SIngle Responsibility
As classes devem ser coesas,e possuírem uma única responsabilidade. Assim ela se torna mais
reutilizável, simples, e propaga muito menos mudanças para o restante do sistema.
Open/Close Principle
classes devem poder ter seu comportamento EXTENSÍVEL. por meio de herança, interface e composição.
não deve ser necessário abrir a própria classe para realizar pequenas mudanças.
Dependa sempre de abstrações claras e bem definidas
LISKOV SUBSTITUTION PRINCIPLE
Herança é extremamente poderosA mas deve ser usado com sabedoria. Devemos SEMPRE evitar classes do tipo
gato extende cachorro só por que eles tem algo em comum ( andar por exemplo )
Interface Segregation Principle
MóduloS SIMPLES E COM POUCOS COMPORTAMENTOS. Interfaces com muitos comportamentos dificultam a
manutenção pois se espalham por todo o sistema “contaminando" outros lugares e dificultando evoluções ou
REFACTORY.
DEPENDENCY INVERSION PRINCIPLE
Dependa sempre de abstrações, Elas mudam menos e são mais fáceis de serem trocadas/Mudadas quando
necessário.
ARQUITETURA
Long Term SolutionS

is that right? How hard?
Agile ( Scrum, XP, … )01
STEP BY STEP02
EVERYTHING CHANGES03
PARA O DESENVOLVEDOR
PARA O
CLIENTE
GET THINGS DONE
USABILIDADE
PRODUTIVIDADE
MUTABILIDADE
CODE BUROCRACY
too many
Dúvidas?

Reclamações? Agressões Gratuitas ( ou não )?
THANK YOU
br.linkedin.com/in/klederson
Klederson Bueno
klederson@klederson.com
for watching

Mais conteúdo relacionado

Semelhante a Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu projeto

Um desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLIDUm desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLIDHélio Medeiros
 
Congresso TI - Qualidade de Código.
Congresso TI - Qualidade de Código.Congresso TI - Qualidade de Código.
Congresso TI - Qualidade de Código.Adriano Patrick Cunha
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
TDC2017 | POA Trilha Arquitetura - Antifragilidade e desenvolvimento de software
TDC2017 | POA Trilha Arquitetura - Antifragilidade e desenvolvimento de softwareTDC2017 | POA Trilha Arquitetura - Antifragilidade e desenvolvimento de software
TDC2017 | POA Trilha Arquitetura - Antifragilidade e desenvolvimento de softwaretdc-globalcode
 
iMasters Developer Week - presentation - Clayton Chagas
iMasters Developer Week - presentation - Clayton ChagasiMasters Developer Week - presentation - Clayton Chagas
iMasters Developer Week - presentation - Clayton ChagasClayton Escouper das Chagas
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOYan Justino
 
Princípios de Programação Orientada a Objetos Solid, dry e kiss
Princípios de Programação Orientada a Objetos Solid, dry  e kiss Princípios de Programação Orientada a Objetos Solid, dry  e kiss
Princípios de Programação Orientada a Objetos Solid, dry e kiss DanielChristofolli
 
Metodologias de desenvolvimento de software
Metodologias de desenvolvimento de softwareMetodologias de desenvolvimento de software
Metodologias de desenvolvimento de softwareLetícia Elaine Krauss
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaRafael Ponte
 

Semelhante a Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu projeto (20)

Um desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLIDUm desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLID
 
Congresso TI - Qualidade de Código.
Congresso TI - Qualidade de Código.Congresso TI - Qualidade de Código.
Congresso TI - Qualidade de Código.
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
TDC2017 | POA Trilha Arquitetura - Antifragilidade e desenvolvimento de software
TDC2017 | POA Trilha Arquitetura - Antifragilidade e desenvolvimento de softwareTDC2017 | POA Trilha Arquitetura - Antifragilidade e desenvolvimento de software
TDC2017 | POA Trilha Arquitetura - Antifragilidade e desenvolvimento de software
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
iMasters Developer Week - presentation - Clayton Chagas
iMasters Developer Week - presentation - Clayton ChagasiMasters Developer Week - presentation - Clayton Chagas
iMasters Developer Week - presentation - Clayton Chagas
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
Refactoring
RefactoringRefactoring
Refactoring
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
 
Princípios de Programação Orientada a Objetos Solid, dry e kiss
Princípios de Programação Orientada a Objetos Solid, dry  e kiss Princípios de Programação Orientada a Objetos Solid, dry  e kiss
Princípios de Programação Orientada a Objetos Solid, dry e kiss
 
O que é devops?
O que é devops?O que é devops?
O que é devops?
 
Metodologias de desenvolvimento de software
Metodologias de desenvolvimento de softwareMetodologias de desenvolvimento de software
Metodologias de desenvolvimento de software
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Clean Code na prática
Clean Code na práticaClean Code na prática
Clean Code na prática
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 

Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu projeto