explicando conceitos de software usando situações do cotidiano
DESCRIPTION
Slides da apresentação do Paulo Ortins. Contatos do Paulo: http://www.slideshare.net/pauloortins https://twitter.com/pauloortins http://pauloortins.com/TRANSCRIPT
![Page 1: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/1.jpg)
EXPLICANDO CONCEITOS DE
SOFTWARE USANDO SITUAÇÕES
DO COTIDIANO
Paulo Ortins
![Page 2: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/2.jpg)
A história de Bob
![Page 3: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/3.jpg)
McDonalds == Aplicação Web
![Page 4: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/4.jpg)
MVC Rails
![Page 5: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/5.jpg)
Tempos de entrega agressivos
![Page 6: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/6.jpg)
Bob estava entregando tudo no prazo, o chefe dele tava feliz
![Page 7: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/7.jpg)
Os lanches começaram a atrasar e qualidade do lanche também
![Page 8: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/8.jpg)
Estava tudo uma bagunça
![Page 9: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/9.jpg)
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.
![Page 10: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/10.jpg)
Bob teve que melhorar toda a bagunça que ele tinha feito
![Page 11: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/11.jpg)
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
![Page 12: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/12.jpg)
Mas como garantir que o BigMac ainda seria bom ?
![Page 13: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/13.jpg)
Era necessário que alguém testasse a qualidade do lanche a cada mudança
![Page 14: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/14.jpg)
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.
![Page 15: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/15.jpg)
Bob pegou o caminho de casa...
![Page 16: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/16.jpg)
Mas Bob bateu o carro e morreu !
![Page 17: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/17.jpg)
E se Bob pudesse viajar no tempo ?
![Page 18: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/18.jpg)
Controles de Versão
• São softwares que nos permitem navegar entre as diferentes versões do software produzido.
• Permitem desfazer ações indesejadas.
![Page 19: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/19.jpg)
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”
![Page 20: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/20.jpg)
Bob ganhou uma segunda chance
git commit –m “Saí do trabalho”
![Page 21: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/21.jpg)
Múltiplos caminhos
![Page 22: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/22.jpg)
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.
![Page 23: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/23.jpg)
Bob criou diferentes branches da sua vida, ele foi surfista...
![Page 24: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/24.jpg)
médico...
![Page 25: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/25.jpg)
e fisiculturista...
![Page 26: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/26.jpg)
Mas um dia ele queria ter apenas uma vida de novo.
![Page 27: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/27.jpg)
Merge
• Reconciliar os diferentes branches de um software.
• Podem ser automáticos ou manuais.
![Page 28: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/28.jpg)
Recaptulando...
• MVC
• Code Smells ou Débitos Técnicos
• Refatoração
• Testes Automatizados
• Controles de Versão– Commits
– Branches
– Merge
![Page 29: Explicando conceitos de software usando situações do cotidiano](https://reader033.vdocuments.mx/reader033/viewer/2022052911/559e86ec1a28aba30b8b484b/html5/thumbnails/29.jpg)
Fim
• Entenderam alguma coisa ?
• Alguma dúvida ?
• Obrigado !