Code Refactoring : 25 risorse per riscrivere al meglio il codice
Martin Fowler, autore del famoso libro “Refactoring: Improving the Design of Existing Code” del 1999 (ancora pietra miliare del’argomento) definisce così il code refactoring :
” disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior”.
Anche se il senso sembra chiarissimo, comunque, il processo di code refactoring è un processo di cambiamento su qualsiasi software o applicazione che non altera il comportamento esterno del codice e prova a migliorare la struttura interna.
Al giorno d’oggi, il code refactoring, assume un’importanza molto elevata laddove viene rilasciato codice in modo spesso frettoloso. Ecco quindi che, operazioni successive di testing, di ottimizzazione del database e altro diventano molto utili.
In questo articolo ho provato a raccogliere alcune interessantissime risorse ed articoli, suddivis per argomento, che potranno esservi utili e guidarvi in questo processo spesso sottovalutato.
Siti Web
Martin Fowler’s homepage about refactoring
Mikado Method for Large Scale Refactoring – Free draft for review
Refactoring Databases – Evolutionary Database Design
Refactoring To Patterns Catalog
Refactor my code
OODBMS Schema Refactoring Catalogue
Articoli
Strategies for refactoring untestable PHP code
A Developers’ Guide to Refactoring Databases
Refactoring Large Software Systems
Easy Database Refactoring
Smells to Refactorings Quick Reference Guide
Refactoring Java Code
Refactoring for Python 3
Books
Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant and William Opdyke
Refactoring Databases: Evolutionary Database Design by Scott J Ambler and Pramodkumar J. Sadalage
xUnit Test Patterns: Refactoring Test Code by Gerard Meszaros
Refactoring in Large Software Projects: Performing Complex Restructurings Successfully by Martin Lippert and Stephen Roock
Tools Open Source
Ropeide, a python refactoring IDE
Wrangler is an interactive refactoring tool for Erlang
ExtC – Java Extract Class refactoring
Refactoring Plugin for Eclipse
Chrysalis – A tool for XML Refactoring