Silicon Valley Code Camp : October 8th and 9th, 2011.
Theo has been designing and implementing .NET based applications, components, and frameworks since .NET 1.0 with a focus on scalable and maintainable solutions.
Accidentally, becoming a manager in 2012, Theo has embraced the engineering manager path currently working as a Senior Director of Engineering at AppDynamics. He contributed to the success of AppDynamics, scaling from 70 employees to over 2000 and being acquired three days before the IPO for $3.7B by Cisco.
Theo's expertise is understanding systems, identifying patterns and defining and implementing best practices in software, architecture, or organization.
Design by Contract/Programming, or also called Contract-First development with Code Contracts and Pex, is a design/development approach which first defines a contract for class and its methods before implementing it. Since VS2010, by specifying invariants, pre and post conditions for methods with Code Contracts, Microsoft provides the platform support for taking advantage of this programming paradigm. This allows for writing less and cleaner coder, which is easier to read, test, and document. <br/><br/>
Pex, like Code Contracts a development out of the Microsoft Research Lab, allows for automatically creating unit tests. By integrating with Code Contracts, many of the needed Unit Tests can be actually generated instead of written manually. <br/><br/>
Finally, Code Contracts also integrate tightly with Microsoft Sandcastle, generating more detailed and accurate MSDN style API documentation and utilizing the conditions specified through Code Contracts.<br/><br/>
Within this session, I will give an introduction to Contract-First Development, Code Contracts, Pex and Sandcastle, pointing specifically to the advantages while also addressing limitations and risks.
Over the lifetime of a product, maintaining the product is actually one - if not the most - expensive area(s) of the overall product costs. Writing clean code can significantly lower these costs. However, writing clean code also makes you more efficient during the initial development time and results in more stable code. You will be presented design patterns and best practices which will make you write better and more easily maintainable code. You will learn how to apply them by using an existing implementation as the starting point of the presentation. Finally, patterns & practices benefits are explained.<br/><br/>
This presentation is based on C# and Visual Studio 2010. However, the demonstrated patterns and practice can be applied to every other programming language too.