I just saw the reddit.com comments regarding my screencast on Speed Coding with Regionerate & GhostDoc.
I just had to point out that the purpose of the screencast wasn’t to show how fast programming can be done using these tools. What I wanted to show was how to reduce typing using these tools. My only way to "impress" the audience was to do it quickly.
Programming fast reminds me of constructing the book cabinet we just bought from IKEA. The manual states that in order to construct the cabinet, all you need is a screwdriver. I used one to build half of the cabinet. However, using an electric screwdriver I was able to reduce time it took me to build the other half down to a friction of the time. It doesn’t mean that I didn’t have to understand exactly what to put where and carefully consider each step. It’s just that when I needed to do a brainless activity like screwing the damn screw, I got a lot of help from my power tool. If I wouldn’t have paused to think between each step, I would have probably attached the whole thang to the ceiling.
The same goes for programming. Personally, I think 10 times before adding a member to a class. I think carefully about the overall plan and about every step of the way. But when I do decide that I want to create a property, it is easily & quickly available by a power tool. Using these tools elevates the communication level between my thoughts and the literal representation of them (a.k.a. code). I no longer need to think about the syntax of a property and that I need to replace every reference to the exposed member inside my class, I need to think about "Encapsulate Field". Sort of like macros for the ol’ kicker.
Regarding the automatic documentation generated by GhostDoc, if anyone uses it as a complete documentation generator without manually tweaking its results, he might as well throw it to the recycle bin. GhostDoc is great when you -
- Have a complex method and need a tool to generate the structure for you. After generating it you should definitely tweak it to explain what your method does.
- Have a simple method or property which looks like
1: public XmlNode ParentNode
2: {
3: get;
4: set;
5: }
In such a case, running GhostDoc on it will result in -
1: /// <summary>
2: /// Gets or sets the parent node.
3: /// </summary>
4: /// <value>The parent node.</value>
5: public XmlNode ParentNode
6: {
7: get;
8: set;
9: }
which doesn’t really add a lot of information, but keeps things consistent with the rest of your application. This is very important when you generate big documentation files using NDoc (or any other tool) as it prevents missing / inconsistent documentation areas.
About comparing Visual Studio.Net’s refactoring tools to ReSharper, well, did I not make myself clear with free alternative?