Explicando conceitos de software usando situações do cotidiano
Post on 08-Jul-2015
271 Views
Preview:
DESCRIPTION
Transcript
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 !
top related