Design patterns are now universally accepted and have significantly improved the way we design software. However, they had relatively little impact on how we implement it. Except rare exceptions like the ‘using’ or ‘lock’ keywords, most patterns must still be implemented by hand, resulting in large quantities of boilerplate code that must be validated by peer review. However, development tools could do a better job by automatically implementing some parts of the pattern, and automatically validating hand-written code against pattern rules. This talk advocates for a better integration of pattern thinking in the whole development cycle. It challenges popular dogmas about design patterns and shows unexpected connections with agile methodologies. It discusses how design pattern automation is possible today in .NET using PostSharp, FxCop, and Nemerle. |