66366 members! Sign up to stay informed.

Sponsored Links


Resources

.NET Research Library
Get .NET related white papers, case studies and webcasts

News News News Messages: 1 Messages: 1 Messages: 1 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

James Newkirk talks refactoring at Tech-Ed

Posted by: Regina Lynch on June 13, 2006 DIGG
Software applications must evolve. This evolution is best managed by thoughtful use of refactoring and design patterns, said James Newkirk, development lead for the Microsoft Platform Architecture Guidance team. He addressed these issues in his "Evolving to Patterns" session at Tech-Ed 2006.

Newkirk first talked about pattern implementation, which, he said, should occur during design or whenever there is bad code. If the "second person pays" rule is abided by, then code will be properly designed with future uses and releases in mind.

Once implemented, upkeep is key. Throughout application development, there are always changes that need to be designed for. Design should be evolutionary, or with changes in mind. And the tool for evolutionary design is refactoring.

Refactoring improves the design of existing code without changing the functionality. "Refactoring is truly about trying to improve the structure of the code," said Newkirk. So when do you refactor?

Newkirk suggested a "clean as you go" philosophy, which is closely akin to the “broken windows concept” that calls for police forces to monitor small nuisance crimes to better guard against their growth into larger and more dangerous crime waves. "Care about your code," he said. "This will help you avoid software bankruptcy, where you have to write it all over."

To prevent software bankruptcy, there are several things that should be avoided. Newkirk warned against code duplication. More than one instance of the same code will only further complicate things, he said. Simple code that has a clarified intent will help keep the overall code from failing.

Newkirk, known as a leader of NUnit 2.0 development, went on to talk about the dependency injection pattern, which he says is the "current hot pattern of the moment." While there are various benefits to the pattern, including loose coupling and improved test isolation, Newkirk also warned that the pattern is also more complicated, and needs to be executed with the above requirements for success in mind.
  Message #211366 Post reply Post reply Post reply Go to top Go to top Go to top

Re: James Newkirk talks refactoring at Tech-Ed

Posted by: Laurent Kempe on June 14, 2006 in response to Message #211256
A fantastic book about "care about your code" and "clean as you go" is "Refactoring to patterns" from Joshua Kerievsky. I really like this view of software development.

Laurent Kempé
Tech Head Brothers - http://www.TechHeadBrothers.com
Blog - http://weblogs.asp.net/lkempe
[Microsoft ASP.NET MVP]

 
New content on TheServerSide.NETNew content on TheServerSide.NETNew content on TheServerSide.NET

DSLs and language interop

Language "mashups" will become more prominent, and developers will become polyglots, one programmer suggests.

VS 2008 Resources

SearchWinDevelopment.com offers an introduction to the language, performance, testing and data management improvements in VS 2008.

VB code downloads home

VBCode.com code snippets cover all aspects of application development, from data binding to security to the user interface.

XAML Learning Guide

Get up to date on XAML best practices with a variety of articles, tutorials and webcasts. [SearchWinDevelopment.com]

Company uses VSTS DB edition to tame workflow

One team's experience with the VSTS DB edition suggests that it can improve workflow for dev teams. It also enhanced Agile efforts. (June 24, Article)

Book: Intro to DSL Tools

Microsoft has begun to include DSL tools in the VSTS kit. A new book by Steve Cook and other VSTS team members helps set the stage. (June 24, Article)

I See the Silverlight Shining!

Cartoon: Be it ever so humble there is no place like your home after you get a Microsoft Home Server . (June 18, Cartoon)

A look at .NET 3.5

Microsoft's Thom Robbins says new technology to highlight in NET 3.5 includes AJAX, LINQ for both C# and VB, as well as tooling enhancements intended to ease the task of building WPF, WF and WCF apps. (June 29, Podcast)

Venkat Subramaniam on AJAX

Venkat Subramaniam discusses AJAX bottlenecks, the tenets of Agile development and more. He spoke at the Ajax Experience. (June 25, Tech Talk)

Building a Claims-Based Security Model in WCF - Part 2

In the second of a two-part series, Michele Leroux Bustamente discusses design decisions related to the claims-based security model. Read the story and walk through the process for creating a set of claims-based utilities to encapsulate claims authorization at the service tier. (May 24, Article)

Introducing the Entity Framework

Understanding why the Entity Framework exists and learning where it can fit into your projects can get you prepared for the eventual release early next year. (May 10, Article)

WCF Security Learning Guide

Resource: This learning guide gives you quick access to useful links on Windows Communication Foundation security information. (April 24, Article)

Brad Abrams: Patterns for successful ASP.NET AJAX development

TSS.NET's Jack Vaughan spoke recently spoke with Microsoft's Brad Abrams to find out what he is seeing in the field and what the chefs in Redmond are cooking. Along the way he discusses patterns of AJAX frameworks. (April 11, Article)

Building a Claims-Based Security Model in WCF

In a two-part series, Michele Leroux Bustamente explains how claims-based security is supported by WCF, and how you can implement a claims-based security model for your services. (March 29, Article)

Authoring workflow using XAML

Windows Workflow Foundation is a new technology that many developers will need to get their heads around. In a brief excerpt adapted from Programming Windows Workflow Foundation: Practical WF Techniques and Examples using XAML and C#, K.Scott Allen considers aspects of workflow definition. (March 22, Chapter Excerpt)

News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
All Content Copyright ©2007 TheServerSide Privacy Policy
Site Map