''"The two most important tools an architect has are the eraser in the drawing room and the sledge hammer on the construction site." - FrankLloydWright''

(http://c2.com/ppr/wiki/WikiPagesAboutRefactoring/html.zip -- fast download of these pages.)

'''Definition:'''
	* ReFactor
	* RefactoringEqualsReparametrization
	* CodeNormalization
	* WhatIsRefactoring

'''Catalogs:'''
	* RefactoringCatalog
	* BigRefactorings

'''Refactoring Patterns:'''
	* BacktrackIfRefactoringFails
	* TheFirstRefactoringStep
	* RefactoringInVerySmallSteps
	* TestEveryRefactoring
	* RefactoringInDuets
	* RefactoringUsingTools 

	* AboutRefactoringPatterns
	* RefactoringPatterns

'''Costs and benefits:'''
	* GoFasterWithRefactoring
	* CostOfRefactorCarry
	* RefactoringAndRewriting
	* RefactoringFriendly
	* RefactoringIsntOverhead
	* RefactoringYtwok
	* EconomicsOfRefactoring

'''Counterbalances less design up front:'''
	* RefactoringIsaRequirement
	* OaooBalancesYagni

'''Small is good:'''
	* RefactoringInVerySmallSteps
	* BiggerRefactoringThoughts
	* NanoRefactorization
	* ImagineTheRefactoring

'''Continuous is good:'''
	* ConstantRefactoringIsaGoodThing
	* RefactorMercilessly
	* OpportunisticRefactoring

'''Although sometimes done in larger chunks:'''
	* RefactoringIteration
	* RefactorSlack

'''Refactoring and understandability:'''
	* RefactoringMercilesslyHidesTheForest
	* WhatItTakesToGrokCode
	* WellFactoredProgramsCannotBeUnderstoodStatically
	* StudyTheSourceWithaDebugger
	* WhenToStopRefactoring

'''One thing at a time is good:'''
	* RefactoringHat
	* OnlyWearOneOfFourHats

'''Continuous testing is good:'''
	* TestEveryRefactoring

'''Refactoring Rules:'''
	* RefactoringLanguage
	* WhatIsaFactor

'''Goals:'''
	* Refactoring to be ready for unanticipated change
		* ExtremeNormalForm - ''Recommended''
		* ExtremeNormalFormDefinitions
		* WhatMakesSoftwareFlexible
		* MultipleInheritanceIsNotEvil

	* Refactoring to reduce code smells
		* CodeSmell''''''s - ''Recommended''
		* ListenToTheCode
		* AskTheCode

	* Refactoring to reduce redundancy
		* OnceAndOnlyOnce
		* AbstractWithOnceAndOnlyOnce
		* BridgePatternIsJustGoodFactoring
		* JustGoodFactoring
		* MetaRefactoring

	* Refactoring for clarity
		* ShortMethods
		* ComposedMethod
		* ExtractMethod
		* MethodObject
		* WellFactoredCode
		* SimplyUnderstoodCode
		* SeparateTheWhatFromTheHow
		* IntentionNotAlgorithm

	* Refactoring to learn or teach
		* RefactoringReviews

	* Refactoring for other reasons
		* MoveMethod
		* RefactoringAddingComplexity
		* ChangeVelocity
		* ExtractImplementationFromHeader

	* Conflicting goals
		* CircularRefactoring
		* CanOnceAndOnlyOnceLoop
		* RefactorCollision

'''Tools:'''
	* RefactoryBrowser
	* RefactoringBrowser
		* VisualAgeJavaRefactoringBrowser - ''Request for the addition of a RefactoringBrowser in VisualAge''
		* http://www.xptools.com/ - RefactoringBrowser for Java
	* IntellijIdea
	* EclipseIde 
		*http://www.eclipse.org
	* C# Refactory
		*http://www.xtreme-simplicity.net
	* .NET Refactoring
		*http://dotnetrefactoring.com
	* C++ Refactoring
		*http://www.ideat-solutions.com/refpp
		*http://www.slickedit.com/products/pr_visual_slickedit.php
		*http://www.xref-tech.com/xrefactory
	* Delphi Refactoring with ModelMaker CodeExplorer
		*http://www.modelmakertools.com

'''Books:'''
	* RefactoringImprovingTheDesignOfExistingCode (RefactoringBook) - by MartinFowler (see RefactoringDotCom )
	* RefactoringToPatterns

'''Language Specific:'''
	* RefactoringInVisualBasic
	* RefactoringInJava
	* RefactoringWithCeePlusPlus

'''Related pages about comments and code clarity:'''
	* CommentCostsAndBenefits
	* CommentExample
	* CommentingChallenge
	* IdentifiersAreComments
	* MeaningfulComment
	* MethodCommenting
	* ToNeedComments
	* TreatCommentsWithSuspicion
	* WellCommentedCode

'''Related pages about variables and code clarity:'''
	* AssignVariablesOnce
	* LocalVariablesDefinedAndUsedOnOnePage
	* LocalVariablesReassignedAboveTheirUses
	* MeaningfulName
	* RoleSuggestingVariable
	* BadVariableNames - ''for how '''not''' to do it.''

'''Meta Refactoring'''
	* AutomatedRefactoring

'''Refactoring Noses - Pushing the limits of refactoring discovery'''
	* RefactoringNose

'''Other'''
	* ReasonsToRefactor
	* SourcesOfRework
	* RefactoringLegacyCode
	* SafelyRefactoringLegacyCode
----

Or try one of the following searches ...
	 :	(...wiki?search=xyz searches all titles for a case insensitive match)
	 :	(...wiki?fullsearch=xyz searches all titles and page bodies for a case insensitive match)

	* http://c2.com/cgi/wiki?search=factor
	* http://c2.com/cgi/wiki?search=OnceAndOnlyOnce
	* http://c2.com/cgi/wiki?search=Oaoo
	* http://c2.com/cgi/wiki?search=method
	* http://c2.com/cgi/wiki?search=comment
	* http://c2.com/cgi/wiki?search=variable

----
CategoryRefactoring