{

이번 항목에서 이 문구가 제일 마음에 와 닿는다. "나누고 정복하라. 작은 클래스가 만들기도 쉽고, 얻기도 쉬울 뿐만 아니라 테스트하고 사용하기도 쉬우며, 다양한 상황에서 활용하기에도 편리하다."

왜 이 부분이 와 닿았냐면, 나는 보통 주말에 청소를 한다. 여러가지 이유가 있겠지만, 아마도 빨래를 할 수 있는 날이기 때문이다. 그래서 바닥을 쓸거나 닦거나 책정리 나 쓰래기를 정리하는것을 몰아서 처리 한다.

이것은 청소 할 때마다 불편했다. 왜냐하면 좋지 못한 환경에서 지내야 하고, 청소 할 때 마다 많은 먼지가 발생하고, 이 먼지들이 여러곳에 달라 붙는다. 다시 이 먼지들을 털어내면서 더 많은 시간이 잡아 먹게 된다.

이제야 나는 청소를 할 수 있다면, 조금씩 청소를 해야 한다고 생각 했고, 각 파트별로 나누었다. 바닦 쓸기를 예로 들자면, 잠자기 전에 한번, 나가기 전에 한번씩 쓴다. 이렇게 나누고 청소해 보니 참 좋았었다.

빚데어 보자면, 클래스 하나에 기능을 몰아서 넣고 처리하다 보면, 복잡한 환경에서 계속 코딩해야 하고, 변경또한 다른곳에 영향이 쌓여 확산에 따른 작업 때문에 힘들어 진다는 것이다.

각각 분리하게 된다면 어떤 장점이 있을까?
1. 구분짖기가 쉽다.
2. 이해하기가 쉽고 재활용성이 좋다.
3. 분산 배치가 유리하다.
4. 캡슐화를 좀 더 강화시켜 준다.
5. 오류를 발견하고 수정하기 쉬워진다.

어떻게 분리 하는게 좋은가? 내가 경험으로 알게 된 것은 "오캄의 면도날"을 많이 생각해야 한다는 것 밖에 없다. ... 자 스스로 경험을 찾고 발전해 나가자.

}

'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 38 : 안전한 오버라이딩을 연습하라. ( Practice safe overriding. )  (0) 2009.03.02
항목 37 : 상속의 정확한 의미를 이해하자. 재사용을 위해 상속하는 것은 아니지만, 재사용은 필요하다. ( Public inheritance is substitutability. Inherit, not to reuse, but to be reused. )  (0) 2009.03.02
항목 36 : 추상 인터페이스를 활용하라. ( Prefer providing abstract interfaces. )  (0) 2009.03.02
항목 35 : 기반 클래스로 디자인되지 않은 클래스로부터의 상속을 피하라. ( Avoid inheriting from classes that were not designed to be base classes. )  (0) 2009.03.01
항목 34 : 상속성을 주의해서 사용하라. ( Prefer composition to inheritance. )  (0) 2009.02.28
항목 33 : 최소화된 클래스를 사용 하라. ( Prefer minimal classes to monolithic classes. )  (0) 2009.02.27
항목 32 : 만들고 있는 클래스가 무엇인지 확실히 하라. ( Be clear what kind of class you’re writing. )  (0) 2009.02.26
항목 31 : 함수의 인자의 처리 순서에 좌우되는 코드는 좋지 않다. ( Don’t write code that depends on the order of evaluation of function arguments. )  (0) 2009.02.26
항목 30 : &&, || 그리고 콤마의 오버로딩은 피하라. ( Avoid overloading &&, ||, or , (comma) )  (0) 2009.02.26
항목 29 : 간접적인 타입 변환을 피하기 위해 오버로딩을 활용하라. ( Consider overloading to avoid implicit type conversions. )  (0) 2009.02.25
항목 28 : ++와 --의 표준적인 형식과 접두 형식을 사용하라. ( Prefer the canonical form of ++ and --. Prefer calling the prefix forms. )  (0) 2009.02.25
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요