2009-03-22 5 views
1

긴 행을 두 가지 조작으로 구분하는 것이 적절합니까?

혼란스러운 줄 바꿈 구조로 생각하는 코드를 정리하면 다음과 같습니다.

return 
     CommonContext.HttpWebService.DownloadXml(configuration.MethodUrl(APIMethods.CharacterSheet), 
                 postData); 

한 줄에 있으면 읽을 수있을만큼 길어야합니다. 그것이 의미하는 바에 따르면 "반환"과 "postData"가 긴 행과 어떻게 관련되어 있는지 대략적인 눈으로 나는 분명하지 않습니다. CommonContext 및 APIMethod는 정적 클래스이며 구성은 로컬 변수입니다.

이것에 대해 생각해 보면 아마 다음과 같이 두 줄로 똑같이 쓸 것입니다.

string methodUrl = configuration.MethodUrl(APIMethods.CharacterSheet); 
return CommonContext.HttpWebService.DownloadXml(methodUrl, postData); 

이 방법이 코드를 세분화하는 효과적인 방법입니까 아니면 더 좋은 방법입니까? 이 예제에서는 C# 2.0을 사용하고 있습니다.

답변

11

예. 대개 좋은 일입니다. 코드를 좀 더 셀프 문서화하고 (좋은 변수 이름으로) 디버깅을 더 쉽게 만듭니다. (첫 번째 줄에 중단 점을 두는 것을 허용합니다. 첫 번째 줄에서 예외가 발생하면 단 하나의 줄과는 반대로 즉시 구분할 수 있습니다. 라인 상황).

+0

감사합니다. 올바른 트랙에와 주셔서 감사합니다. –

1

무엇보다 가독성이 뛰어납니다. 프로그램이 너무 많아 너무 느려서 사용자가 실패하지 않았습니다.

7

그렇습니다. 코드를 리팩토링하는 데 효과적입니다. 디버거 또는 로거를 사용하여 methodUrl 값을 확인한 후 DownloadXml으로 전달하려는 경우 유용 할 수 있습니다.

또 다른 이점은 이름이 인 것입니다. 그것도 의미를 의미로 큰 도움이 될 수 있습니다. 이것은 많은 매개 변수가있는 경우 특히 중요 할 수 있습니다. 실제로 호출 사이트의 인수 목록과 메소드 선언의 매개 변수 목록을 빠르게 훑어보고 이름을 기반으로 진행되는 작업을 추측 할 수 있습니다. .

+0

좋은 표현 : "가치 부여 이름". 아마 Objective-C의 특징입니다. –

관련 문제