객체지향 생활체조 (Object Calisthenics)

kimhodol·2021년 2월 1일
6
post-thumbnail

TypeScript가 JavaScript에 비해 가지게 된 이점 중 하나는 타입과 강화된 class 문법으로 더욱 객체지향스러운 코드를 작성할 수 있게 되었다는 것이다.

소트웍스 앤솔로지에 나오는 객체지향 훈련법인 객체지향 생활체조를 TypeScript로 정리해보려 한다.

**Object Calisthenics(객체지향 생활체조)**는 Jeff Bay가 그의 저서 The ThoughtWorks Anthology에서 발명한 9가지 규칙의 집합으로 공식화 된 프로그래밍 훈련이다. Object라는 단어는 Object Oriented Programming(객체지향 프로그래밍)의 Object를 의미하며, Calisthenics라는 단어는 체조의 맥락에서 운동을 의미한다.

규칙을 지키면 자연스럽게 코드 작성 방식이 변경된다. 항상 모든 규칙을 따라야한다는 의미는 아니며, 이 규칙과 균형을 이루고, 그 규칙에 익숙하다고 느끼는 경우에 한해 일부를 사용해야 한다.

규칙들은 코드의 유지보수 가능한, 가독성 좋은, 테스트 가능한, 이해하기 쉬운 코드를 만드는 것에 중점을 둔다.

  1. 한 메서드에 오직 한 단계의 들여쓰기
  2. else 키워드를 사용하지 마라
  3. 모든 원시값과 문자열을 포장해라
  4. 일급 콜렉션을 사용하라
  5. 한 줄에 점은 오직 하나만 사용하라
  6. 축약하지 말라
  7. 클래스는 50줄 이하로 유지하라
  8. 인스턴스 변수는 2개 이하로 유지하라
  9. Getter, Setter를 사용하지 마라
profile
🐕 세상에 나쁜 TypeScript는 없다

0개의 댓글