To be determined
In the relentless pursuit of software excellence, the specter of "software rot" looms ominously, threatening the integrity and effectiveness of even the most meticulously crafted codebases. However, armed with a powerful arsenal of refactoring techniques, developers can stem the tide of decay and fortify their code against the ravages of time. Welcome to a comprehensive exploration of Code Refactoring for Java, where we delve deep into the art and science of revitalizing and rejuvenating code to prevent software rot.
This immersive course embarks on a journey through the labyrinthine world of code smells and refactoring strategies, equipping participants with the knowledge, skills, and insights needed to breathe new life into aging codebases. We begin by identifying the telltale signs of code decay and exploring a myriad of common "smells" that serve as red flags for potential refactoring opportunities. From bloated methods and tangled class hierarchies to duplicated code and convoluted conditional expressions, participants will learn to recognize these symptoms and diagnose the underlying issues with precision.
With a firm understanding of code smells in hand, we proceed to dissect the anatomy of refactoring itself, exploring a diverse array of refactoring types tailored to specific code scenarios. Whether it's untangling dependencies between classes, simplifying complex conditional logic, or restructuring method compositions, participants will discover a rich toolkit of refactoring techniques at their disposal. Through the analysis of concrete, real-life cases, and hands-on exercises, learners will gain practical experience in applying these techniques to refactor Java applications effectively and efficiently.
The course covers the following main strategies for refactoring a Java application:
By the end of this course, participants will:
Join us on this transformative journey to become a master of code refactoring in Java. Whether you're a seasoned developer seeking to hone your skills or a newcomer eager to learn the ropes, this course offers invaluable insights and practical techniques that will empower you to elevate the quality of your code and become a more proficient Java craftsman.
After the completion of the course, students will be able to:
1. [Theory – 2h: Practice – 0.5h] Introduction
2. [Theory – 1.5h: Practice – 1h] Smells within classes
3. [Theory – 0.5h: Practice – 1h] Smells between classes
4. [Theory – 1h: Practice – 1h] Composing methods
5. [Theory – 1h: Practice – 1h] Moving features between objects
6. [Theory – 2h: Practice – 2h] Organizing data
7. [Theory – 1h: Practice – 1h] Simplifying conditional expressions
8. [Theory – 1h: Practice – 1h] Making method calls simpler
9. [Theory – 1h: Practice – 1h] Dealing with generalization
10. [Theory – 0.5h: Practice – 1h] Refactoring with Java 8
11. [Theory – 1h: Practice – 1h] Refactoring and testing
Total: theory 12,5h (52%), practice 11,5h (48%)