http://fancug.com/bbs/board.php?bo_table=freeboard2&wr_id=275224 

 

다음은 코더가 보면 좋은 프로그래밍 꿀팁

 

 

태아 작명법의 새로운 용도

태아 작명법 서적을 구입하자. 그러면 변수명을 뭐로 지어야 할지에 대한 고민을 덜 수 있을 것이다. Fred는 멋진 이름이며 

입력하기도 쉽다. 입력이 쉬운 변수명을 원한다면 asdf를 사용해 보기 바란다.

 

단일 문자 변수명

변수명을 a, b, c 등으로 정한다면 간단한 텍스트 편집기로 해당 인스턴스를 검색하는데 애를 먹게 된다. 뿐만 아니라 그 변

수가 무엇에 쓰이는 것인지 추측할 수 없게 방지하는 역할도 한다. 포트란(FØRTRAN)에서는 오랫동안 I, j, k를 인덱스 변

수로 사용해왔다. 혹시라도 이러한 훌륭한 전통을 조금이라도 깨뜨리려는(예를 들어, ii, jj, kk 등으로 이름을 변경하려는) 

사람이 있는가? 스페인 종교재판에서 이교도에게 어떠한 형벌을 가했는지를 그에게 경고하자.

 

창의적 오타

어쩔 수 없이 뭔가를 설명하는 변수명이나 함수명을 사용해야 하는 상황이라면 오타라는 무기를 선택하자. 몇몇 함수명과 

변수명에 오타를 내고 다른 곳에서는 오타를 사용하지 않는다면(예를 들어, SetPintleOpening과 SetPintalClosing처럼) 

grep이나 IDE 검색 기술을 효과적으로 무력화할 수 있다. 이 방법은 생각보다 놀라운 효과를 발휘한다. 각기 다른 theatres/

theaters(둘 다 극장을 의미)에 tory나 tori같이 국제적인 취향도 추가해본다.

 

밑줄(underscore)은 진정한 친구다

_와 __를 식별자로 사용하자.

 

확장 아스키(Extended ASCII)

ß, Ð, n 등과 같은 확장 아스키 문자도 변수명에 사용할 수 있다는 사실을 잊지말자. 간단한 편집기에서는 복사/붙여넣기 

말고는 확장 아스키 문자를 입력할 수 있는 방법이 없다.

 

정말 멋진 이름

의미상으로 전혀 관계없는 이름을 변수명으로 사용해보라.

marypoppins = (superman + starship) / god; 

이 글을 읽는 사람은 자신도 모르게 단어의 뜻에 더 집중하게 되고, 실제 로직은 이해하기가 어려워진다.

 

쉽게 찾지 못하게 숨겨라

16진수 값 $0204FB를 할당할 상수 변수명으로 blue 대신 LancelotsFavouriteColour와 같은 이름을 사용하라. 화면에는 

완전한 파랑색이 나타나겠지만, 유지보수 프로그래머는 0204FB값을 판독(아마 그래픽 도구를 이용해서)해야 의미를 파악

할 수 있을 것이다. 몬티 파이썬의 성배(Monty Python and the Holy Grail)라는 1975년 영국 영화를 좋아하는 광팬이라

면 랜슬롯(Lancelot)이 좋아하는 색이 파랑색이라는 사실쯤은 금방 알아차릴 수도 있을 것이다. 몬티 파이썬의 성배 영화 

전체 내용을 기억하지 못하는 유지보수 프로그래머가 있다면 프로그래머로써 자질이 없는 분이라고 생각할 수 밖에 없다.

 

 

주석으로 위장한 코드와 코드로 위장한 주석

실제로는 주석처리 되었지만 얼핏 보면 주석처리 되지 않은 것처럼 보이게 할 수 있다.

for(j=0; j<array_len; j+ =8) 

    { 

    total += array[j+0 ]; 

    total += array[j+1 ]; 

    total += array[j+2 ]; /* 속도 향상을 위해 

    total += array[j+3]; * 루프의 코드를 길게

    total += array[j+4]; * 펼쳐 놓았다. 

    total += array[j+5]; */ 

    total += array[j+6 ]; 

    total += array[j+7 ]; 

    } 

 

네임스페이스

C는 Struct/union와 typedef struct/union의 네임스페이스를 구별한다(그러나 C++에서는 구별하지 않는다). 구조체든 유

니언 네임스페이스든 같은 이름을 사용하자. 가능하다면 둘이 서로 호환되게 하자.

typedef struct { 

char* pTr; 

size_t lEn; 

} snafu; 

struct snafu { 

unsigned cNt 

char* pTr; 

size_t lEn; 

} A; 

 

매크로 정의를 숨겨라

자질구레한 주석을 이용해 매크로 정의를 숨길 수 있다. 보통 프로그래머라면 지루한 주석을 끝까지 읽지 않으므로 절대 매

크로를 찾을 수 없다. 매크로를 만들 때는 다음과 같이 특이한 동작을 써서 평범한 할당문처럼 보이게 만들어야 한다.

#define a=b a=0-b

 

당신의 청춘과 건강을 바친 직장에서 유종의 미를 거두어보세요!

여기 나온거 몇 개 해주면 됩니다. 전체치환을 이용하세요.