주석에서 "TILT"는 무엇을 의미합니까?


9

Robert C. Martin의 Clean Code 를 읽고 있는데이 코드TILT 는 일부 코드 샘플에 설명 할 수 없습니다. 예를 들어 (Java로되어 있음) :

    ...
    public String errorMessage() {
      switch (status) {
        case ErrorCode.OK:
          // TILT - Should not get here.
          return "";
        case ErrorCode.UNEXPECTED_ARGUMENT:
          return "Unexpected argument";
        case ErrorCode.MISSING_ARGUMENT:
          return "Missing argument";
        ...
    }
    ...

맥락에서, I는 같은데요 TILT(위의 코드에서, 예를 들어 도달 할 수없는 단지 컴파일러를 만족시키기에 포함되어있는 상태를 나타내고 TILT에 표시되는 ErrorCode.OK상태 인 경우 에러 메시지가 없어야하기 때문에 경우 OK)뿐만 잘 모르겠습니다.

아무도 TILT/ 의미하는 것이 무엇인지 아는 사람이 있습니까?



9
이것은 아마도 포커 기울기가 아닌 핀볼 기울기를 의미합니다.
Telastyn

답변:


13

물리적 핀볼 머신에는 센서가있어 외부에서 무언가가 머신을 방해하거나 기울임으로써 볼 경로에 너무 많은 영향을 주려고 할 때이를 감지합니다. 핀볼은 특히 볼이 무언가에 걸려있을 때 허용되는 일정 정도의 동작이 허용되는 오랜 전통을 지니고 있기 때문에 여기에서 너무 많이 말합니다 . 공이 테이블의 바닥에서 떨어질 때까지 비활성화됩니다. 일반적으로 게임의 "틸트"표시등과 때로는 경고음이 울립니다. 예외를 발생시키는 것과 같은 핀볼로 생각하십시오.

마틴의 은유는 ErrorCode.OK아마도 유효 status하고 기능이 강제로 수행해서는 안되는 일을 강요하려고 시도하는 것이 아니기 때문에 긴장 됩니다. 즉, 해당 입력은 누락 된 인수에 대한 오류 메시지를 리턴하는 함수를 가져 오려고하지 않습니다.


이것의 나머지 부분은 귀하의 질문에 대답하지 않지만, 비판적인 눈으로 나머지 책을 읽을 이유가 될 수 있습니다. 이 예제를 둘러싼 텍스트가 손을 흔드는 지 확인하기 위해 책에 액세스 할 수는 없지만 그렇지 않은 경우 메서드는 제목에 맞지 않는 작업을 수행합니다.

첫 번째는 아마도 유효하지 않은 입력 또는 상태를 예외적 인 조건으로 취급하지 않고 불평한다는 것입니다. 메소드의 문서에 객체 status가 오류 상태 일 때만 호출해야한다고 명시되어 있으면 호출 코드에서 수정해야하는 논리 문제 일 것입니다.

두 번째는 다른 문자열만큼 유효하지만 마술 상수로 효과적으로 사용되는 문자열을 반환한다는 것입니다. 메소드 호출이 실수인지 알고 자하는 호출자는 리턴 값의 내용을 확인하거나 해독하여 판독하기 위해 인간에게 전달해야합니다 (예 : Operation result:추가 정보 없음).

선택적인 세 번째 옵션은 컴파일러가 열거 된 값의 전체 적용 범위를 예상 할 경우 default커버되지 않은 사례를 포착하는 데 사용하는 것이 개별적으로 또는 그룹으로 열거하는 것보다 훨씬 읽기 쉽다는 것입니다. (필립 측면은 오류가 아닌 두 번째 상태를 추가하면 프로그래머가 명시 적으로 처리 방법을 선언하도록 컴파일러가 불만을 제기하는 것이 낫다는 것입니다.)


2
필자는 Clean Code 사본을 가지고 있지 않지만 네 번째 가능성을 놓쳤다.이 방법은 예외 객체와 같은 것에 대해 읽을 수있는 오류 메시지를 생성하는 도우미 함수 일뿐이므로 완벽하게 합리적입니다. "손을 흔들며"필요하지 않습니다.
Doc Brown

@DocBrown 이것은 다음과 같은 이유인데 예외 개체가 왜 예외가 아닌 상태로 구성 될 수 있는지 궁금 할 것입니다.
Blrfl

2
참고 : 클래식 틸트 센서는 금속 링의 경계 내에서 자유롭게 스윙 할 수있는 금속 진자입니다. 기계를 부딪히면 진자의 스윙이 증가하고 링과 전기적으로 접촉하면 공을 잃게됩니다. 아니 스윙이 아래로 죽을 수있는 것이다 시간 동안 기계를 해주. 진자는 플레이어에게 보이지 않았다 : 당신은 단지 시행 착오로 기계가 얼마나 많은 충격을 견딜 수 있는지를 배워야했다.
Solomon Slow
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.