Content deleted Content added
Line 153:
:Sounds like the same thing to me, one is refactoring done during normal development, the other is long overdue refactoring that should have been done during development but wasn't. Refactoring simply means making tiny behaviour preserving transformations that make code easier to read and maintain. [[User:Mmeijeri|Martijn Meijering]] ([[User talk:Mmeijeri|talk]]) 22:09, 4 January 2014 (UTC)
::No they aren't the same thing at all. They involve similar types of activities and tools but they are fundamentally different. Analyzing some old assembler or COBOL code to understand the control flow or the business logic is re-engineering. Taking a Java system and reworking it to make it more re-usable, maintainable, etc. is refactoring. In refactoring you are using the same paradigm and language for the before and after. In re-engineering you are usually working in a different paradigm (code that wasn't designed with OO) and certainly in a different programming language. --[[User:MadScientistX11|MadScientistX11]] ([[User talk:MadScientistX11|talk]]) 04:21, 5 January 2014 (UTC)
:::OK, that's a substantial difference, but it seems to me refactoring could still be a large part of it. I once worked on a numerical code that had originally been written in Fortran, had been run through f2c after a couple of years and then been maintained for a couple of years. I thoroughly refactored it into more OO C++. Running something through f2c is still a behaviour preserving transformation, though the immediate end result isn't more readable, so it's a bit of a stretch to call it refactoring. [[User:Mmeijeri|Martijn Meijering]] ([[User talk:Mmeijeri|talk]]) 10:50, 5 January 2014 (UTC)
|