Duration: 24 hours
DescriptionThe course deals with the concept of refactoring as a way of preventing software rot. The course describes various smells indicating that a code needs refactoring, explains which refactoring types best suit specific situations, and describes the work of refactoring in detail through analyzing concrete real-life cases.
Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. It is a disciplined way to clean up code that minimizes the chances of introducing bugs. In essence when you refactor you are improving the design of the code after it has been written.
The need for refactoring is provided by the so-called "smells" that may signal problems inside the code. Smells may be found at the level of one class or between classes.
Refactoring principles apply to any object-oriented programming language.
- Smells within classes
- Smells between classes
- Composing methods
- Moving features between objects
- Organizing data
- Simplifying conditional expressions
- Making method calls simpler
- Dealing with generalization
- Refactoring with Java 8
- Refactoring and testing
ObjectivesAfter completing the course, students will:
- Gain all the necessary information about refactoring principles
- Know how to properly explain the need for refactoring
- Be able to implement refactoring activities in the development process
- Know how to identify code smells
- Be able to make informed decisions on refactoring a problem code
- Have the ability to perform refactoring step-by-step
- Know how to use automated code refactoring tools
- Senior developers
- DEV-001_Java Design Patterns (GoF)
- Know basics of object-oriented programming
- At least one year of work experience with object oriented-languages
- Know UML