descrição tutorial coding by example (cbsoft2013)

Post on 18-Dec-2014

134 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Descrição do tutorial Coding By Example, apresentado na CBSoft 2013.

TRANSCRIPT

Coding By Example: Tornando-se um desenvolvedorprofissional

Guilherme Lacerda1, Daniel Wildt2

1UniRitter/Facensa/Wildtech/TJ-RS

2uMov.me/Wildtech

guilhermeslacerda@gmail.com, dwildt@gmail.com

Resumo. Este tutorial procura discutir o perfil de um desenvolvedor profissio-nal, a importancia de manter um codigo limpo alem de praticas e ferramentaspodem apoiar neste sentido. Para tanto, e proposto um exercıcio focando emdesenvolvimento dirigido por testes, refatoracao e baby steps, visando expor deforma pratica os benefıcios dessa forma de trabalho.

1. Informacoes GeraisNeste tutorial, sera apresentado como os princıpios do Lean Software Development fa-zem sentido na hora de desenvolver software. A partir destes princıpios, sera apre-sentado como a adocao de praticas como refatoracao [Fowler et al. 1999], padroes[Kerievsky 2004], integracao contınua e testes [Beck 2002] podem ajudar a entregarsoftware com mais qualidade, principalmente atraves da escrita de um codigo maissimples, limpo e, consequentemente, mais facil de manter [Hunt and Thomas 1999],[Martin and Martin 2007], [Martin 2008]. Alem disso, serao usados exemplos praticosde codigos sujos e como estes princıpios e praticas, com o apoio de algumas ferramentas,ajudaram a limpar o codigo e deixa-lo mais simples.

Este tutorial e direcionado para desenvolvedores, analistas, projetistas, gerentesde negocios, gerentes de projetos, lıderes de equipe. E necessario ter conhecimento empraticas ageis. Destina-se a participantes do CBSoft, mais especificamente dos eventosSBES e SBLP. Os interessados em participar do tutorial deverao levar seus laptops comsuas ferramentas de programacao de sua preferencia (IDEs, linguagens, ferramentas deteste de unidade) devidamente configuradas.

2. Estrutura e MecanicaA base do Lean Software Development e o trabalho padronizado e o kaizen, que saoum dos primeiros passos para se chegar na padronizacao e entender os valores do 5S[Poppendieck and Poppendieck 2003]. A partir do momento que se compreende estesvalores, fica muito claro como aplicar estes conceitos em qualquer contexto, inclusiveno desenvolvimento de software. Para esta aplicacao, as praticas do Extreme Program-ming (XP) como refatoracao, desenvolvimento dirigido por testes, integracao continua epadronizacao de codigo sao os nossos melhores aliados para a melhoria contınua.

Mais importante do que usar e conhecer praticas e ferramentas, e necessaria umareflexao sobre a necessidade do mercado atual e qual o perfil (competencias e habilidades)necessario para ser um desenvolvedor profissional [Martin 2011]. Alem desta exposicao,serao apresentados exemplos reais e praticos de codigo sujo e como eles foram limpos,

apoiado tambem por uso de ferramentas. Sera proposto tambem um exercıcio praticode programacao, para elucidar o conteudo apresentado. Os exemplos apresentados seraofocados em tecnologia Java, porem serao comentadas as praticas e ferramentas de apoioem outras linguagens.

Mecanica

1) Proposicao de um exercıcio de programacao, desenvolvido em pares

2) Apresentacao de: princıpios do Lean Software Development e seu alinhamentocom as praticas do XP; exposicao de exemplos praticos de codigos sujos; um episodio deTDD/refatoracao, com discussao de tecnicas e heurısticas de limpeza para tornar o codigolimpo e de mais facil manutencao

3) Troca dos pares para a segunda parte do exercıcio, onde a dupla alterara ocodigo desenvolvido por outra, aplicando as tecnicas discutidas

4) Discussao em grande grupo da dinamica

5) Apresentacao de varias ferramentas que ajudam a manter a saude e bem estardo codigo (JUnit, Byke, PMD, Checkstyle, JaCoCo, Sonar e Jenkins)

3. Consideracoes FinaisComo benefıcios esperados deste tutorial, busca-se entender como as praticas do XP po-dem auxiliar no processo de melhoria da qualidade do codigo, como posso ser um desen-volvedor melhor, adotando algumas ferramentas que apoiam estes princıpios e praticaspara as principais linguagens de programacao utilizadas no mercado atualmente. Estetutorial foi apresentado nos eventos AgileBrazil 2012 1 e Agiles 2012 2.

ReferenciasBeck, K. (2002). Test-Driven Development by Example. Addison-Wesley.

Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. (1999). Refactoring: Im-proving the Design of Existing Code. Addison-Wesley.

Hunt, A. and Thomas, D. (1999). The Pragmatic Programmer: From Journeyman toMaster. Addison-Wesley.

Kerievsky, J. (2004). Refactoring to Patterns. Addison-Wesley.

Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Pren-tice Hall.

Martin, R. C. (2011). The Clean Coder: A code of conduct for Professional Programmers.Prentice Hall.

Martin, R. C. and Martin, M. (2007). Agile Principles, Patterns, and Practices in C#.Prentice Hall.

Poppendieck, M. and Poppendieck, T. (2003). Lean Software Development: An AgileToolkit. Addison-Wesley.

1Conferencia Brasileira de Metodos Ageis, Sao Paulo, Brasil2Conferencia Latinoamericana de Metodologias Ageis, Cordoba, Argentina

top related