Monday, July 26, 2004

Visual Refactoring

Sven Gorts and Philippe T'Seyen outline a visual language for describing refactorings.

Mobil Social Software

Elastic Space has a great summary of mobile social software apps. Via Many2Many.

C# Refactorings

Jaybaz has some useful previews of refactoring support in the upcoming Visual Studio 2005 release along with some additional specifics here.  Here's what we might expect:
The most obvious difference will be that the Refactoring menu in Visual Studio will be quite a bit shorter than the others.  We decided to focus on making a smaller set of higher quality Refactorings.

The other big difference is that our Refactorings are very good at giving you reliably correct results.  It is our goal that when applied to a legal C# program, you can be sure that your code will maintain its behavior.   

The build on this laptop has 7 Refactorings:

Extract method

These two are by far the most important that we built.  They rank very high on “difficulty to do by hand” and “value to your code”. 

Reorder parameters
Remove parameters
Promote Local Variable to parameter

These three together are “change method signature”.  These aren’t nearly as important for your code as Rename & Extract Method, but they can be quite hard to do by hand.  Note that Add Parameter is missing.  Promote Local takes its place, providing a more code-focused experience.

Encapsulate Field

This was easy to build on top of the technology that provides Rename, and it leverages C#’s properties so we can say we’re cooler than that other language.  You can get by without it in a few steps including a Rename, so it doesn’t rank so well on the “hard to do by hand” scale.

Extract Interface

As we read through the Fowler list, this one seemed simple to do, so we did it.  However, it’s not something you need to use very often, so I’m not sure I’d choose if I had to do it over.  Perhaps I would have selected a streamlined Push Up Method instead, which could fill the same needs and others. 

One of the themes we picked up on part-way through is that there’s value in building smaller, simpler Refactorings, and letting users compose them at will.  

This page is powered by Blogger. Isn't yours?