자바와 MS진영 (비교자체가 약간 어색하지만, 일리가 있다. 자바는 어느정도 반 MS의 진영의 축을 담당하기 까닭에..)의 SDK에서 지원하는 리팩토링 기능을 조사해봤다.

Visual Studio 2005에서 드디어 리팩토링 기능이 지원되었다. 아직은 이클립스 수준까지는 아니지만, 어느정도 쓸만하다고 본다. 개인적으로 Visual Studio 6를 쓰면서 느끼는 점은 컴파일이 빠른 거 외엔 Eclipse를 넘어서기기 어렵다.( 사실 컴파일이 빠른 것은 언어적인 차원이라서 비교 대상 자체는 아니다. 표현자체가 좀 거시기하다.)

하여튼, MS에서 나온 SDK가 리팩토링의 기능을 SDK에 넣은 것 자체가 수요가 있었기에 이 정도라도 나온게 아닌가 싶다.

<Visual Studio 2005>

http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dnvs05/html/vs05_refac.asp

Refactoring Technique Meaning in Life

Extract Method : This allows you to define a new method based on a selection of code statements.
Encapsulate Field : Turns a public field into a private field encapsulated by a .NET property.
Extract Interface : Defines a new interface type based on a set of existing type members.
Reorder Parameters : Provides a way to reorder member arguments.
Remove Parameters : As you would expect, this refactoring removes a given argument from the current list of parameters.
Rename : This allows you to rename a code token (method name, field, local variable, and so on) throughout a project.
Promote Local Variable to Parameter  : Moves a local variable to the parameter set of the defining method.


<Eclipse>

http://www.cs.umanitoba.ca/~eclipse/13-Refactoring.pdf

Type 1 . Physical Structure
. Rename
. Move
. Change Method Signature
. Convert Anonymous Class to Nested
. Move Member Type to New File
Type 2 . Class Level Structure
. Push Down
. Pull Up
. Extract Interface
. Generalize Type (Eclipse 3 only)
. User Supertype Where Possible
Type 3 . Structure inside a Class
. Inline
. Extract Method
. Extract Local Variable
. Extract Constant
. Introduce Parameter (Eclipse 3 only)
. Introduce Factory (Eclipse 3 only)
. Encapsulate Field
Posted by '김용환'
,