Kamila Santos
I will have to refactor ! And now ? Refactoring Techniques in Java
#1about 2 minutes
What is refactoring and why is it important
Refactoring improves software design and makes code easier to understand without changing its external behavior.
#2about 6 minutes
Identifying the right moments to refactor code
Refactoring can be done preparatorily, for understanding, to remove dead code, as a long-term project, or ideally during code reviews.
#3about 2 minutes
Understanding the disadvantages of refactoring
While beneficial, refactoring can increase delivery time, cause merge conflicts, and require tests to be rewritten.
#4about 2 minutes
Recognizing common code smells in your codebase
Code smells like duplication, long methods, confusing names, and outdated comments indicate underlying problems that refactoring can fix.
#5about 3 minutes
Using extract function and extract variable techniques
Improve readability by grouping code into a new function or simplifying complex expressions by storing them in a descriptive variable.
#6about 3 minutes
Encapsulating variables and introducing parameter objects
Control data access by making variables private with getters/setters and simplify method signatures by grouping related parameters into a single object.
#7about 3 minutes
Breaking down complex methods with split phase
Decompose a method that performs multiple distinct tasks into separate, more focused methods to improve clarity and maintainability.
#8about 4 minutes
Simplifying class interactions and responsibilities
Refactor large classes by using extract class, remove unnecessary intermediaries with remove middle man, and move functions to more appropriate classes.
#9about 4 minutes
Cleaning up code with various refactoring techniques
Improve the codebase by removing unused code, changing value objects to references for shared identity, and decomposing complex conditional logic.
#10about 5 minutes
Improving object creation and class hierarchies
Replace simple constructors with flexible factory methods, move common methods to a superclass with pull up method, and simplify hierarchies by collapsing unnecessary layers.
#11about 2 minutes
Conclusion and key takeaways on refactoring
Refactoring techniques should be combined and used alongside principles like SOLID to solve specific problems and improve overall code quality.
#12about 6 minutes
Q&A: Prioritizing refactoring and specific techniques
The speaker answers questions on how to prioritize refactoring tasks, the benefits of the split phase technique, and when to use change value to reference.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
00:51 MIN
Defining refactoring and refactorable code
Keep your code refactorable
40:16 MIN
Understanding the principles of safe automated refactoring
Let's build a VS Code extension for automated refactorings
13:04 MIN
Automating maintenance with dependency and refactoring tools
Open sourcing a library: how hard can that be?
01:01 MIN
Defining code smells and their importance in development
Identifying code smells
17:51 MIN
Differentiating between refactoring and restructuring legacy code
We (don't) need a software architect!?!
30:01 MIN
Refactoring implementation and test code with confidence
Treat yourself - A tale about dog training and test-driven development
00:12 MIN
Defining refactoring beyond the strict technical term
Product Managers' Eternal Battle with Refactoring
38:41 MIN
A step-by-step example of incremental refactoring
Domain-Driven Transformation—How to Bring (Back) Sustainable Architecture to Legacy and Monoliths
Featured Partners
Related Videos
Keep your code refactorable
Gerrit Stapper
OOP revisited
Dominik Przybysz
Application Modernization Leveraging Gen-AI for Automated Code Transformation
Syed M Shaaf
Identifying code smells
Benjamin Bischoff
Let's make your Java code Bug-Proof
Aicha Laafia
Dirty Tests And How To Clean Them
Gil Zilberfeld
Product Managers' Eternal Battle with Refactoring
Justyna Walkowska
From boy scouting to redrawing the landscape
Tim te Beek
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.


Softwareentwickler Java, Python oder Ruby (w|m|d)
zeb consulting
Frankfurt am Main, Germany
Junior
Intermediate
HTML
React
JavaScript

Associate Software developer (15 month FTC) Java or Groovy
Adaptavist
Municipality of Vitoria-Gasteiz, Spain
Remote
API
CSS
GIT
Java
+27

Associate Software developer (15 month FTC) Java or Groovy
Adaptavist
Municipality of Valladolid, Spain
Remote
API
CSS
GIT
Java
+27

Associate Software developer (15 month FTC) Java or Groovy
Adaptavist
Municipality of Santiago de Compostela, Spain
Remote
API
CSS
GIT
Java
+27

Java Developer Advocate (Developer Advocacy) New
JetBrains
Amsterdam, Netherlands
Java
JUnit
Maven
Gradle
Python
+4

Associate Software developer (15 month FTC) Java or Groovy
Adaptavist
Municipality of San Sebastian, Spain
Remote
API
CSS
GIT
Java
+27

Associate Software developer (15 month FTC) Java or Groovy
Adaptavist
Municipality of Almería, Spain
Remote
API
CSS
GIT
Java
+27
