SlideShare uma empresa Scribd logo
S EJA   UM  P ROGRAMADOR  P RAGMÁTICO L EONARDO  F ERNANDES HTTP :// JROLLER . COM / LEOFERNANDESMO
Q UEM  S OU ... Engenheiro de Software na Usina Coruripe 4 anos de experiência SCJP e SCWCD Entusiasta de Práticas Ágeis Coordenador do Grupo de Engenharia de Software-AL  
S OBRE   O   QUE   É   A  P ALESTRA ? Baseada no livro  The Pragmatic Programmer Dicas para se tornar um programador melhor Bastante uso de analogias ,  não levem ao pé da letra Programador Pragmático = PP
P ARTE  I A F ILOSOFIA   DO  P RAGMATISMO
D EFINIÇÃO Pragmatismo - " doutrina filosófica que adota como critério da verdade a utilidade prática, identificando o verdadeiro como útil " (Silveira Bueno) Ou seja, ser pragmático é ser... objetivo prático direto
M AIS   CARACTERÍSTICAS   DE   UMA   PESSOA   PRAGMÁTICA Aberto a mudanças Curioso Visão Crítica  Realista Um especialista generalista   
E  LEMBRE - SE   QUE   ISSO   É   UM   PROCESSO   CONTÍNUO ... Preocupe-se com suas habilidades(Portofólio de Conhecimento)   Reflita sobre seu trabalho Construir software é uma disciplina de engenharia?   O Jardineiro e o Turista Kaizen
O PP  E   A  F ILOSOFIA   DO  P RAGMATISMO  1 Senso de responsabilidade Assuma compromissos Quando cometer um erro(e todos nós cometemos)  admita-o e sugira soluções Tenha planos de contingência Forneça opções e não lamentações Princípio da comunicação aberta - XP
O PP  E   A  F ILOSOFIA   DO  P RAGMATISMO  2 Entropia de Software Desordem no sistema  Vários fatores podem contribuir para a "desordem" de um sistema "A Teoria das Janelas Quebradas" - Não viva com Janelas quebradas. "Adding manpower to a late software project makes it later." - Frederik Brooks
O PP  E   A  F ILOSOFIA   DO  P RAGMATISMO  3 Seja um catalisador das mudanças "A sopa de pedras"  "Rã fervidas"
O PP  E   A  F ILOSOFIA   DO  P RAGMATISMO  4  Um Software  suficientemente  bom Não precisamos produzir o software mais perfeito do mundo, precisamos fazer SWs suficientemente bons. Traga seus usuários para perto de você Saiba quando parar  "You can discipline yourself to write software that's good enough—good enough for your users, for future maintainers, for your own peace of mind. You'll find that you are more productive and your users are happier." Ed Yourdon
Estes são exemplos de produtos suficientemente bons...
O PP  E   A  F ILOSOFIA   DO  P RAGMATISMO  5  Portfolio  de Conhecimento portfolio  = conjunto de investimentos  Seu conhecimento e sua experiência são seus maiores bens profissionais Com o passar do tempo e com as mudanças do mercado: o conhecimento torna-se desatualizado a experiência torna-se obsoleta ou irrelevante  An investment in knowledge always pays the best interest. Benjamin Franklin
G ERENCIANDO   O   SEU   PORTOFÓLIO   DE   CONHECIMENTO Investidores sérios  investem constantemente Diversificação é a chave para o sucesso a longo prazo Investidores inteligentes se dividem em investimentos conservadores e de alto risco Investidores tentam comprar barato e vender caro Trabalhe com metas e lembre-se. Metas precisam ser revisadas e refeitas periodicamente
M ETAS   PARA   NÓS  PP Aprender pelo menos uma nova linguagem por ano. Ler um livro técnico a cada trimestre Ler livros não técnicos também Fazer cursos Participar de de grupos de usuários locais Experimentar diferentes ambientes Manter-se atualizado Envolva-se 
D ICAS   DE  I NVESTIMENTO Cultive gurus       Tenha pensamento crítico...afinal,¨ No Silver Bullet ¨         Trabalhe sua comunicação 
P ARTE  II U MA  A BORDAGEM  P RAGMÁTICA
O I NFERNO   DA  D UPLICAÇÃO Siga o princípio " DRY "  Avalie como as duplicações aparecem e elimine-as em documentação  em código Faça as coisas fáceis para reuso
O RTOGONALIDADE   E  R EVERSIBILIDADE   Ortogonal = Perpendicular (Geometria) Em software:  Componentes independentes ( desacoplados) Sistemas não ortogonais Benefícios da ortogonalidade Ganho de produtividade   Redução de riscos   Dica: Elimine acoplamento entre coisas não  relacionadas. Em OO: Baixo acoplamento e alta coesão.
O RTOGONALIDADE   E  R EVERSIBILIDADE   Ortogonalidade... no seu time no seu design em toolkits e bibliotecas de terceiros no seu código fonte   Sistemas Reversíveis "A única certeza que temos é a da mudança."  Não existe decisões finais
L INGUAGEM   DO  D OMÍNIO Conheça o domínio da sua aplicação  Estabeleça uma " Ubiquitous Language " Programa próximo de quem conhece o domínio Fácil desenvolvimento ou fácil manutenção?   // exemplo 1  -  Fluent Interface Set  programas  =  WebMediaAPI. programas () . comTitulo ( "Fantastico" ) ;   // exemplo 2  -  Fluent Interface Long  multishow  =   new   Long ( 123 ) ; Set  videos  =  WebMediaAPI. videos () . favoritos () . doCanal ( multishow ) ;   (Código extraído do blog do Guilherme Chapiewski)
E STIMATIVAS Estimativas  Trabalhe com estimativas para evitar surpresas  Mas, seja honesto com estimativas  Tente diversas alternativas  APF, APCU, Planning Game, Story Point   Mantenha um  log  das suas estimativas         Duration Quote                               Estimate in  1-15 dias--------------------------------------Dias  3-8 semanas---------------------------------Semanas  (Tente não passar disso)  8-30 semanas-------------------------------Meses    30+ semanas--------------------------------Pense muito antes de estimar
P ARTE  III A S  F ERRAMENTAS  B ÁSICAS
F ERRAMENTAS   BÁSICAS  I O poder dos arquivos de texto   Ajuda na manutenabilidade Não se esqueça do  Shell  e das linguagens de Script   Tarefas Ad hoc Adote um Editor de Texto  Antes de escolher avalie: Se é Configurável, Extensível, Programável Se possui Syntax highlighting Se possui Auto-completion Se possui Auto-indentation   
F ERRAMENTAS   BÁSICAS  II Source Code Control System Sempre use controle de versão, sempre, sempre sempre...até você sozinho em um projeto. Debugging Estratégias para elucidar bugs Não entre em pânico Não procure culpados Não tenha medo do  stack trace .  Como minimizar?
F ERRAMENTAS   BÁSICAS  III Geradores de código Passivos e Ativos Bug Tracking system Mantém um log dos bugs Ajuda na qualidade   
P ARTE  IV F LEXIBILIDADE   E  A DAPTABILIDADE
C UIDADOS   COM   SEU   CÓDIGO  I Desacoplamento e a Lei de Demtrius Metaprogramming Separe o Modelo da Visão O poder de um Quadro-Negro
C UIDADOS   COM   SEU   CÓDIGO  II Enquanto você está codificando... Evite programar por coincidência Não vire escravo do tempo, refatore Crie códigos fáceis de testar Cuidado com os famosos  Wizards E antes de codificar... Não levante os requisitos, escave-os Não invente requisitos Mantenha os requisitos públicos
O BRIGADO !

Mais conteúdo relacionado

PDF
Programação Orientada a Gambiarra
PDF
O Programador Pragmático
PDF
O programador pragmático
PDF
POG nunca mais - SOLISC
PPTX
Coding Dojo em 10 Minutos!
PPT
Programação Pragmática
PPTX
A saga do desenvolvedor java
PPTX
O Spring está morto! Viva o Spring!
Programação Orientada a Gambiarra
O Programador Pragmático
O programador pragmático
POG nunca mais - SOLISC
Coding Dojo em 10 Minutos!
Programação Pragmática
A saga do desenvolvedor java
O Spring está morto! Viva o Spring!

Mais procurados (20)

PPTX
Sete Passos Para Um Programador De Sucesso
PDF
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
PPTX
TDD: Técnicas, Benefícios e Limitação
PDF
TDC 2015 - Torne-se um programador melhor
PDF
TDD para "meros mortais"
PDF
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
PDF
[Interagil 2019] recuperando a essencia da agilidade para desenvolvedores
PDF
10 dicas de carreira em PHP
PDF
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
PPTX
5 meses de python o que aprendi
PDF
Mantendo o código saudável
PDF
PHPZEIRO: Adote um framework
PDF
Coding Dojo - Funcionamento
PDF
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
PPTX
Seja um júnior não seja um sobrinho
PPTX
Desmistificando Design Patterns
PDF
Clean Code
ODP
Lapidando ruby
PPTX
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
ODP
Porque PHP?
Sete Passos Para Um Programador De Sucesso
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
TDD: Técnicas, Benefícios e Limitação
TDC 2015 - Torne-se um programador melhor
TDD para "meros mortais"
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
[Interagil 2019] recuperando a essencia da agilidade para desenvolvedores
10 dicas de carreira em PHP
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
5 meses de python o que aprendi
Mantendo o código saudável
PHPZEIRO: Adote um framework
Coding Dojo - Funcionamento
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
Seja um júnior não seja um sobrinho
Desmistificando Design Patterns
Clean Code
Lapidando ruby
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
Porque PHP?
Anúncio

Semelhante a Seja Um Programador Pragmatico (20)

PDF
Euquipe, evoluindo como dev
PDF
Como ser um bom programador!
KEY
Da academia para o mercado de software
PPT
The Mythical Man-Month
PPT
The Mythical Man-Month
PDF
Dark Java (2009)
PDF
Métodos Ágeis - Aula02
PDF
Como aprender a programar !
PDF
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
PDF
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
PDF
programming.success - carreira de programador
PDF
Como Se Dar Bem Com Java
PPTX
Startup Engineering - Aspectos sobre o desenvolvimento de software em empresa...
PDF
introxp-180413013250.pdf
PDF
Introdução à Programação Extrema (Extreme Programming - XP)
PPTX
Modelagem Ágil
ODP
Otimizacao prematura-agile-brazil-12
PPTX
Conceitos Básicos Sobre Metodologias Ágeis para Desenvolvimento de Software
PDF
Caindo na real
PPTX
Como aprender a programar
Euquipe, evoluindo como dev
Como ser um bom programador!
Da academia para o mercado de software
The Mythical Man-Month
The Mythical Man-Month
Dark Java (2009)
Métodos Ágeis - Aula02
Como aprender a programar !
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
programming.success - carreira de programador
Como Se Dar Bem Com Java
Startup Engineering - Aspectos sobre o desenvolvimento de software em empresa...
introxp-180413013250.pdf
Introdução à Programação Extrema (Extreme Programming - XP)
Modelagem Ágil
Otimizacao prematura-agile-brazil-12
Conceitos Básicos Sobre Metodologias Ágeis para Desenvolvimento de Software
Caindo na real
Como aprender a programar
Anúncio

Último (19)

PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
COBITxITIL-Entenda as diferença em uso governança TI
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Apple Pippin Uma breve introdução. - David Glotz
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Aula 18 - Manipulacao De Arquivos python
Custos e liquidação no SAP Transportation Management, TM130 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Aula04-Academia Heri- Tecnologia Geral 2025
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Processos na gestão de transportes, TM100 Col18
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express

Seja Um Programador Pragmatico

  • 1. S EJA UM P ROGRAMADOR P RAGMÁTICO L EONARDO F ERNANDES HTTP :// JROLLER . COM / LEOFERNANDESMO
  • 2. Q UEM S OU ... Engenheiro de Software na Usina Coruripe 4 anos de experiência SCJP e SCWCD Entusiasta de Práticas Ágeis Coordenador do Grupo de Engenharia de Software-AL  
  • 3. S OBRE O QUE É A P ALESTRA ? Baseada no livro The Pragmatic Programmer Dicas para se tornar um programador melhor Bastante uso de analogias , não levem ao pé da letra Programador Pragmático = PP
  • 4. P ARTE I A F ILOSOFIA DO P RAGMATISMO
  • 5. D EFINIÇÃO Pragmatismo - " doutrina filosófica que adota como critério da verdade a utilidade prática, identificando o verdadeiro como útil " (Silveira Bueno) Ou seja, ser pragmático é ser... objetivo prático direto
  • 6. M AIS CARACTERÍSTICAS DE UMA PESSOA PRAGMÁTICA Aberto a mudanças Curioso Visão Crítica  Realista Um especialista generalista  
  • 7. E LEMBRE - SE QUE ISSO É UM PROCESSO CONTÍNUO ... Preocupe-se com suas habilidades(Portofólio de Conhecimento)   Reflita sobre seu trabalho Construir software é uma disciplina de engenharia?   O Jardineiro e o Turista Kaizen
  • 8. O PP E A F ILOSOFIA DO P RAGMATISMO 1 Senso de responsabilidade Assuma compromissos Quando cometer um erro(e todos nós cometemos) admita-o e sugira soluções Tenha planos de contingência Forneça opções e não lamentações Princípio da comunicação aberta - XP
  • 9. O PP E A F ILOSOFIA DO P RAGMATISMO 2 Entropia de Software Desordem no sistema Vários fatores podem contribuir para a "desordem" de um sistema "A Teoria das Janelas Quebradas" - Não viva com Janelas quebradas. "Adding manpower to a late software project makes it later." - Frederik Brooks
  • 10. O PP E A F ILOSOFIA DO P RAGMATISMO 3 Seja um catalisador das mudanças "A sopa de pedras" "Rã fervidas"
  • 11. O PP E A F ILOSOFIA DO P RAGMATISMO 4 Um Software suficientemente bom Não precisamos produzir o software mais perfeito do mundo, precisamos fazer SWs suficientemente bons. Traga seus usuários para perto de você Saiba quando parar "You can discipline yourself to write software that's good enough—good enough for your users, for future maintainers, for your own peace of mind. You'll find that you are more productive and your users are happier." Ed Yourdon
  • 12. Estes são exemplos de produtos suficientemente bons...
  • 13. O PP E A F ILOSOFIA DO P RAGMATISMO 5 Portfolio de Conhecimento portfolio = conjunto de investimentos  Seu conhecimento e sua experiência são seus maiores bens profissionais Com o passar do tempo e com as mudanças do mercado: o conhecimento torna-se desatualizado a experiência torna-se obsoleta ou irrelevante An investment in knowledge always pays the best interest. Benjamin Franklin
  • 14. G ERENCIANDO O SEU PORTOFÓLIO DE CONHECIMENTO Investidores sérios  investem constantemente Diversificação é a chave para o sucesso a longo prazo Investidores inteligentes se dividem em investimentos conservadores e de alto risco Investidores tentam comprar barato e vender caro Trabalhe com metas e lembre-se. Metas precisam ser revisadas e refeitas periodicamente
  • 15. M ETAS PARA NÓS PP Aprender pelo menos uma nova linguagem por ano. Ler um livro técnico a cada trimestre Ler livros não técnicos também Fazer cursos Participar de de grupos de usuários locais Experimentar diferentes ambientes Manter-se atualizado Envolva-se 
  • 16. D ICAS DE I NVESTIMENTO Cultive gurus       Tenha pensamento crítico...afinal,¨ No Silver Bullet ¨         Trabalhe sua comunicação 
  • 17. P ARTE II U MA A BORDAGEM P RAGMÁTICA
  • 18. O I NFERNO DA D UPLICAÇÃO Siga o princípio " DRY " Avalie como as duplicações aparecem e elimine-as em documentação em código Faça as coisas fáceis para reuso
  • 19. O RTOGONALIDADE E R EVERSIBILIDADE   Ortogonal = Perpendicular (Geometria) Em software:  Componentes independentes ( desacoplados) Sistemas não ortogonais Benefícios da ortogonalidade Ganho de produtividade   Redução de riscos   Dica: Elimine acoplamento entre coisas não  relacionadas. Em OO: Baixo acoplamento e alta coesão.
  • 20. O RTOGONALIDADE E R EVERSIBILIDADE Ortogonalidade... no seu time no seu design em toolkits e bibliotecas de terceiros no seu código fonte   Sistemas Reversíveis "A única certeza que temos é a da mudança."  Não existe decisões finais
  • 21. L INGUAGEM DO D OMÍNIO Conheça o domínio da sua aplicação Estabeleça uma " Ubiquitous Language " Programa próximo de quem conhece o domínio Fácil desenvolvimento ou fácil manutenção?  // exemplo 1 - Fluent Interface Set programas = WebMediaAPI. programas () . comTitulo ( "Fantastico" ) ;   // exemplo 2 - Fluent Interface Long multishow = new Long ( 123 ) ; Set videos = WebMediaAPI. videos () . favoritos () . doCanal ( multishow ) ;   (Código extraído do blog do Guilherme Chapiewski)
  • 22. E STIMATIVAS Estimativas  Trabalhe com estimativas para evitar surpresas  Mas, seja honesto com estimativas  Tente diversas alternativas  APF, APCU, Planning Game, Story Point Mantenha um log das suas estimativas        Duration Quote                               Estimate in  1-15 dias--------------------------------------Dias  3-8 semanas---------------------------------Semanas (Tente não passar disso)  8-30 semanas-------------------------------Meses    30+ semanas--------------------------------Pense muito antes de estimar
  • 23. P ARTE III A S F ERRAMENTAS B ÁSICAS
  • 24. F ERRAMENTAS BÁSICAS I O poder dos arquivos de texto   Ajuda na manutenabilidade Não se esqueça do Shell e das linguagens de Script   Tarefas Ad hoc Adote um Editor de Texto  Antes de escolher avalie: Se é Configurável, Extensível, Programável Se possui Syntax highlighting Se possui Auto-completion Se possui Auto-indentation  
  • 25. F ERRAMENTAS BÁSICAS II Source Code Control System Sempre use controle de versão, sempre, sempre sempre...até você sozinho em um projeto. Debugging Estratégias para elucidar bugs Não entre em pânico Não procure culpados Não tenha medo do stack trace . Como minimizar?
  • 26. F ERRAMENTAS BÁSICAS III Geradores de código Passivos e Ativos Bug Tracking system Mantém um log dos bugs Ajuda na qualidade   
  • 27. P ARTE IV F LEXIBILIDADE E A DAPTABILIDADE
  • 28. C UIDADOS COM SEU CÓDIGO I Desacoplamento e a Lei de Demtrius Metaprogramming Separe o Modelo da Visão O poder de um Quadro-Negro
  • 29. C UIDADOS COM SEU CÓDIGO II Enquanto você está codificando... Evite programar por coincidência Não vire escravo do tempo, refatore Crie códigos fáceis de testar Cuidado com os famosos Wizards E antes de codificar... Não levante os requisitos, escave-os Não invente requisitos Mantenha os requisitos públicos