난 배열의 내용을 열거할 때 다음의 예제처럼 해.

* 배열과 리스트 큐 같은 복수 element들의 컨테이너 이름 끝에 s 를 붙임.

* card_deck 처럼 이름에서 컨테이너를 함의할 때는 예외

* 물론 deck 의 배열은 decks


typedef struct CARD // 이것과

{

    int number;

} CARD; // 이거 이름 다르게 매기는거 바보같음.

// 어차피 꼭 구분해서 쓸 일도 없는데. 네임 테이블 낭비.

// class 선언 방식을 봐도 내 말이 맞아. 구분해서 쓰는거 의미없음.


#define JOCKERS_IN_CARDS  2

#define CARDS_PER_SHAPE  13

#define SHAPES_OF_CARDS   4

#define TOTAL_CARDS       (CARDS_PER_SHAPE * SHAPES_OF_CARDS + JOCKERS_IN_CARDS)


CARD cards[TOTAL_CARDS] =

{

    { 0},

    { 1},

    { 2},

    { 3},

    ...

    {53}, // 제일 끝에도 콤마를 붙임 (enum 에도 마찬가지)

};


그러면 복붙해서 분량 늘릴때 손이 덜 가거든.

근데 클래스의 멤버 초기화 부분에선 콤마를 마지막에 찍으면 컴파일 오류 냄. 미친... 짜증남.


중괄호 열기를 내려 쓰는 이유는 class 선언에 적어둔 프로토타잎을 정의 부분에 복붙할때 편하게 하기 위한것.

(혹은 반대로 복붙 할 때 - 중괄호 시작 지우고 세미콜론 붙이는거 귀찮음. 툴에서 해준다지만 툴을 한 두가지 써야지 말이지)

안타깝게도 이 스타일에선 do { ... } while 이 이쁘게 안됨. 그래서 do while 사용을 자제하지. (퍽)


쓸데없는 주석 많은 코드 극혐.

쓸데없는 디버깅 로그 많은 코드 극혐.


// TO DO : 이런건 좋다고 봐. 잠깐 든 좋은 생각들을 까먹어버리지 않고 계획의 일관성을 유지하는데 도움이 되니까.

// 그렇지 않으면 설계를 더 디테일하게 해야 하는데, 그건 설계가 아니라 구현이지. 시간이 너무 걸려.

// to do : 우선 순위 낮은 잔여 작업.


프로그래머는 코드로 말한다.

주석으로 말하지 마라.


정말 급할때, 정말 중요할 때(나중에 까먹어 버릴 것 같을 때), 네이밍하기가 미치도록 귀찮을 때 예외.

즉 주석의 본질은 지워버리기 위해 존재하는 temporal code 다. (컴파일러가 선처리시 그 일을 잘 하고 있지. 배워라.)