For-Case Antipattern이란 무엇입니까?


17

오늘의 TDWTF 기사 는 저자의 고백으로 시작됩니다.

For-Case 안티 패턴은 안티 패턴으로 비난하는 기사가 많았을 때까지 비교적 최근까지 알지 못했습니다. 나는 아마 어느 시점에서 그것을 사용 했을 것이라고 확신 하지만, 나는 그것을 이름으로 알지 못했습니다 . 일반적으로 for 루프, 사례 설명, 해결중인 문제 또는 세 가지 모두의 조합에 대한 오해를 암시하는 교과서 반 패턴으로 생각됩니다.

그는 독자가 자연스럽게 For-Case 안티 패턴이 더 이상 설명이 필요없는 것을 알고있는 것처럼 진행합니다.

그러나 나는하지 않습니다! Remy가 말하는 "기사들"을 보지 못했고 Google에서 찾을 수있는 유일한 참고 문헌 (Remy의 기사 외에)은 Raymond Chen의 forif if 반 패턴 에 관한 블로그 게시물입니다. . 그러나 그는 "for-case anti-pattern"도 정의하지 않았다.

이 사람들이 말하는 "For-Case anti-pattern"은 무엇이며, 그것을 안티 패턴으로 만드는 것은 무엇입니까?



답변:


23

"패턴"은 이전 일일 WTF 기사 에서 소개되었습니다 . 기본 아이디어는 내부에 루프 색인 변수를 기반으로 선택 하는 for루프 가 있다는 것 입니다.casefor

인덱스 변수를 가정하는 것이 분석의 조금 당신이 제거 것처럼 실행이 정확히 동일하다는 것을 보여줍니다 (이 사용중인 언어에 따라, 항상 진실하지 않다) 루프, 내부 변경할 수 없습니다 forcase완전히 모든 케이스 블록은 단순히 순차적으로 실행되었습니다.


0

간단히 말해 두 가지 다른 흐름 제어 방법을 중첩하여 코드를 이해하기 어렵게 만듭니다.

for 루프가 표시되면 일반적으로 루프 조건이 루프 내의 논리를 제어한다고 가정합니다. 그러나 모든 자체 논리를 사용하여 전체 case 문을 중첩하면 창 밖으로 나옵니다.


1
두 개의 제어 흐름 구조를 중첩시키는 데 본질적으로 아무런 문제가 없습니다. 때로는 필요합니다. 그러나이 경우 쓸모가 없습니다.
Monica Monica 복원

"이는 코드를 이해하기 어렵게 만듭니다." 소년은 하루 / 월 / 년의 과소 평가입니다.
피터 로웰
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.