int SomeClass::laughing_alltheway_to_Andromeda() { int flag, return_code; flag = someObject.check(some_string_a); if (flag == 3) { if (!aa && bb) { if (aa) doSomething(); // 기본적으로 return_code에 값을 넣음. } } else { flag = someObject.check(some_string_b); if (flag == 3) { if (!aa && bb) { if (aa) doSomething; // 기본적으로 return_code에 값을 넣음. } } else { flag = someObject.check(some_string_c); if (flag == 3) { if (!aa && bb) { if (aa) doSomething; } } else { flag = someObject.check(some_string_d); if (flag == 3) { if (!aa && bb) { if (aa) doSomething; } } else { flag = someObject.check(some_string_e); if (flag == 3) { if (!aa && bb) { if (aa) doSomething; } } else { // 이렇게 계속. 클라이맥스는 아직 아님 ... } } } } }
return return_code; // this is the killer... }
이 패턴으로 '}' 이 19개 연속 중첩되고 한 메소드가 거의 3000줄이 된 것도 본 적있다.
그래도 괜찮다. 지구는 돌고 인생은 간다.
Spiegel Im Spiegel
'소프트웨어 이야기' 카테고리의 다른 글
오픈소스와 명품과의 거리 (0) | 2013.01.23 |
---|---|
Big Data 단어 유감 (0) | 2013.01.22 |
멀티스레딩 (0) | 2012.09.07 |
윈도우즈 시스템 분석 도구 (0) | 2012.03.07 |
AWS Linux AMI에 APC 설치 (0) | 2012.01.14 |