728x90
반응형

C++코딩의 정석 2

마법의 숫자는 쓰지 말라

프로그램은 마법이 아니다. 주문을 쓸 필요가 없다. 42나 3.14159와 같은 리터럴은 사용하지 말자. 이런 값들은 자체적으로 자신을 설명하지 못할뿐더러, 여러 곳에서 사용할 경우 관리도 어렵다. 대신에 width * aspectRatio와 같은 심볼 이름과 표현식을 사용하는 것이 좋다. 프로그램에 원시적인 숫자를 반복해서 사용하는 것은 프로그램의 이해도를 떨어뜨리고 관리를 힘들게 하므로, 상수보다는 열거형이나 const 값, 범위가 주어지고 이름이 정해진 값을 사용하는 것이 바람직하다. 42라는 값을 두 번 썼다고 두 값이 같은 의미를 가지라는 법은 없다. 프로그래머의 머리속에서만 이루어지는 계산은 나쁜 버릇이고, 만약 84라는 값이 있다면 두 개의 42를 더한 것인지, 아니면 어떤 하나의 42를 두..

하나의 엔티티에는 하나의 역할만을 부여하자

한 번에 하나에만 집중하자. 각 엔티티(변수, 클래스, 함수, 네임스페이스, 모듈, 라이브러리)에는 잘 정의된 하나의 역할만을 부여하라. 엔티티의 덩치가 커지면 역할 또한 커지겠지만, 그렇다고 지정된 진로를 벗어나서는 안된다. 좋은 비즈니스 아이디어는 한문장으로 설명될 수 있듯이 , 좋은 엔티티는 분명 하나의 목적만을 가진다. 많은 기능을 가진 엔티티는 사용하기에 힘들다. 복잡함은 버그와 밀접한 관련이 있으며, 특별한 이유 없이 덩치가 커진 엔티티는 재사용이 어렵다. 안정적이지 못할 뿐더러, 여러 목적 간의 경계가 불분명해지면 관리 또한 힘들다.

728x90
반응형