SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
EXPLICANDO CONCEITOS DE
SOFTWARE USANDO SITUAÇÕES
DO COTIDIANO
Paulo Ortins
A história de Bob
McDonalds == Aplicação Web
MVC Rails
Tempos de entrega agressivos
Bob estava entregando tudo no prazo,
o chefe dele tava feliz
Os lanches começaram a atrasar e
qualidade do lanche também
Estava tudo uma bagunça
Code Smells ou Débitos Técnicos
• Problemas que surgem durante o processo
de codificação e que não são resolvidos.
• Com o tempo começam a atrasar o projeto,
diminuir a qualidade e até mesmo cancelar o
projeto.
Bob teve que melhorar toda a
bagunça que ele tinha feito
Refactoring ou Refatoração
• São técnicas utilizadas para melhorar o
código existente.
– Rearrumação de partes do código
– Divisão de responsabilidades
– Exclusão de código
Mas como garantir que o BigMac
ainda seria bom ?
Era necessário que alguém testasse a
qualidade do lanche a cada mudança
Testes Automatizados
• São partes do código que testam o próprio
código.
• Garantem que o nosso código continue
funcionando depois de cada mudança.
Bob pegou o caminho de casa...
Mas Bob bateu o carro e morreu !
E se Bob pudesse viajar no tempo ?
Controles de Versão
• São softwares que nos permitem navegar
entre as diferentes versões do software
produzido.
• Permitem desfazer ações indesejadas.
Commits
• Ato de gravar uma determinada versão do
software para que ele possa ser recuperada
depois.
git commit –m “Fiz o carrinho de compras”
git commit –m “Mudei a cor do site de
vermelho pra amarelo”
Bob ganhou uma segunda chance
git commit –m “Saí do trabalho”
Múltiplos caminhos
Branches
• São duplicações de versões do mesmo
software que agora existem em paralelo.
• Exemplos: versões do site em diferentes
cores, versões do site com diferentes tipos de
pagamento e etc.
Bob criou diferentes branches da sua
vida, ele foi surfista...
médico...
e fisiculturista...
Mas um dia ele queria ter apenas
uma vida de novo.
Merge
• Reconciliar os diferentes branches de um
software.
• Podem ser automáticos ou manuais.
Recaptulando...
•
•
•
•
•

MVC
Code Smells ou Débitos Técnicos
Refatoração
Testes Automatizados
Controles de Versão
– Commits
– Branches
– Merge
Fim
• Entenderam alguma coisa ?
• Alguma dúvida ?

• Obrigado !

Contenu connexe

Similaire à CONCEITOS DE SOFTWARE EXPLICADOS

SonarQube
SonarQubeSonarQube
SonarQubeCDS
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
MongoDB em producao
MongoDB em producaoMongoDB em producao
MongoDB em producaoAndre Ferraz
 
O novo IBM COBOL ENTERPRISE V5/V6 para zOS e o IBM ABO
O novo IBM COBOL ENTERPRISE V5/V6 para zOS e o IBM ABOO novo IBM COBOL ENTERPRISE V5/V6 para zOS e o IBM ABO
O novo IBM COBOL ENTERPRISE V5/V6 para zOS e o IBM ABOPaulo Batuta
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutosiMasters
 
O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!
O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!
O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!Wagner Mendes Voltz Fusca
 
Novo Apple TV (tvOS) - Cocoaheads Blumenau - Douglas Fischer.
Novo Apple TV (tvOS) - Cocoaheads Blumenau - Douglas Fischer.Novo Apple TV (tvOS) - Cocoaheads Blumenau - Douglas Fischer.
Novo Apple TV (tvOS) - Cocoaheads Blumenau - Douglas Fischer.Douglas Fischer
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileakamud
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
Básico sobre Debugging com Java
Básico sobre Debugging com JavaBásico sobre Debugging com Java
Básico sobre Debugging com JavajesuinoPower
 
Brateste 2013: Testes Agile em Processos Agile
Brateste 2013:  Testes Agile em Processos AgileBrateste 2013:  Testes Agile em Processos Agile
Brateste 2013: Testes Agile em Processos Agileananegrello
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Marcelo Marques Gonçalves
 
Linhas de produto de software a deep introduction
Linhas de produto de software   a deep introductionLinhas de produto de software   a deep introduction
Linhas de produto de software a deep introductionFranklin Silva
 

Similaire à CONCEITOS DE SOFTWARE EXPLICADOS (20)

SonarQube
SonarQubeSonarQube
SonarQube
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
MongoDB em producao
MongoDB em producaoMongoDB em producao
MongoDB em producao
 
O novo IBM COBOL ENTERPRISE V5/V6 para zOS e o IBM ABO
O novo IBM COBOL ENTERPRISE V5/V6 para zOS e o IBM ABOO novo IBM COBOL ENTERPRISE V5/V6 para zOS e o IBM ABO
O novo IBM COBOL ENTERPRISE V5/V6 para zOS e o IBM ABO
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos
 
Cultura de testes em times mobile
Cultura de testes em times mobileCultura de testes em times mobile
Cultura de testes em times mobile
 
O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!
O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!
O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!
 
Novo Apple TV (tvOS) - Cocoaheads Blumenau - Douglas Fischer.
Novo Apple TV (tvOS) - Cocoaheads Blumenau - Douglas Fischer.Novo Apple TV (tvOS) - Cocoaheads Blumenau - Douglas Fischer.
Novo Apple TV (tvOS) - Cocoaheads Blumenau - Douglas Fischer.
 
Seminário: COBOL
Seminário: COBOLSeminário: COBOL
Seminário: COBOL
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Básico sobre Debugging com Java
Básico sobre Debugging com JavaBásico sobre Debugging com Java
Básico sobre Debugging com Java
 
Brateste 2013: Testes Agile em Processos Agile
Brateste 2013:  Testes Agile em Processos AgileBrateste 2013:  Testes Agile em Processos Agile
Brateste 2013: Testes Agile em Processos Agile
 
Go git - Presentation @Navita
Go git - Presentation @NavitaGo git - Presentation @Navita
Go git - Presentation @Navita
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Webinar Novidades da Release R2017b
Webinar Novidades da Release R2017bWebinar Novidades da Release R2017b
Webinar Novidades da Release R2017b
 
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
 
Linhas de produto de software a deep introduction
Linhas de produto de software   a deep introductionLinhas de produto de software   a deep introduction
Linhas de produto de software a deep introduction
 

CONCEITOS DE SOFTWARE EXPLICADOS

Notes de l'éditeur

  1. This template can be used as a starter file for presenting training materials in a group setting.SectionsRight-click on a slide to add sections. Sections can help to organize your slides or facilitate collaboration between multiple authors.NotesUse the Notes section for delivery notes or to provide additional details for the audience. View these notes in Presentation View during your presentation. Keep in mind the font size (important for accessibility, visibility, videotaping, and online production)Coordinated colors Pay particular attention to the graphs, charts, and text boxes.Consider that attendees will print in black and white or grayscale. Run a test print to make sure your colors work when printed in pure black and white and grayscale.Graphics, tables, and graphsKeep it simple: If possible, use consistent, non-distracting styles and colors.Label all graphs and tables.
  2. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.