The purpose of this course is to help developers design well-crafted code. Meaning expressive, concise design that is also flexible and testable. The course is a mix of theory, brainstorms and hands-on exercises designed to teach developers practical techniques they can immediately apply to real-world projects.
Date: 9 November 2018, Bucharest
Training fee: €265/participant plus VAT, only 20 seats available
About the training
Design Patterns are a powerful weapon. So powerful that in the wrong hands it can get you to horrible overengineered code. Mastering the underlying principles and knowing why, how, the cost and nuances of applying a pattern can have a huge impact on code quality on the long run.
Since the classic GoF book, design patterns have evolved dramatically: many have died, a few amazing ones were born while others became incredibly simple to implement with Spring and Java 8. However, the underlying principles never changed. We will take a Software Craftsmanship approach to those principles, always aiming for clean, maintainable and testable design.
Designing simple code is hard! Redesigning existing code is even harder but often imperative when facing legacy, or when you aim for a minimalistic emerging architecture. You should attend to this workshop if you want to:
- Design clean code that is simple, expressive, unit testable yet flexible
- Become more proficient in the fundamental design concepts and principles
- Grow your skills to refactor existing/legacy code
- Learn more about Spring’s magic
By solving a series of exercises with Java 8 and Spring Framework, you will learn how to:
- Break down complex problems in simple patterns
- Avoid over-engineering and rigid code by keeping your design to a minimum
- Recognize patterns in existing code to understand its intention
- You will also discover many things you didn’t knew about Spring, even if this is not the main goal of the course
- Design Principles and Concepts: SRP, DRY, KISS, YAGNI, SOLID, Beck’s
- Singleton, a stateful, burdened life, vs other lifestyles
- Adapter, the anti-corruption Layer of DIP
- Decorator and Proxy, the “magic” of Spring
- Facade, and an approach to evolutionary architecture
- Observer, and event-driven Spring components
- Iterator and Stream, as a concept
- Strategy and Chain of Responsibility, an application of SRP
- Command, and asynchronism
- Template Method, and its death by…
- Passing a Block, the best of functional programming
- Anti-Patterns, and some workarounds
- Final Test + awards.
The course is a mix of slides, brainstorms and a lot of exercises distilled from real problems, implemented with Spring and Java 8.
Enthusiast developers that have:
- At least several years of experience with Java
- Prior contact with Spring Framework is recommended, but not required
- Basic understanding of the Java 8 lambdas and streams (nice to have)
- Prior contact with Design Patterns would help skipping over the basics
You must bring your own laptop with a development environment consisting of your favorite IDE, JDK 8+, working Maven (connected to central) and Git. You will be asked to clone a repository several days before the workshop.
Victor is one of the most appreciated technical trainers in Bucharest (victorrentea.ro), well-known for the passion he puts in every minute of his classes. Today, he is regularly called by companies of all sizes to help bringing Software Craftsmanship ideology and eXtreme Programming practices to their technical culture. After 14 years of professional career, Victor is currently Lead Architect at IBM, where he practices and preaches eXtreme Programming, crafting code and coaching others each day. He is Associate Professor at Politehnica University (UPB) and a key community member, after organizing the largest 3 Bucharest JUG meetups in history. Victor is internationally renowned by his passion for Clean Code and Java 8 and is frequently invited to speak at many conferences around the world. He is personally committed to helping developers grow their passion for code.
Lunch and Coffee Breaks included in the price of the Masterclass.
Browse more masterclasses here.