说实话,即便是在写《重构之维》的时候,这个问题仍然困扰着我:refactoring(refactory)这个词从何而来?Martin Fowler猜,它来自代数里的因式分解(factoring),但最早的重构者们似乎从来没有想到过这个词……
——————
10 September 2003
Where did the word refactoring come from?
This question struck my mind a few times when writing the refactoring book. I didn't think that trying to do an intensive etymological search was worth the trouble - after all it was the techniques that I was focused on - but I did ask around the people who had helped develop the ideas (Ward Cunningham, Kent Beck, Bill Opdyke, John Brant, Don Roberts, Ralph Johnson...)
The obvious answer comes from the notion of factoring in mathematics. You can take an expressions such as x^2 + 5x + 6 and factor it into (x+2)(x+3). By factoring it you can make a number of mathematical operations much easier. Obviously this is much the same as representing 18 as 2*3^2. I've certainly often heard of people talking about a program as well factored once it's broken out into similarly logical chunks.
When I asked around the creators of refactoring, the common answer was that they had no idea. The term had been around for a while and they don't know where it came from.
The one definite answer I got was from Bill Opdyke, who did the first thesis on refactoring. He remembered a conversation during a walk with Ralph Johnson. They were discussing the notion of Software Factory, which was then in vogue. They surmised that since software development was more like design than like manufacturing, it would be better to call it a Software Refactory. Refactory has gone on to be the name for the consulting organization that Ralph and his colleagues use.