Masterclass Building Maintainable Applications

So OK, you are a software engineer. But how do you organize your project in a way that all code, including that of your fellow developers, remains maintainable and testable? With this three day masterclass we give you all the hands-on knowledge you need.

Prerequisites:

Before attending this course students MUST have at least 2 years experience in programming with C # or VB.NET. 

Course outline:

How do you manage a project from a technical point of view? Within 3 days you’ll know. We will investigate a lot of techniques that will make your project easier to understand, easier to maintain, easier to extend and easier to test. 

First, we will look at things we need to take care of in our software development process. Regardless of the used process, we always need to be sure we have some quality assurance steps in place. We’ll talk about the benefits and costs of code reviewing and automated testing. 

We will look at creating clean code. Why should we create clean code? What benefits does clean code have? How should clean code exactly look like? 

We will elaborate on the SOLID principles that will make your code more clear, more maintainable and easier to understand. 

Dependency injection is another important mechanism to create loosely coupled pieces of software. And loosely coupled software can be unit tested. So we will look at unit testing. Most people see that as a nice template in Visual Studio, but how can it help making your project into a real success? How do you create good unit tests? How do you create unit tests that are easy to maintain as well? 

We will also investigate various mocking frameworks. With a mocking framework, we are able to really isolate objects in our application and focus our test on just very small parts of our application. 

Furthermore, we will look at various ways to create modularized applications. We will look at examples in WPF and in ASP.NET MVC. 

Lastly, we will look at a few examples and together we’ll discuss problems in those examples and suggest solutions to improve the maintainability, clarity and extendibility. 

Course Details:

Quality assurance in the software development process

  • Reviewing
  • Automated testing
  • Naming conventions
  • Clean code

S.O.L.I.D. object oriented design principles

  • Single Responsibility Principle
  • Open Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Injection Principle

Automated testing

  • Unit Testing
  • UI Testing
  • Mocking frameworks

Modularization

About the instructor Thomas Huijer

Thomas is a senior architect/consultant who coaches development teams based on more than 15 years of experience in the field. He is often present as a speaker at international events and conferences and was has worked for various companies in the role of software architect or team lead. His main interest is anything related to maintainability, clean code, design patterns, testability and managing software projects. Thomas’ teaching style is loose and informal and he’s never afraid to touch on subjects not covered in the regular courseware. For his efforts towards the C# community Thomas was awarded by Microsoft as Most Valuable Professional (MVP) on C#.

 

Other relevant courses