[coding-style] 당신이 따라야 할 가장 이상한 코딩 표준 규칙은 무엇입니까? [닫은]

이 질문을 했을 때 나는 거의 항상 명확한 표준을 얻었습니다. 코딩 표준이 있어야합니다.

당신이 따라야 할 가장 이상한 코딩 표준 규칙은 무엇입니까?

그리고 이상하게도, 나는 가장 재밌거나, 최악이거나, 또는 보통의 홀수를 의미합니다.

각 답변에 어떤 언어, 팀 규모 및 어떤 나쁜 영향을 주 었는지 언급하십시오.



답변

나는 미워 여러 반환의 사용이 금지 될 때를.


답변

들여 쓰기 예를 들면 다음과 같습니다.

    for(int i = 0; i < 10; i++)
        {
myFunc();
        }

과:

    if(something)
        {
// do A
        }
    else
        {
// do B
    }


답변

어쩌면 당신이 얻을 수있는 가장 엉뚱한 것은 아니지만 ‘tbl’로 데이터베이스 테이블 이름을 시작해야 할 때 정말 싫어합니다.


답변

거의 모든 종류의 헝가리 표기법.

헝가리 표기법의 문제점은 종종 잘못 이해된다는 것입니다. 원래의 아이디어는 의미를 명확하게하기 위해 변수를 접두어로 사용하는 것이 었습니다. 예를 들면 다음과 같습니다.

int appCount = 0; // Number of apples.
int pearCount = 0; // Number of pears.

그러나 대부분의 사람들은이 유형을 사용하여 유형을 결정합니다.

int iAppleCount = 0; // Number of apples.
int iPearCount = 0;  // Number of pears.

두 숫자가 모두 정수이지만 모두가 알고 있지만 사과와 배를 비교할 수 없기 때문에 혼란 스럽습니다.


답변

현재 근무하는 곳에서는 삼항 연산자를 사용할 수 없습니다.

int value = (a < b) ? a : b;

… 모든 사람이 그것을 “얻지는”않기 때문입니다. “구조가 너무 복잡해지면 다시 작성해야했기 때문에 사용하지 마십시오”라고 말한 경우 (필수 삼항 연산자, 누구?), 이해합니다. 그러나 일부 개발자가 이해하지 못한다고 말할 때 … 음 … 물론입니다.


답변

변경시 코드를 제거하지 마십시오. 우리는 모든 변화에 대해 언급하라는 말을 들었습니다. 소스 컨트롤을 사용한다는 것을 명심하십시오. 이 정책은 개발자가 정책에 대해 격분하고 코드를 읽을 수 없게 만드는 방법 때문에 오래 가지 못했습니다.


답변

나는 한때 마이티 VB 왕 의 폭정하에 일했다 .

VB 왕은 MS Excel 및 VBA뿐만 아니라, 데이터베이스 (의 순수한 마스터이었다 개발자들이 컴파일러와 함께 일을하면서 그는 Excel에서 연주 및 데이터베이스에 그에게 도전하는 것은 당신의 경력에 해로운 영향을 미칠 수 … : 따라서 자신의 성 (姓) ).

물론 그의 엄청난 기술은 개발 문제와 프로젝트 관리 솔루션에 대한 독창적 인 비전을 제공했습니다. VB King 은 엄격한 의미에서 표준을 정확하게 코딩하지는 않지만 정기적으로 그가 시도한 “코딩 표준”및 “모범 사례”에 대한 새로운 아이디어를 얻었습니다 . 종종 성공) 우리에게 부과합니다. 예를 들면 다음과 같습니다.

  • 모든 C / C ++ 배열은 0 대신 인덱스 1에서 시작해야합니다. 실제로 배열의 첫 번째 인덱스로 0을 사용하는 것은 더 이상 사용되지 않으며 Visual Basic 6의 통찰력있는 배열 인덱스 관리로 대체되었습니다.

  • 모든 함수는 에러 코드를 반환합니다 : VB6에는 예외가 없습니다. 왜 우리는 그것들을 전혀 필요로합니까? ( 즉, C ++에서 )

  • “모든 함수는 오류 코드를 반환해야합니다”는 의미있는 유형을 반환하는 함수에는 실용적이지 않으므로 모든 함수는 첫 번째 [in / out] 매개 변수로 오류 코드를 가져야합니다.

  • 우리의 모든 코드는 오류 코드를 검사합니다 ( 이로 인해 제가 경력에서 본 VBScript if-indentation의 최악의 경우가 생겼습니다 … 물론 “else”절이 처리되지 않았기 때문에 실제로 너무 늦게까지 오류가 발견되지 않았습니다 ).

  • 오늘부터 C ++ / COM으로 작업하고 있으므로 모든 DOM 유틸리티 함수를 Visual Basic으로 코딩합니다.

  • ASP 115 오류는 악하다. 이러한 이유로 VBScript / ASP 코드에서 On Error Resume Next를 사용하여 이러한 오류를 방지합니다.

  • XSL-T는 객체 지향 언어입니다. 상속을 사용하여 문제를 해결하십시오 ( 어느 날 놀랍게도 턱이 열렸습니다 ).

  • 예외는 사용되지 않으므로 제거해야합니다. 이러한 이유로 예외 해제가 발생할 경우 소멸자 호출을 요청하는 확인란의 선택을 취소합니다 ( 전문가가 모든 메모리 누수의 원인을 찾는 데 며칠이 걸렸으며 기꺼이 무시했다는 사실을 알았을 때 거의 곤경에 처했습니다. 숨겨진) 옵션을 다시 확인하는 것에 대한 그의 기술 노트, ) 전에 몇 주 전에 보냈습니다 .

  • COM 모듈의 COM 인터페이스에서 모든 예외를 포착하고 조용히 처리하십시오 ( 이 방법으로 충돌하는 대신 모듈이 더 빠른 것처럼 보일 것입니다 … 반짝이는 것입니다! … 위에서 설명한 오류 처리를 사용함에 따라, 실제로 무슨 일이 일어나고 있는지 이해하는데 시간이 걸렸습니다 … 속도와 정확한 결과를 모두 얻을 수는 없습니까? ).

  • 오늘부터 코드베이스는 4 개의 분기로 분할됩니다. 동기화를 관리하고 모든 버그 수정 / 진화를 손으로 통합합니다.

우리의 항의에도 불구하고 C / C ++ 어레이 , VB DOM 유틸리티 기능OOP 언어로서의 XSL-T를 제외한 모든 것이 구현되었습니다. 물론 시간이 지남에 따라 일부는 발견되고, 흠집이 나고 , 부서지고, 버려졌습니다.

물론 VB King 신용도는 결코 그렇게 겪지 않았습니다. 고위 경영진 중 그는 “최고의 총”기술 전문가로 남아있었습니다.

링크를 따라 볼 수 있듯이 재미있는 부작용이 생겼 습니다. 소스 코드에서 가장 좋은 주석은 무엇입니까?