목록소프트웨어 공학/Clean Code (14)
규도자 개발 블로그
전의 게시물에서도 밝혔다시피 이 게시물은 스티브 맥코넬이 쓴 CODE COMPLETE2에 나온 내용이며 다른 사람들에게도 변수 이름의 중요성과 그 이름을 정하는 데 도움을 주기 위해, 그리고 나 자신도 필요할 때마다 참고하기 위해 쓴다는 것을 알린다. 반복문 인덱스 이름 반복문 변수 이름을 위한 가이드라인이 생겨난 이유는 반복문이 컴퓨터 프로그래밍에서 일반적인 기능이기 때문이다. i, j, k와 같은 이름을 관습적으로 사용한다. 간단한 반복문 변수 이름에 대한 자바 예제 for (i = firstItem; i < lastItem; i++){ data[i] = 0; } 변수를 반복문 외부에서 사용해야 한다면 반드시 i나 j, k보다는 좀 더 의미 있는 이름을 지어야 한다. 가령 파일로부터 레코드를 읽어 들..
전의 게시물에서도 밝혔다시피 이 게시물은 스티브 맥코넬이 쓴 CODE COMPLETE2에 나온 내용이며 다른 사람들에게도 변수 이름의 중요성과 그 이름을 정하는 데 도움을 주기 위해, 그리고 나 자신도 필요할 때마다 참고하기 위해 쓴다는 것을 알린다. 일반적인 변수명의 반의어 변수의 이름을 정할 때 정확한 반의어를 사용하는 게 가독성있고 일관성있는 코드작성에 유리하다. 예를 들어 begin/end와 같은 쌍은 이해하고 기억하기가 쉽다. 일반적인 반의어가 아닌 쌍은 기억하기 어려운 경향이 있어 혼란을 줄 수 있다. 어디에서는 start/finish이고 어디에선 begin/end이면 일관성이 떨어져 능률적인 코드작성에 방해가 된다. 일반적으로 코드에서 쓰이는 반의어는 다음과 같다. begin/end firs..
전의 게시물에서도 밝혔다시피 이 게시물은 스티브 맥코넬이 쓴 CODE COMPLETE2에 나온 내용이며 다른 사람들에게도 변수 이름의 중요성과 그 이름을 정하는 데 도움을 주기 위해, 그리고 나 자신도 필요할 때마다 참고하기 위해 쓴다는 것을 알린다. 전역 네임스페이스에 있는 변수 전역 네임스페이스에 있는 변수에는 한정자(qualifier)를 사용하라. 변수가 전역 공간에 있다면(이름 상수, 클래스 이름 등) 전역 공간을 나누고 이름 충돌을 피하기 위한 규약이 필요한지 고려해 본다. C++와 C#에서는 전역 공간을 나누기 위해서 namespace키워드를 사용할 수 있다. 전역 공간을 분할하기 위해서 namespace 키워드를 사용하는 C++ 예제 namespace UserInterfaceSubsystem..
좋은 변수 이름 정하기 내가 코드를 작성할 때 중요하게 생각하는 것이 있다. 정확성은 프로그램이 가져야할 필수요소이고 애초에 정확성이 없다면 프로그램으로서의 가치가 없으므로 딱히 강조하지 않겠다. 그밖에 중요하게 생각하는 건 바로 간결성과 가독성이다. 그 중에서도 특히 중요한 건 가독성이라고 생각한다. 코드는 결국 사람이 읽기 때문이다. 코드는 결국 다시 읽힌다. 그사람은 당신의 팀원일 수도, 또 당신 자신일 수도 있다. 만약 옛날에 무아지경으로 마구마구 작성해놓은 코드가 다시 필요하다고 할 때 마구잡이로 조사놓은 변수이름들과 코드를 보면 어떤 느낌일까. 예전의 당신이 원망스러워질 것이다. 나는 이러한 경험을 몇 번 겪고 나서 나만의 일정한 규칙을 정해서 변수를 작성하기 시작했다. 그 이후로는 다른 클래..