[클린코드] 깨끗한 코드란 무엇인가?
로버트 마틴의 클린코드를 읽으며,
프로젝트 하나를 깨끗한 코드로 바꾸려 한다.
우선, 깨끗한 코드란 무엇인지 알아보자.
깨끗한 코드란,
유지보수가 쉬운 코드를 의미한다.
유지보수가 어려우면
새로운 코드에 투자할 시간이 줄고
간단한 문제가 반복적으로 발생한다.
버그를 발견하거나 운영환경이 변하거나 신규변경사항이 생기거나 버그 방지 방안을 모색하는 등의 유지보수 상황에서 유지보수를 쉽게 할 수 있는 코드가 깨끗한 코드라 할 수 있다. 그러므로 깨끗한 코드란 곧 다른 사람이 고치기 쉬운 코드다.
깨끗한 코드를 짜려면?
논리가 간단해야 한다.
효율적이어도 논리가 복잡하면 다른 사람이 이해하기 힘들다.
의존성을 최소화해야 한다.
객체간 의존성이 최소화되어야 이해하기 쉽고 부품화되어 유지보수에 좋다.
원칙있는 명백한 전략으로 처리해야한다.
추측이 아닌 사실에 기반하여 성능의 최적화를 목표로 코드를 설계해야 한다.
큰 코드보다는 작은 코드에 가치를 둔다.
1가지 모듈에 1가지 기능만을 부여하는 것이 적절하다.
중복을 제거하고 표현력에 신경써라.
반복되는 표현을 제거하고 누구나 읽을 수 있는 코드를 작성해야 한다.
보이스카우트 규칙
"언제나 처음왔을 때보다 조금이라도 더(more) 깨끗이하고 떠날 것"
누가 캠프장을 썼건
조금씩 더 깨끗해진 상태로 캠프장을 떠난다면
캠프장은 조금씩 조금씩 더 나은 상태로 바뀐다.
이렇듯 코드도 시간이 지날수록
좋아지는 코드가 좋은 코드이다.
르블랑의 법칙처럼
나중은 결코 오지 않는다.
나중에 손 보겠다는 생각으로
뒤로 미루다가 한번에 처리하지말고
조금씩 코드를 개선시키는 노력이 필요하다.
장인 정신
깨끗한 코드를 판단하는 것과
깨끗한 코드를 작성하는 것은 다르다.
스스로 많은 코드를 작성해보아야 한다.
이론과 더불어 경험이 함께 결합된다면
깨끗한 코드를 작성하는 장인이 된다.
깨끗한 코드는
머리와 더불어 몸으로 체득되는 것이다.