2012-05-23 3 views
-1

복잡한 메서드의 기능을 여러 가지 작은 메서드로 분할하는 것이 좋은 코드 가독성 측면에서만 좋은 방법 인가요? 아니면 어떤 종류의 "나쁜 스타일"입니까?C#에서 여러 개의 작은 메서드로 나누기

+0

이것은 너무 애매합니다. 일반적으로 작은 방법이 있어야하지만보다 유용한 피드백을 원한다면 예제를 제공해야합니다. –

+0

http://en.wikipedia.org/wiki/Code_refactoring –

+0

@ Cicada, 나는 어떤 "하나의 것"이 몇 개의 가장 작은 것으로 분리 될 수 있다고 생각합니다. Btw, 그렇지 않은 경우 그러한 질문을하는 곳은 무엇입니까? – Shelest

답변

4

매우 기본적인 규칙은 메서드가 단 한 가지만 수행해야한다는 것입니다. 많은 다른 일을하는 것을 감지하면 명확한 리팩터링 기회가 있습니다.

방법의 책임이 하나이지만 크기가 너무 긴 경우에는 분리 된 방법으로 "도우미"기능을 추출해보십시오. 분리 된 클래스로 승격 될 수있는 코드를 감지 할 수도 있습니다.

TDD 개발은 이러한 종류의 문제를 피하기위한 훌륭한 방법입니다. 테스트 가능성을 위해서 단지 단일 관심사를 명확하게 분리하고 여러 코드를 피하는 데 도움이되기 때문입니다. 간결한 방법을 쓰지 않으면 제대로 테스트하기가 어렵습니다.

+0

좋아요, 제가 원한 것처럼 들리는 것 같아요. Claudio Redi, Massimiliano Peluso, Mohammed ElSayed, 대답 해 주셔서 대단히 감사합니다.) – Shelest

3

코드 재사용 (DRY 원칙)을 생각하면 리팩토링을 고려해야합니다. 기능을 기반으로 다른 작은 모듈로 메소드 내용을 분할하여 재사용 할 수 있도록하십시오. 예 : 고객 등록 세부 정보를 저장하고 새로운 주문을 작성하는 방법이있는 경우. CheckUserExist, SaveUserSaveOrder과 같은 많은 메소드가 있는지 확인할 수 있습니다. 필요에 따라 코드의 다른 영역에서이 기능을 재사용 할 수 있어야합니다. 모듈 단위로 나누면 코드가 더 읽기 쉽게됩니다.

+0

"좋은 코드 가독성 측면에서 만"재사용하지 말 것. – Shelest

+0

@Shelest : 오늘 코드를 재사용 할 수는 없지만 나중에 시간. 모듈 식 코드가 더 읽기 쉽습니다. – Shyju

3

Unclebob (Robert C. Martin)은 방법이 4-5 줄의 코드보다 커서는 안된다고 간주합니다. 그의 좌우명은 "Extract till you drop"입니다. 개인적으로, 나는 이것이 아주 좋은 연습이라고 생각한다.

Visual Studio를 사용하면 클라우디오의 대답에 추가 CTRL + R, M.

+0

Ctrl + R, M - 그 이유는 무엇입니까? 그건 cooooool이야. 4-5 줄은 제게 정신 나간 것처럼 보이지만, 제가 아는 것은 무엇입니까. – Yatrix

+0

처음에는 똑같이 생각했습니다. 하지만이 규칙을 적용한 후에 코드가 얼마나 깨끗한지를 강조 할 수는 없습니다. 물론, 당신은 언제나 커질 수있는 방법을 가지고있을 것입니다. 아이디어는 가능한 한 작게 유지하는 것입니다. – sebi

+0

가능한 한 작음 100 %에 동의합니다. – Yatrix

1

을 눌러 방법을 추출 할 수 있습니다, 일부가 발견하면, 그것은 당신이 리팩토링과 코드를 분리해야한다는 의미 냄새가있다.

1- DRY 코드 : 일부 줄을 여러 곳으로 복사/붙여 넣기를하는 경우, 배치 된 가운데에 배치해야하며 그만큼 많이 불려야하는 악취입니다. 해야한다.

2- 수 백 줄의 메소드 : 좋은 방법은 50 줄을 초과해서는 안되며이 수보다 많거나 적을 수 있습니다. 그러나이 방법은 346 줄로 수행하는 것이 좋지 않습니다.

3- 매개 변수가 너무 많음 : 메서드의 긴 매개 변수 목록은 가독성과 코드 품질을 악화시킵니다.

4 코드 침입 : 다른 클래스에서 차단 된 많은 것을 사용하는 메소드는이 클래스 내에 있어야합니다.

희망이 있습니다.

관련 문제