Refactoring is a well-proven agile software development method, often used together with test-driven development: after each successfully completed Unit Test, the program code is restructured and optimized.
The code is conformed to guidelines and standards, redundancies are removed, methods are shifted to another class (depending on the situation), packets are divided or combined etc. Thanks to these small iterations, the code is gradually improved, without in any way compromising program function or behaviour. As a result, each test cycle leaves a code that is improved in quality and structure, tested and refined, maintenance and extension-friendly, highly modular and of low redundancy.
The Unit Tests that follow each refactoring are designed to ensure that the code still behaves the same after restructuring and that no errors have slipped in. Iterative processes, test-driven development and refactoring thus brilliantly complement one another.
Various automatic refactoring tools are available, including a special TYPO3 extension. Integrated development exercises (IDEs) also offer appropriate functions.