2016-07-13 5 views
2

필자는 비교적 큰 규모의 Python 프로젝트를 사용하고 있으며 자동화 된 테스트 및 배포 프로세스의 일부로 순환 복잡성 도구가 없습니다.파이썬을위한 순환 복잡도 메트릭 사례

파이썬에서 순환 복잡성 도구는 얼마나 중요합니까? 당신이나 당신의 프로젝트가 그것을 사용하고 효과적이라고 생각합니까? 누군가가 원한다면 이야기 전/후에 좋을 것입니다. 그래서 우리는 답변에서 주관성을 약간 벗어날 수 있습니다 (예 : cyclo-comp 도구가 없기 전에, 그리고 우리가 그것을 도입 한 후에, 좋은 것 일어난 일, 나쁜 일 B 사건 등). 이 유형의 질문에는 다른 일반적인 대답이 많이 있지만 특히 Python 프로젝트에서 찾지 못했습니다.

필자는이를 프로세스에 추가 할 가치가 있는지 여부와 대규모 Python 프로젝트에 가장 적합한 특정 메트릭 및 도구/라이브러리가 무엇인지 궁극적으로 판단하려고합니다. 우리의 주요 목표 중 하나는 장기간 유지 관리입니다.

답변

4

우리는 테스트 자동화와 관련된 프로젝트 중 하나에서 RADON 도구를 사용했습니다.

RADON

새로운 기능과 요구 사항에 따라, 우리는 그 프로젝트에 코드를 추가// 업데이트/수정 삭제해야합니다. 또한, 거의 4-5 명이이 작업을하고있었습니다. 따라서 검토 프로세스의 일부로 RADON 도구를 식별하고 사용했습니다. 코드를 유지 관리하고 읽을 수 있기를 원하기 때문입니다.

RADON 도구 출력에 따라 코드를 다시 짜넣고 더 많은 메서드를 추가하고 반복을 수정했습니다.

이것이 유용 할 경우 알려 주시기 바랍니다.

+1

나는 라돈을 좋아하기 시작했다. 이를 자동 빌드 프로세스에 포함하는 것이 더 어렵지 만 그 노력은 가치가 있습니다. – iankit

3

파이썬은 순환 복잡성과 관련해서는 특별한 것이 아닙니다. CC는 얼마나 많은 브랜칭 로직이 코드 덩어리에 있는지 측정합니다.

경험에 따르면 브랜치가 "높을 때"브랜칭이 낮은 코드보다 이해하기 쉽고 안정적으로 변경하기가 쉽습니다.

메트릭의 경우 일반적으로 중요하지 않은 값입니다. 조직에서 경험하는 상대 값입니다. 당신이해야 할 일은 다양한 메트릭스 (CC는 하나)를 측정하고 그 메트릭을 코드에서 발견 된 버그와 관련시키는 곡선에서 무릎을 찾는 것입니다. 무릎이 어디에 있는지 알게되면 코더에게 복잡도가 무릎 아래에있는 모듈을 작성하도록 요청하십시오. 장기간 유지 보수에 대한 연결입니다.

측정하지 않은 것은 제어 할 수 없습니다.

+0

파이썬에서 특정 도구를 사용합니까? 라돈은 좋은가요? 싸이클 컴 측정 기준치는 어떻게 계산 했습니까? JIRA에 관한 이슈를 추적하고 모든 릴리즈/스프린트가 끝나고 돌아가서 버그 수정/핫픽스를 수동으로 찾아 냈습니까? – mwm314

+0

우리는 CC가별로 의미가없는 특이한 프로그래밍 DSL을 사용하여 * 통계 도구를 빌드합니다. (우리는 실제로 더 나은 내부 DSL을 구축함으로써 얻을 수있는 생산성에 관심이 있습니다.) 일반적으로 메트릭을 이해하려는 사용자는 모듈의 메트릭을 계산하는 데 사용되는 버전 제어 시스템 (예 : 소스 코드)과 버그 추적 (모듈로 추적 된 오류) 정보를 여러 소스의 정보를 결합합니다. 정기적으로이 모든 데이터 수집을 실행하여 추세를 추적합니다. (메트릭 도구의 경우 my bio를보고 내 사이트 링크를 따라 가십시오.) –