Two workshops on Beautiful Builds, Refactoring and Design Skills
This April, I will be in Kyiv, speaking at the Microsoft SWIT conference.
I will also be holding two separate workshops before the conference. Two very NEW workshops that I have only done once or twice before.
The first one is the Refactoring Skills for TDD workshop. April 23rd.
The second one is Beautiful Builds in .NET . April 24th.
Find the agendas below and location, payment and other details at the links mentioned above.
---------------------------------------------------------
AGENDA: REFACTORING SKILLS FOR TDD IN .NET AND JAVA
The Problem
You have been trying to learn TDD, and it’s going pretty well, but your code looks horrible. Your design skills are lacking, and trying to let TDD drive the design without having design skills can lead to a very problematic, although testable, design of your code.
Objectives
I usually do not focus about design in my TDD courses. I believe that separating the learning about the core skills of Unit Testing, TDD, and Design should be separated so that the learner will not feel overwhelmed. This course is a complement to the Art of Unit Testing course I am teaching. This course is specifically dealing with design skills, and assumes that you already know how to write unit tests.
Assumed: You already have some experience writing unit tests.
- 1. Clean Code and SOLID Design Principles
- 2. Design for Testability
- 3. Refactoring patterns on hard to test legacy code
- 4. Writing tests against refactored code
- 5. When it does and does not make sense to refactor
- 6. We will also take a look at open source projects and try to see how we would refactor them.
Materials
All students get a PDF of all the slides in the course, in downloadable form.
Agenda - Day 1:(09:00-16:00)
- 1. From TDD Kata to Design Skills
- 2. Single Responsibility Functions
- 3. Single Responsibility Classes
- 4. SOLID Principles
- 6. Working with Legacy Code
- 7. Refactoring for Inversion of Control
- 8. Refactoring for Open Closed
- 9. Liskov Substitution Problems
- 10. Refactoring for Dependency Injection
- 11. Drills throughout the day
-----------------------------------------------
BEAUTIFUL BUILDS IN .NET WITH ROY OSHEROVE
The Problem
Being able to deliver fast, and get feedback fast, is a necessary requirement for any kind of agility in software development. But most of our builds, if we have any, look like pieces of gum and string hanging together, held together with some spit. Many projects are barely able to deliver something every month.. We will cover:
Objectives
In this workshop we will learn common patterns and anti patterns for automating the build process, making builds fast, and continuously deliver, while still being able to maintain and understand our builds scripts and process, based on http://beautifulbuilds.com
- Understand how automated build scripts and continuous integration servers work best together
- Know how to choose the right tools for build scripts and CI based on common and future build requirements, such as auto scaling, amount of projects, ease of maintenance etc.
- Learn common solutions and patterns for making builds faster, maintainable and coherent
- Understand database migrations and upgrades
- Understand advanced features of CI systems such as branch builds, gated commits, artifact sharing, build chaining, and when to use them
- Learn to create a holistic view of the build process, build environments, and the delivery process
Materials
All students get a PDF of all the slides in the course, in downloadable form.
Agenda - Day 1:(09:00-16:00)
- Comparison of build script and CI tooling
- Build Script Patterns
- CI Patterns
- Build Process Patterns
- Database Migrations and Upgrade Patterns
- Build and Delivery Environments