Devlico.Us
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @devlicious

Billy McCafferty



Refactor It! The Weekly Book Giveaway

Each week, refactor my smelly project and win a free book
along with a CodeIt.Once Refactoring tool 3-User license pack!
 
Here's how it'll work...
  • Each week, beginning tomorrow, Nov. 13, a VS 2005 project will be provided which contains one or more specified "smells."  The project may be a Windows App, a Console App, an ASP.NET Web App or even a simple Class Library; but it will always be in C# 2.0.  Refactorings may range from simply introducing new methods to applying design patterns.  The project will have one or more unit tests, verified with NUnit 2.0, to verify that the project is in working order.
  • You have until the specified time to submit your zipped, refactored solution.  Instructions for submitting your solution will be presented when the contest begins.  To be considered, the solution must be compilable with all unit tests passing.
  • The winner will be randomly selected from all "correct" submissions received.  (I'll use my 2-year old to pick the name instead of Math.Random to make sure it's truly random!)  As there are 1,000 ways to skin a cat - no offense to any PETA readers - "correct" entries will be subjectively determined by yours truly, Billy McCafferty.  Along with an announcement of the week's winner, a results summary and refactoring analysis will be presented.  "Correct" can generally be defined as the solution which presents simple, concise, and maintainable refactorings for the specified smells.  Other "correctness" guidelines may be provided at the beginning of each challenge.
  • To help your chances, the first "correct" solution received will have two names thrown into the hat instead of one.
  • Only one entry may be submitted for each challenge and, unless specified at the opening of a contest, each participant may only win once.
  • The weekly contest will continue until I get refactoring-itus or I run out of books, whichever comes sooner.
Why refactoring...
 
Refactoring has been widely adopted as a vital technique for producing high quality software.  It is important that we each embrace this practice into our development work.  This contest will serve to present an overview of common smells found within code and discuss techniques to correct those smells for creating better software.
 
Resources to help...
 
The essentials are Refactoring by Martin Fowler and Refactoring to Patterns by Joshua Kerievsky.  Other resources that may be helpful include Working Effectively with Legacy Code by Michael Feathers and Patterns of Enterprise Application Architecture by Martin Fowler.
 
Books up for grabs...
 
Stay tuned to devlicio.us and good luck!
 
Billy


Comments

Christopher Bennage said:

Exciting!  Are fellow devlicious blogger excluded from the contest?  :-)

# November 14, 2006 9:08 AM

Rob Eisenberg said:

Awesome idea.  I love refactoring!  Looking forward to learning a lot from this.

# November 14, 2006 9:44 AM

Billy McCafferty said:

devlicio.us bloggers can feel free to join into the fray

# November 14, 2006 9:53 AM

Derik Whittaker said:

Billy,

Bring it on.....

# November 14, 2006 10:25 AM

wshaddix said:

How do we join the contest and/or get the projects?

# November 14, 2006 11:07 AM

Billy McCafferty said:

I'll be making a post later today with the first project available for anyone and everyone to download.

# November 14, 2006 11:35 AM

Rory Becker said:

I'm with Dwhittaker on this....

Bring it On!

# November 14, 2006 4:19 PM

sergeb said:

Hey, Billy, great idea!

I would be happy to chip in our CodeIt.Once refactoring tool 3 user license packs for each week winner if you are interested.

Let me know :)

# November 15, 2006 4:26 AM

Billy McCafferty said:

Well, I certainly can't turn that down!  Thank you very much for the offer.  If you would, please send me an email at refactorit AT emccafferty.com so that I can send you the winner's information.  Thanks again!

# November 15, 2006 9:06 AM

sergeb said:

Perfect! I will follow up offline.

# November 15, 2006 10:52 AM

Toby said:

this is great!

Suggest you put the 'Challenge' - the refactorings you're looking for - in a solution item html file for easy reference when working on it.

# November 15, 2006 2:45 PM

Billy McCafferty said:

Thanks for the suggestion Toby...I'll certainly do that for the next challenge.

# November 15, 2006 2:57 PM

Harry said:

Excellent. I finished the challenge yesterday. Just reading the code and try to match the style is a great learning experience for me. I really like this idea. Kudos to you for the great effort.

# November 16, 2006 10:02 AM

Vinay said:

Billy can you also post this on csharp design patterns forum.

# November 16, 2006 3:14 PM

Vinay said:

Never mind my comment. I found it. This is a very good initiative.

# November 16, 2006 3:32 PM
Check out Devlicio.us!

Our Sponsors

Proudly Partnered With