Browse by Tags

Refactoring the C# Express Starter Kit – Part 2: Organizing fields
21 August 04 10:18 PM
Looking in RssView, I see a big mess. There are lots of fields. Some are related to each other & different from others, which suggest an Extract Class. Some are set at initialization time, while others change over time. Clearly there’s a difference Read More...
Postedby jaybaz_MS | 8 Comments    
Refactoring the C# Express Starter Kit
19 August 04 03:17 PM
Yesterday I decided to take a look at the code we shipping in the Beta 1 C# Express SKU for a screen saver. I was pretty disappointed in the quality of the code, so I decided to refactor. I’ve talked about some ideas about coding styles here on this blog, Read More...
Postedby jaybaz_MS | 10 Comments    
Making “Promote Local” make sense.
29 July 04 07:50 PM
We’re sitting around watching a video from a usability study. A subject has been exploring the Refactoring menu, and has just tried Promote Local . With the help of the very specific error messages I wrote (yay exceptions), he finally gets it work. Read More...
Postedby jaybaz_MS | 8 Comments    
Whidbey Refactorings: Signature Change
25 July 04 03:51 PM
Almost 4 months after the first post in the series … not bad! There are 3 Signature Change Refactorings: Remove Parameter Reorder Parameter Promote Local I rank these as “Tier 2” – they’re not as important as Extract Method Read More...
Postedby jaybaz_MS | 28 Comments    
Answer Ron's questions about C# Refactorings.
25 July 04 12:19 PM
On the Yahoo! Groups Refactoring DL, Ron Jeffries asked some questions about Visual C# 2005 Refactorings. "Can you say how you expect the Microsoft refactorings to stack up against the existing ones that are out there?" I've personally spent very little Read More...
Postedby jaybaz_MS | 7 Comments    
The hidden costs of a Refactoring
07 July 04 10:49 AM
Looking over our oldest C++ code, there is, of course, a lot of potential for Refactoring. That’s a nice way of saying that it sucks. We learned about Refactoring because we wanted to build good tools for our customers. Along the way, we also realized Read More...
Language Readability vs. Writability
01 July 04 11:57 AM
In my previous post , I said: “Unfortunately, language readability is often at odds with writability.” And “Generic method type parameters are inferred from the concrete parameters” Here’s what I’m talking about: T Read More...
Postedby jaybaz_MS | 8 Comments    
Language design for Refactoring
01 July 04 11:39 AM
A question came up on the Yahoo! Groups Refactoring Group about what language design would be best to support Refactoring. We think about this quite a bit, but usually we phrase the question more generally: What language design would make it easiest to Read More...
Postedby jaybaz_MS | 1 Comments    
Your expectations of Refactoring.
04 June 04 07:00 PM
Your expectations of Refactoring. Cyrus posts about what you expect from Refactoring. The particular issue he’s dealing with is Extract Method when the result will pass a generic argument to a method. He offers these three choices: Don’t add Read More...
Postedby jaybaz_MS | 0 Comments    
Refactor enum->class
27 May 04 10:36 PM
Every so often, I see a C# user say they’d like to add a method to an enum. Maybe it’s [Flags] and they want to verify that the combination of flags is legal according to their business rules. Or maybe they’re in the process of moving Read More...
Postedby jaybaz_MS | 6 Comments    
Cleaning up 'using' directives
10 May 04 11:32 AM
A suggestion arrived in email, and here is my response. (None of this is on the feature list for Whidbey, it’s just ideas.) 1. Fully qualify (all names / all names in namespace X / all instances of type Y / the instance under my cursor), removing Read More...
Postedby jaybaz_MS | 8 Comments    
Scott’s lazy loader
30 April 04 03:37 PM
Scott Wisniewski posted a lazy loader implementation on his blog. He coded it blind, without the help of a compiler that could do C# generics. I went back through and made it legal C# code. I also did a little refactoring. The ILazyLoader is now nested Read More...
CCC2: InitializeComponent()
28 April 04 02:14 PM
Call it a Clearest Code Challenge: What should InitializeComponent() look like? What’s the best code you can imagine, that the WinForms designer should generate? Let’s take a simple, concrete case: a form with an OK button. The button is anchored Read More...
Whidbey Refactorings: Rename
08 April 04 06:58 PM
Let's start by talking about Rename. I view Rename as being one of the “Tier 1” refactorings – the refactoring we absolutely must provide, and which must be of the highest quality. They must be fast, reliable, and easy to use. You’re Read More...
Postedby jaybaz_MS | 22 Comments    

This Blog

Syndication

Page view tracker