Replace Badass Query With Simple Loop

Posted February 1, 2012 by Joshua Kerievsky in Refactoring, Software Design

× Warning: this blog contains ugly code requiring horizontal scroll bars. Viewer discretion advised. Yesterday, we found the following badass query in our CompletionStatusRepository class:
Read more

No comments


Product Metaphor

Posted July 19, 2010 by Joshua Kerievsky in Extreme Programming, Refactoring, Software Design

A product metaphor shapes the look and behavior of a product, integrates the product’s features and inspires new functionality. If you value metaphors, a single word can inspire your entire product.
Read more

1 comment


Sessions: A New Album from Industrial Logic

Posted June 17, 2010 by Joshua Kerievsky in Agile eLearning, Refactoring, Test Driven Development, Training

Over the last few months, we here at Industrial Logic have been working hard on a new album called Sessions. This new album allows you to visualize, quantify & critique your programming sessions. We are right now in the FREE Early Access Program for Java/Eclipse.
Read more

No comments


Tracking Compilation Errors

Posted April 7, 2010 by Joshua Kerievsky in Agile eLearning, Refactoring, Test Driven Development, Training

For many years, I’ve found students in a situation I call False Green.
Read more

No comments


Visualizing Proficiency

Posted May 22, 2009 by Joshua Kerievsky in Agile eLearning, Lean Startup, Refactoring, Software Design, Test Driven Development

How do we know if someone is truly learning Refactoring and Test-Driven Development? Before 2005, we determined proficiency by literally looking over people’s shoulders as they worked. In 2005, we endeavored to automate the “looking-over-the-shoulder” part. We built code that used reflection to automatically check whether a student’s solution met certain design criteria.
Read more

No comments


Smells to Refactorings Cheatsheet

Posted May 3, 2005 by Industrial Logic in Refactoring

Smells to Refactorings Cheatsheet (.pdf) We developed this handy cheat sheet as a teaching aid while teaching our Refactoring Challenge Activity. You’ll find a table that maps code smells to their likely refactorings with corresponding page references to source material contained in the books Refactoring: Improving the Design of Existing Code by Martin Fowler and […]
Read more

3 comments


Stop Over-Engineering

Posted April 2, 2002 by Joshua Kerievsky in Refactoring, Software Design, Software Patterns

Stop Over-Engineering (.pdf) Patterns are a cornerstone of object-oriented design, while test-first programming and merciless refactoring are cornerstones of evolutionary design. To stop over- or under-engineering, balance these practices and evolve only what you need.
Read more

No comments