[번역] 센디 메츠가 해주는 간단하지만 강력한 3가지 조언

센디 매츠는 일전에 Ruby On Ales conference in Bend에서 굉장히 흥미로운 프리젠테이션[1] 했습니다.
센디는 (아주 추천하는) 책 루비로 배우는 객체지향 디자인과 루비뿐만 아니라 다른 언어에서도 통용되는 튼튼한 객체에 대한 이해로도 잘 알려져 있습니다. Ruby On Ales에서 센디는 모든 수준의 엔지니어에게 통용되는 좋은 코드를 만들기 위한 몇가지 원칙을 말해 주었고, 저희는 그것이 훌륭하다고 생각합니다.

그녀의 발표에서 발견한 핵심이 되는 3가지 조언은 다음과 같습니다.

황금율: 작게 유지할 것

프로그래밍에 있어 관리의 복잡성을 어떻게 관리하느냐는 주요 과제중에 하나입니다. 잘하려했지만, 종종 개발 과정에서 혼돈을 만들곤 하죠. 혼돈을 최소화하기 위한 센디의 해결책은 작게 만드는 것입니다. 자세히 말하면 정확하고 간결한 메소드와 작은 클래스를 만드는 것입니다. 복잡성은 소프트웨어를 이해하기 어렵고 유지보수하기 힘들게 만듭니다. 작게 유지하세요.

과감히 반복한 다음 리팩터링

대부분의 프로그레머는 Don’t Repeat Yourself 원칙을 들어본적이 있습니다. DRY는 선의의 멘토와 리더의 지도에 의해 대부분의 프로그레머에게 고정관념으로 박혀있습니다.

그림있던 자리

일반적으로 유효한 원칙이지만, 센디는 어느 정도 말이 될 때까지 코드의 중복은 중요하다고 생각합니다. 코드 리팩터링은 코드가 이해 되었다는 사실을 기반으로 일어납니다. 리팩토링 과정에 신뢰와 믿음을 가지세요. 좋아지기 전에는 나빠질 수 있습니다.

“째려보기 테스트”™ 방법론 적용하기 [2]

센디는 “째려보기 테스트”라는 말을 만들었습니다. “째려보기 테스트”는 코드의 품질을 평가할 간단한 테크닉입니다. 여기 Ninefold에서는 ‘분위기 테스트’라고 부르고 우리의 개발과정에 비슷한 것을 사용합니다. 이 프로세스는 3가지 간단한 단계를 가지고 있습니다.

그림있던 자리

  1. 뒤로 기대고
  2. 째려보고
  3. 평가하고

째려보기 단계에서, 모양과 색상의 변화를 찾습니다. 모양의 변화는 충첩된 조건문이 있을지도 모른다는 이야기입니다. 색상의 변화는 같은 추상화 레벨의 코드를 만지고 있지 않을 수도 있다는 이야기입니다. 코드의 패턴은 코드의 복잡한 부분을 식별하는데 도움이 될 수 있습니다. 물론, 째려보기 테스트가 실제 자동화된 테스트를 대체할 수 있지는 않지만, 상황에 따라서는 다르죠.[3]

요약하면 센디의 오의는 깔끔한 객체지향 코드를 짜기 위한 출륭한 기초를 제공합니다. 작게 유지하고, 어느 정도 말이 될 때까지 중복을 허용하다 간결하게 리팩터링하고, 코드의 모양과 패턴을 주시하세요.

[1]: 동영상도 있어요.
[2]: Squint Test
[3]: 원문은 “your mileage may vary.”

342 views