티스토리 뷰
테스트를 위한다면, 정말 피해야 할 것이 테스트들 간의 의존성이다. 테스트들 간의 간섭이 최소화 되려면, 테스트할 대상들의 구분이 명확해야한다. 그럴려면, 함수 안에 여러기능들이 모여 있어서는 아니 될 일이다.
내가 말하고자하는 것은 두 개 이상의 함수에서 몇 줄 동일한 루틴이 발견된다고 해서 무조건 빼어 하나의 함수를 만들라는 것이 아니다. 물론 그렇게 하는 것은 중요한 습관 중의 하나이다.
습관적으로 길어지는 함수는 분명 처음부터 그렇게 만들고 싶어서 그런 것이 아니다. 생각이 있었다면 미리 함수들을 쪼개었을 것이 분명하다. 문제는 간단한 기능을 만들고 간단한 테스트를 한 다음 그 다음 코드를 그 함수에 덧붙여서 만들게 되는 습관때문이다.
왜냐하면, 하나의 함수안에서 기능을 추가해야할 때, 다른 함수로 만들면 넘겨야할 변수들이 많다. 자연스럽게 새로운 함수보다는 기존의 코드에 코드를 추가하게 된다. 과감하게 잘못된 설계를 바로 잡아야한다. 설계서가 없었다면, 머리속의 설계서라도 바로 잡아야한다.
다른 이유로는 다중 if 문, for 문의 유혹이다. 새 함수로 만들기가 어려운 것은 그러한 조건문처리하는 것은 간단한 명령들로만 구성되므로 더욱 그렇다. 중첩되는 블럭이 4 단계 이상되면 습관의 문제가 있다고 잠시 생각해볼 여유를 갖자.
내가 말하고자하는 것은 두 개 이상의 함수에서 몇 줄 동일한 루틴이 발견된다고 해서 무조건 빼어 하나의 함수를 만들라는 것이 아니다. 물론 그렇게 하는 것은 중요한 습관 중의 하나이다.
습관적으로 길어지는 함수는 분명 처음부터 그렇게 만들고 싶어서 그런 것이 아니다. 생각이 있었다면 미리 함수들을 쪼개었을 것이 분명하다. 문제는 간단한 기능을 만들고 간단한 테스트를 한 다음 그 다음 코드를 그 함수에 덧붙여서 만들게 되는 습관때문이다.
왜냐하면, 하나의 함수안에서 기능을 추가해야할 때, 다른 함수로 만들면 넘겨야할 변수들이 많다. 자연스럽게 새로운 함수보다는 기존의 코드에 코드를 추가하게 된다. 과감하게 잘못된 설계를 바로 잡아야한다. 설계서가 없었다면, 머리속의 설계서라도 바로 잡아야한다.
다른 이유로는 다중 if 문, for 문의 유혹이다. 새 함수로 만들기가 어려운 것은 그러한 조건문처리하는 것은 간단한 명령들로만 구성되므로 더욱 그렇다. 중첩되는 블럭이 4 단계 이상되면 습관의 문제가 있다고 잠시 생각해볼 여유를 갖자.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- nodejs
- SSO
- 수선화
- 커피
- Linux
- Subversion
- 식물
- Tattertools plugin
- BlogAPI
- 벤자민
- VIM
- 구근
- tattertools
- MySQL
- 디버깅
- TCP/IP
- 오픈소스
- ssh
- 킹벤자민
- url
- JavaScript
- 퀴즈
- 클레로덴드럼
- 덴드롱
- 대화
- writely
- perl
- OpenID
- SVN
- macosx
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함