About the Talk
May 3, 2014 4:30 AM
Xero 101 Green St. 5th Floor San Francisco, CA 94111Xero 101 Green St. 5th Floor San Francisco, CA 94111
You already code. Now it's time to take the next steps to becoming a better developer. Those steps are not difficult; we just need to put them into practice. The end result is code that is easier to maintain, easier to test, and easier to extend.
We'll learn about software design principles such as the Separation of Concerns and Single Responsibility Principle (plus several others). Then we'll take a look at some design patterns that help us adhere to these principles, and we'll see the benefits first hand by putting these principles into action.
We'll take a look at the fundamentals of Dependency Injection, with the goal of understanding why DI is important and how it may be useful in our applications.
And we'll spend a bit of time looking at Software Craftsmanship. Code needs to be readable by humans. There are a few simple things we can do to ensure that our code is easy to walk up to. This is especially important when it comes time to add new features or hunt down bugs in the code. And we'll also look at some tools and techniques that will help us untangle existing spaghetti code.
Hands-on labs throughout the day will let us put the things we've learned into practice. So come prepared to see lots of code and to do some coding yourself.
Pre-requisites This is targeted at the intermediate developer. All of the code will be in C#, so we're assuming that you're comfortable with the basics (including classes, methods, and inheritance) as well as some intermediate-level topics such as interfaces.
Preparation Labs require a laptop with Visual Studio Professional (2012 or 2013). If you need a copy of Visual Studio Professional, you can download a trial version from Microsoft:http://www.microsoft.com/en-us/download/details.aspx?id=40763#
One of our labs will also explore how a tool like ReSharper can help automate the clean up of our code. You can download a 30-day trial from JetBrains:http://www.jetbrains.com/resharper/download/
Learning Objectives o Principles and Patterns of Good Software Design o Advantages of Loosely-Coupled Code o Fundamentals of Dependency Injection o Becoming a Craftsman: Creating Code for Humans Logistics o Lunch, and coffee + bagels in the morning, are included About the Presenters