Coding By Example: Tornando-se um desenvolvedor
profissional
Guilherme Lacerda1
, Daniel Wildt2
1
UniRitter/Facensa/Wildtec...
apoiado tamb´em por uso de ferramentas. Ser´a proposto tamb´em um exerc´ıcio pr´atico
de programac¸˜ao, para elucidar o co...
Upcoming SlideShare
Loading in …5
×

Descrição Tutorial Coding By Example (CBSoft2013)

332 views
279 views

Published on

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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
332
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Descrição Tutorial Coding By Example (CBSoft2013)

  1. 1. Coding By Example: Tornando-se um desenvolvedor profissional Guilherme Lacerda1 , Daniel Wildt2 1 UniRitter/Facensa/Wildtech/TJ-RS 2 uMov.me/Wildtech guilhermeslacerda@gmail.com, dwildt@gmail.com Resumo. Este tutorial procura discutir o perfil de um desenvolvedor profissio- nal, a importˆancia de manter um c´odigo limpo al´em de pr´aticas e ferramentas podem apoiar neste sentido. Para tanto, ´e proposto um exerc´ıcio focando em desenvolvimento dirigido por testes, refatorac¸˜ao e baby steps, visando expor de forma pr´atica os benef´ıcios dessa forma de trabalho. 1. Informac¸˜oes Gerais Neste tutorial, ser´a apresentado como os princ´ıpios do Lean Software Development fa- zem sentido na hora de desenvolver software. A partir destes princ´ıpios, ser´a apre- sentado como a adoc¸˜ao de pr´aticas como refatorac¸˜ao [Fowler et al. 1999], padr˜oes [Kerievsky 2004], integrac¸˜ao cont´ınua e testes [Beck 2002] podem ajudar a entregar software com mais qualidade, principalmente atrav´es da escrita de um c´odigo mais simples, limpo e, consequentemente, mais f´acil de manter [Hunt and Thomas 1999], [Martin and Martin 2007], [Martin 2008]. Al´em disso, ser˜ao usados exemplos pr´aticos de c´odigos sujos e como estes princ´ıpios e pr´aticas, com o apoio de algumas ferramentas, ajudaram a limpar o c´odigo e deix´a-lo mais simples. Este tutorial ´e direcionado para desenvolvedores, analistas, projetistas, gerentes de neg´ocios, gerentes de projetos, l´ıderes de equipe. ´E necess´ario ter conhecimento em pr´aticas ´ageis. Destina-se a participantes do CBSoft, mais especificamente dos eventos SBES e SBLP. Os interessados em participar do tutorial dever˜ao levar seus laptops com suas ferramentas de programac¸˜ao de sua preferˆencia (IDEs, linguagens, ferramentas de teste de unidade) devidamente configuradas. 2. Estrutura e Mecˆanica A base do Lean Software Development ´e o trabalho padronizado e o kaizen, que s˜ao um dos primeiros passos para se chegar na padronizac¸˜ao e entender os valores do 5S [Poppendieck and Poppendieck 2003]. A partir do momento que se compreende estes valores, fica muito claro como aplicar estes conceitos em qualquer contexto, inclusive no desenvolvimento de software. Para esta aplicac¸˜ao, as pr´aticas do Extreme Program- ming (XP) como refatorac¸˜ao, desenvolvimento dirigido por testes, integrac¸˜ao continua e padronizac¸˜ao de c´odigo s˜ao os nossos melhores aliados para a melhoria cont´ınua. Mais importante do que usar e conhecer pr´aticas e ferramentas, ´e necess´aria uma reflex˜ao sobre a necessidade do mercado atual e qual o perfil (competˆencias e habilidades) necess´ario para ser um desenvolvedor profissional [Martin 2011]. Al´em desta exposic¸˜ao, ser˜ao apresentados exemplos reais e pr´aticos de c´odigo sujo e como eles foram limpos,
  2. 2. apoiado tamb´em por uso de ferramentas. Ser´a proposto tamb´em um exerc´ıcio pr´atico de programac¸˜ao, para elucidar o conte´udo apresentado. Os exemplos apresentados ser˜ao focados em tecnologia Java, por´em ser˜ao comentadas as pr´aticas e ferramentas de apoio em outras linguagens. Mecˆanica 1) Proposic¸˜ao de um exerc´ıcio de programac¸˜ao, desenvolvido em pares 2) Apresentac¸˜ao de: princ´ıpios do Lean Software Development e seu alinhamento com as pr´aticas do XP; exposic¸˜ao de exemplos pr´aticos de c´odigos sujos; um epis´odio de TDD/refatorac¸˜ao, com discuss˜ao de t´ecnicas e heur´ısticas de limpeza para tornar o c´odigo limpo e de mais f´acil manutenc¸˜ao 3) Troca dos pares para a segunda parte do exerc´ıcio, onde a dupla alterar´a o c´odigo desenvolvido por outra, aplicando as t´ecnicas discutidas 4) Discuss˜ao em grande grupo da dinˆamica 5) Apresentac¸˜ao de v´arias ferramentas que ajudam a manter a sa´ude e bem estar do c´odigo (JUnit, Byke, PMD, Checkstyle, JaCoCo, Sonar e Jenkins) 3. Considerac¸˜oes Finais Como benef´ıcios esperados deste tutorial, busca-se entender como as pr´aticas do XP po- dem auxiliar no processo de melhoria da qualidade do c´odigo, como posso ser um desen- volvedor melhor, adotando algumas ferramentas que apoiam estes princ´ıpios e pr´aticas para as principais linguagens de programac¸˜ao utilizadas no mercado atualmente. Este tutorial foi apresentado nos eventos AgileBrazil 2012 1 e Agiles 2012 2 . Referˆencias Beck, 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 to Master. 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 Agile Toolkit. Addison-Wesley. 1 Conferˆencia Brasileira de M´etodos ´Ageis, S˜ao Paulo, Brasil 2 Conferˆencia Latinoamericana de Metodologias ´Ageis, C´ordoba, Argentina

×