What is Refactoring?
Refactoring is no "Silver Bullet" but it is a valuable weapon which benefit you to keep excellent hold on your code & so the project (software/application). But what is Refactoring? -It is a scientific process of taking existing code and improves it while it makes code more readable, understandable, and clean. Also, it becomes very handy to add new features, build large applications and spot & fix bugs.
It is a law of nature for fully successful iterative projects. You don’t decide to refactor, you refactor because you want to do something else and refactoring helps you to do that. When you refactor existing code of a project (software/app etc) by altering its internal structure but you are not changing its external behavior.
Refactoring even take a bad design of a project and rework it into a good one. You are not changing observable behavior of the project you improves the internal structure by Refactoring.
Refactoring also removes "Code Smells" from your project, this is done to get certain benefits and these benefits may not be consumable immediately but over the long term. It is a activity which is a solution to your problems, its performed when modifying the existing code of a project to incorporate new features or to enhance.
Refactoring can be done in different areas to improvement or you can say types of Refactoring:
Simply known as Refactoring, this is the refactoring of source code, it include (Rename method, Encapsulated field, Extract class, Introduce assertion, and Pushdown method). It changes structure of a program, but the functionality is the same.
A simple change to a database schema that improves its design while re-tuning both its behavioral and into semantics such as (Rename column, Split table, Move method, Replace LOB with table, Introduce column constraint)
User Interface Refactoring:
A simple change to the UI retains its semantics such as (Align entry field, Apply common button size, Apply font, Indicate format, Reword in active voice and Increase color contrast) It delivers consistency for all users -both within your organization and your customers organization.
Reasons why Refactoring is Important:
- To improve the design of software/application.
- To make software easier to understand.
- To find bugs
- To make program run faster.
- To fix existing legacy database
- To support revolutionary development
- To provide greater consistency for user.
-- >Refactoring improves the internal consistency of software system, whether in the software code, structure, design, database or its user interface.
-- >Refactoring is important when your system is full of bad code or design, these ugly patterns tend to get copied into the system quite easily, when new features are added.
-->With Refactoring in software spending time improves what already exist in a user interface will help future changes to your software much simpler to design and implement.
-->By continuously bettering the design of code, you make it easier & easier every time to work with. Even a little Refactoring adds new features to your project and continuous habit of refactoring makes it easier to extend and maintain code.
-->Refactoring enables you to evolve the code slowly over time, to take an iterative incremental approach to implementation.
Refactoring benefits your software to:
- Makes code more readable.
- Cleanup code and makes it tidier.
- Removes redundant, unused code and comments.
- Improves performance.
- Makes some things more generic.
- Keeps code DRY ( Don't Repeat Yourself)
- Combines and dispose "Like" or "Similar" code.
- Splitting out long functions into more manageable bite.
- Create re-usable code.
- Better class and function cohesion.