2010-12-02 6 views
1

우리의 응용 프로그램에는 전체 Java Swing 응용 프로그램 논리를 포함하는 두 개 또는 세 개의 클래스가 있습니다. 이 두 개 또는 세 개의 클래스에는 약 7k 줄의 코드가 들어 있습니다.수천 줄의 Java 코드를 리팩토링하는 방법은 무엇입니까? 사용할 수있는 도구가 있습니까?

이제이 Java 코드를 리팩터링하는 작업이 할당되었습니다.

어떻게 시작합니까? 리팩토링을하거나 적어도 우리를 안내 할 도구가 있습니까?

+3

리팩토링에서 정확히 수행하고자하는 작업은 무엇입니까? –

+3

검은 구름이되어 미안하지만 좋은 OOP 기법을 사용하여 처음부터 완전히 다시 작성하는 것이이 단계에서 더 좋지 않겠습니까? –

+0

리팩토링? –

답변

2

나는 당신이 작은 것들로 이러한 큰 클래스를 깨려고한다고 가정합니다.가장 일반적인 방법은 Extract Class 리팩터링을 사용하는 것입니다. 이것은 단지 PhD 논문 작업의 주요 주제입니다.

어려운 부분 중 하나는 새로운 클래스에 들어가는 것을 결정하는 것입니다. 그 도움에 대해 알고있는 두 가지 공개 도구 ((내 공구) 및 JDeodorant)가 있습니다. 두 가지 모두 이클립스 플러그인입니다. 두 가지를 모두 프로토 타입으로 분류 할 것입니다. 내 도구를 사용하려고한다면 기꺼이 도와 드리겠습니다.

새로운 클래스에 무엇을 넣어야할지 결정한 후에는 클래스를 다른 클래스로 분리하는 실제 작업을 수행해야합니다. Eclipse의 Extract Class 리팩터링의 이름이 잘못되어 isn't really helpful입니다. IntelliJ의 IDEA는 훨씬 뛰어나지 만 여전히 버그가 있습니다. JDeodorant는 분할을 수행 할 수도 있지만 버그가 있습니다.

0

리팩토링 코드는 주로 툴을 사용하여 개발자에게 의존하므로 리팩토링과 관련하여 IDE는 매우 중요한 도구입니다.

Eclipse와 IntelliJ IDEA 모두 리팩토링을 충분히 지원합니다. 개요

, 체크 아웃 :

+0

코드가 느슨하게 결합되어 있고 이미 OOP을 따른다면 Eclipse 리팩토링으로 갈 수 있습니다. 리팩토링하기 쉽습니다. 하지만 내 경우에는 MVC, OOP 기술을 사용하지 않고이 7k 라인을 사용하면이 경우 어떻게 리팩터링 된 코드를 만들 수 있습니까? – u449355

+2

질문에 대한 내 의견보기 ... 경우에 따라 아기 - 단계 (IDE에서 제공하는 리팩토링 단계)를 사용하여이 유형의 코드를 리팩터링하면 코드가 수행되는 과정에서 더 많은 통찰력을 얻을 수 있습니다. 다음 단계는 IDE에서 제공하는 표준 리팩터링을 넘어서 부분적으로 다시 작성/재구성하는 것입니다. 처음부터 다시 쓰는 일은 거의 필요하지 않습니다. 최소한 소프트웨어 개발 경험을 바탕으로 – ddewaele

1

이클립스가 일부 내장 리팩토링 도구를 제공합니다. 메서드의 시그니처를 리팩터링하고, 인터페이스와 클래스를 추출하고, 계층 트리에서 메소드를 위아래로 당기고, 패키지를 이동시킬 수 있습니다.

Martin Fowler의 책 "Refactoring : 기존 코드의 디자인 개선"부터 시작할 수 있습니다.

+2

* 멋지게 디자인 된 느슨하게 결합 된 클래스에 대해서는 단지 두 번의 클릭만으로 모든 것을 할 수 있습니다. 코드가 악몽이라면 Eclipse 리팩토링 도구는 실제로 그럴 수 없습니다. –

+0

나는 코드가 악몽이라고 생각하며 리팩토링해야한다. 유지 보수 할 수 있도록 리팩토링한다. – u449355

1

IntelliJ는 Java 코드를 이해할 수있는 모든면을 갖추고 있으며 우수한 리팩터링을 제공합니다. 그리고 지금은 free and open source version입니다.

+0

30- 트라이얼 버전은 많은 작업을 할 수 있어야한다. –

+0

소련 러시아에서는 IntelliJ가 당신을 리펙토링합니다 :-) –

4

필자는 Eclipse - 편집 및 리팩터링을위한 뛰어난 Java IDE를 권하고 싶습니다. 리팩토링을위한 몇 가지 도구가 있습니다. 이클립스로 작업을 수행하는 방법에 대한 훌륭한 튜토리얼은 다음 위치에 있습니다

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

아직 확신하지 않으면 이클립스 리팩토링의 힘에 brililant 문서에서,있다 :

http://www.eclipse.org/articles/article.php?file=Article-Unleashing-the-Power-of-Refactoring/index.html

http://www.ibm.com/developerworks/opensource/library/os-ecref/

:

그리고 기술과 도구를 포함하여, 이클립스 리팩토링하는 방법에 결국 다른 기사

는에서 확인할 수있다

에 관심이있을 수 있습니다 자바 코드를 리팩토링을위한 전략에 대한 또 다른 유래 질문도있다 : 도움이

https://stackoverflow.com/questions/128498/what-are-the-best-code-refactoring-strategies

희망, 행운을 빌어 요!

0

동일한 변수 집합을 사용하는 메서드를 함께 그룹화하려고하는 자체 리팩터링 도구를 만들었습니다. 그것은 초기 프로토 타입입니다. Windows Eclipse 플러그인으로 만 사용할 수 있습니다.

Variable Usage Eclipse Plugin

관련 문제