Due to the current situation, the training with Włodek has been canceled. Don't worry, we will inform you soon about a new, safe date of stationary training. If you want information about the next training date, please contact: firstname.lastname@example.org
Take care. Włodek & Codete.
Effective Refactoring to Clean Code (Hands On Workshop)
IT Trainer: Włodek Krakowski
Goal of training
Enhance your Legacy Code towards Clean Code every day. Feel the thrill of continuous code clean up and make it a habit to maintain code quality.
This hands-on workshop teaches how to retain code quality by refactoring in the smallest possible steps so it becomes everyday practice. This allow to maintain clean code and continue with further complex refactorings when needed. Your team will possess refactoring skills and come back to work with inspirations on how to introduce code quality care into development processes.
We start with technical skills and go through awareness of your attitude that is reflected in outcome code quality. Regardless if you want it or not this attitude always affects your actions or lack of them. Awareness is the first step to change it.
Clean Code is very well known term that was coined by Uncle Bob. It describes how good code should look like and and rules that enable its maintenance. These are different principles like SOLID and attributes like readability, extendability, testability and more.
Refactoring is nothing else but cleaning your code. But do we know how to approach it? Isn't it often a theory followed by an idea to re-write given part of code because we are afraid to touch legacy code any longer?
During the workshop we go carefully through the concept of Refactoring Pyramid that allows you to clean your code in small steps.
○ Clean the flow
○ Extract smaller methods
○ Extract smaller classes
○ Notice emerging design patterns
○ Clean up the architecture
The workshop is focused on working with code using automated refactoring-features that are built into IntelliJ IDE. The source code is based on Java language. The trainer does all the refactorings live in small steps what allows the attendees to practice the same transformations on their laptops. Remaining 25% of the training is dedicated to motivation part, how to make cleaning code a daily habit in order to keep technical debt under control.
Please note also that this is a training mainly about cleaning code - not necessary about one and the only correct design. Different teams might prefer different designs whereas the goal of this training is to show how easy we can keep the design emergent according to our architectural decisions and needs.
Plan of training
Part 1 - Cleaning Code in small steps
1. Review of Legacy Code project 2. It's only one more "if" statement... 3. Review of automated refactorings in IntelliJ 4. Live refactoring in small steps 5. Habits of personal effectiveness for code quality 6. Clean Code & Pyramid of Refactoring 7. SOLID Principles & Pyramid of Refactoring
Part 2 - Clean Code to ease extendability and testability
1. Review of "Extended" Legacy Code project 2. New Requirements + No Cleaning = (More) Dirty Legacy Code 3. More Requirements are coming... 4. Live refactoring towards extraction of extension points 5. Clean code is extendable code 6. Habits of team effectiveness for code quality
This is a very extensive training and based on the experience the proposed approach is make it is as 1 full day or 2 days of 4 hours. The second option allows the developers focus on other daily activities in the remaining part of the day.
Regular developers, although senior developers claim that they've learned lots of new things / ideas and shared them with fellow developers.
All trainings are workshops - not lectures. Each attendee follows what the trainer does. This way each attendee requires attention when they ask trainer to repeat the previous refactoring steps or just to guide them again when they need it.
Based on the above and experienced lots of times while the number of attendees is bigger the amount of content we can go through is smaller. The most efficient number of attendees is 10 people.
Number of attendees: 12 people
Duration: 1 day
Technologies Java 1.8+ / IntelliJ (Community) / Maven
contact person: email@example.com