MiniPLoP'2011 - IME/USP - São Paulo - Brasil



Tutorial Internacional - JOSEPH YODER (com participação de BRIAN FOOTE)

Título: TOTAL CODE MAKEOVER (Tutorial - 3h)


Are you tired of code with that dreary, musty, tangled, legacy look? Weary of the flab, the bloat, and the sluggishness? Do people whisper about how your code smells behind your back? Then it's time for a Total Code Makeover. It was back in ‘97 when Brian Foote and Joseph Yoder first opined that: while much attention had been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture had seldom been discussed: the Big Ball of Mud. A Big Ball of Mud is haphazardly structured, sprawling, sloppy, duct-tape and bailing wire, spaghetti code jungle. We’ve all seen them. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated. The overall structure of the system may never have been well defined. Given that mud is mainstream and can be found everywhere, how can we cope with it?

You'll watch as two internationally renown code makeover specialists turn a run-down, dowdy ball of mud into a fresher, cleaner, more elegant looking codebase. Right before your eyes, they'll take a perfectly hideous program, and through the magic of Refactoring, Design Patterns, Storytelling, and Testing, transform it into a jaw-dropping, CPU-stopping stunner. This hands-on tutorial we’ll demonstrate these revolutionary techniques; when and how to do them.




Brian Foote is an itinerant developer and rogue scholar who has been programming professionally since the late 1970s, when several years of immersion in abysmal scientific realtime code caused him to develop an interest in the question of why such smart people could write such lousy code. This question led him on a journey through the academy, where he studied objects, frameworks, patterns, and processes, and through industry, where he experienced the staggering gap between what we practice and what we preach about programming. His best known work, "Big Ball of Mud", examined this phenomenon a few years back. It still
haunts him to this day.

Joseph Yoder is a founder and principal of The Refactory, Inc., a company focused on software architecture, design, implementation, consulting, and mentoring on all facets of software development. Joseph is an international speaker and pattern author and long- standing member of The Hillside Group, a, a group dedicated to improving the quality of software development. He specializes in architecture, analysis, and design; C#; Java; Smalltalk; patterns; Agile methods; adaptable systems; refactoring; reuse; and frameworks. Joseph is the author of many papers, including being the co-author of the Big Ball of Mud pattern, which illuminates many fallacies in the approach to software architecture.
Joseph currently resides in Urbana, Illinois. He teaches Agile methods, design patterns, object design, refactoring, and testing in industrial settings, and mentors many developers on these concepts. He currently oversees a team of developers who have constructed many systems based on enterprise architecture using the .NET environment. Other projects involve working in both the Java and .NET environments deploying domain-specific languages for clients. Joseph presents tutorials and talks, arranges workshops, and organizes leading technical conferences, including international conferences such as Agile, Agile Portugal, Encontro Ágil in Brazil, AOSD, CBSoft, JAOO, QCon, PLoP, AsianPLoP, SugarLoaf PLoP in Brazil, OOPSLA, ECOOP, SATURN, and SPLASH. Joseph thinks software is still too hard to change and believes that, with good patterns and by putting the ability to change software into the hands of the people with the knowledge to change it, seems to be on a promising avenue to solve this problem.