2009-04-24 4 views
10

레거시 파이썬 코드를 파고 파이썬 코드를 직접 작성하는 경우 종종 pylint을 사용합니다. 나는 또한 Clone Digger을 사용하고있다. 최근에 자동화 된 리팩토링을위한 라이브러리 인 rope을 사용하기 시작했습니다.리팩토링을 제안하는 파이썬 도구

하지만 나는 로프가 아닌 다른 것을 찾고 있습니다. 가능한 리팩토링에 대한 제안을하는 도구를 선호합니다. 리팩토링에 이름을 지정하고, 선택적으로 간단한 설명 (학습 목적에 적합)을 제공하고, 코드 섹션을 강조 표시하고, 리팩터링을 직접 수행 할 수있게 해줍니다. 그런 도구가 있습니까?

+0

학습 목적으로 http://www.refactoring.com/ 또는 Martin Fowler의 실제 책을 권하고 싶습니다. 설명 된 것과 똑같은 도구를 모릅니다. ( – Ryan

+0

찾고있는 도구의 구체적인 예입니다. 이미 Python이나 다른 프로그래밍 언어 용으로 존재합니까? – bignose

+0

pylint와 Clone Digger는 모두 코드의 특정 문제를 지적하여 문제가되는 부분을 제안하지만 리팩토링 자체는 제안하지 않습니다 – Anonymous

답변

2

체크 아웃 자전거 수리 남자 http://bicyclerepair.sourceforge.net/

자전거 수리 남자는 무엇입니까? Bicycle Repair Man 프로젝트는 파이썬에 대한 리팩토링 브라우저 기능을 만들기위한 시도입니다. 리팩토링 기능을 제공하기 위해 IDE 및 편집기에 추가 할 수있는 라이브러리로 패키지되어 있습니다. Emacs 및 Vi 용 바인딩이 패키지에 포함되어 있습니다.

직접 사용하지 않았지만 그것에 대해 읽었습니다. 당신이 찾고있는 것과 같다.

+2

BicycleRepairMan은 로프와 비슷하지만 나이가 들어서 로프보다 기능이 적습니다. 내가 뭘 찾고있는 것이 아닌지 BRM을 과거에 사용했는데 로프가 그것을 대체했기 때문에 언급하지 않았습니다. – Anonymous

0

NetBeans에는 Python을 지원하는 초기 액세스 버전이 있습니다. 여기에는 유용한 리팩토링 도구가 있습니다. 추가 보너스로 Windows, Linux, Mac OS X 및 Solaris에서 작동합니다.

그것을 체크 아웃 : http://www.netbeans.org/features/python/

+1

I 당신이 제공하는 참고 문헌에서 그 질문이 무엇을 요구 하는지를 제시 할만한 것을 보지 말라 : 프로그램에 제안을한다. 어쨌든 * 어떤 * 리팩터링을 코드의 특정 시점에서 수행 할 것인가? – bignose

1

I하지 개념은 마틴 파울러의 리팩토링 책 (web reference)에서 언급되었지만 도구의 유형, 특정 언어에있는 경우.

내가 알고있는 최고의 도구는 현재 순환 복잡성입니다. This article은 파이썬을위한 순환 복잡도 카운터를 구현합니다.

메소드/함수 길이, 객체/클래스의 속성 수 및 함수에 대한 매개 변수 수에 대해 알아볼 수있는 또 다른 측정 항목은 필 린트가 이미 계산 한 것입니다.

+0

순환 적 복잡성은 도구가 아니라 코드 메트릭입니다. –

2

오 툴링을 잊어 버린 대신 TDD와 리팩토링과 같은 좋은 책을 사용하여 Kerievsky의 패턴 디자인을 잊어 버리십시오. 문제는 리팩토링이 코드와 디자인을 개선하는 방법이지만 리팩토링 도구로는 원하는 것을 얻을 수 없다는 것입니다.

요점은 리팩터링을 배우는 가장 좋은 방법은 예제를 배우는 것입니다. 어리석은/간단한 도구를 따르지 말아야합니다. 정교한 리팩터링을 가르쳐주지 않을 것이고, 코드 작성과 관련하여 리팩토링을하면 알려줄 것이기 때문입니다. .

PS Fowler "Refactoring"및 Kerievsky "Refactoring Design Patterns"리팩토링을 학습 할 때 읽어야하는 책입니다. 그리고 그들은 리팩토링이 필요한지 (냄새가 나는지) 확인하는 간단한 방법을 언급합니다.

또한 TDD를 사용하면 참조가 안전하고 코드가 손상되지 않도록 할 수 있습니다. Beck "Test-Driven Development by Example"은 시작하기에 좋은 책입니다. 그리고 파이썬에는 TDD 용 PyUnit이 있습니다.

2

자동으로 파이썬 단위 테스트 생성기 Pythoscope, 당신은 동적으로 코드를 실행하여 단위 테스트 스위트를 부트 스트랩하는 데 도움이되기로되어 있습니다.

또한 rope.contrib.codeassist 모듈을 확인 했습니까? 자동으로 소스 코드의 리팩토링을 제안하고 수행합니다.

관련 문제