YOUR FEEDBACK
Immo Huneke wrote: A well written article, an ingenious solution to a real problem often encountere...

SYS-CON.TV
TOP MICROSOFT .NET LINKS


Why Code Snippets Are Not My Cup of Tea
But how about a few good refactoring options in the Visual Studio menu

Call me a purist but I like to make my code as object-oriented and well structured as possible. I like to tweak the design and to work toward the overall quality of the code. My refactoring olfactory sense is quick to react to any offending odor in the code and it’s becoming more sensitive and less tolerant with time.

One of the worst odors you can come across in code is duplicated code. Duplication can appear as a result of different practices. Sometimes the system is so large that the programmer can’t easily find his way around. He’s simply not aware that the same problem has already been solved only a few namespaces away. Other times it’s the result of that typical resolve to get the job done as quickly as possible. In those cases, the programmer desperately relies on fast-growing LOC numbers as crucial evidence of progress. Finally, probably any burgeoning programmer has enjoyed the sudden surge in productivity that comes as the result of the most basic and unfortunate reuse mechanism called copy-paste. In those cases, duplication is so evident it borders on being rude. As a novice, one can be pardoned (after all, we have all been there once), but it is not commendable for any self-respecting, experienced programmer.

Duplicated code is difficult to maintain. To fix a single thing, you have to perform change in more than one place. Such code is difficult to understand, since there’s no clear relation between the domain it represents and the code structure. It leads to more code overall, and the list of the adverse effects of code duplication just goes on.

In order not to duplicate code, we rely on structure. Instead of repeatedly writing the same few lines of code, we can isolate those lines inside a procedure. Then, we can make a procedure call whenever we need the functionality contained in those few lines. As a higher-order structuring mechanism, we can bring data and functionality that operates on that data in the form of a class. Then, we can instantiate an object and delegate some work to it. On another occasion, it’s appropriate to inherit the class and thus reuse existing code in an object-oriented, structured manner.

With Visual Basic, I have witnessed the constant progress in language and tool capabilities that let you be more productive and reuse your code better. With the advent of VB .NET, you finally got inheritance and a full object-oriented language.

About Danijel Arsenovski
Danijel Arsenovski is a software developer from Santiago, Chile. He works as a Product and Solutions Architect at Excelsys S.A, designing Internet banking solutions for numerous clients in the region. He started experimenting with refactoring while overhauling a huge banking system, and he hasn't lost interest in refactoring ever since. He pioneered the use of refactoring as a vehicle for a VB 6 code upgrade to VB .NET. Danijel is the author of "Professional Refactoring in Visual Basic" published by Wrox, and is a contributing author for several major publications. He holds a Microsoft Certified Solution Developer (MCSD) certification and was named Visual Basic MVP in 2005. He blogs at http://blog.vbrefactoring.com.

MICROSOFT .NET LATEST STORIES
Midnight Coders has launched WebORB PDF Generator, a solution consisting of a SDK and runtime PDF generation engine that enables Flex, Flash, AJAX and Silverlight clients to create PDF documents from application data. The product is designed for organizations that need to support compl...
At the opening keynote of the Consumer Electronics Show (CES) Wednesday night, Microsoft CEO Steve Ballmer, making his first appearance at the show in a slot that used to be reserved for Bill Gates, announced the widely anticipated, feature-complete beta of the company’s new Windows ...
MYNAH Technologies has announced the release of its MiMiC v3.1.0 Simulation Software for operator training and automation system testing. This release includes enhancements to simulation dynamics, performance and ease-of-use. The new MiMiC Server release provides multi-user support to...
Micro Focus has announced the availability of Micro Focus COBOL for Eclipse, encompassing versions of Micro Focus' Net Express and Server Express solutions designed specifically for the Eclipse open source ecosystem. Micro Focus COBOL for Eclipse provides an integrated development en...
NewerTech has announced the new Voyager Q Hard Drive Docking Solution. The Voyager Q turns any 2.5" or 3.5" Serial ATA (SATA) I/II up to 2.0TB hard drive into a fully bootable and hot-swappable external drive solution and features four interfaces: FireWire® 800, FireWire 400, USB 2.0...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

Click Here

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE
BREAKING NEWS FROM THE WIRES
Microsoft Dynamics solutions, which serve as essential technology for manufacturers and distributors...