\(@^0^@)/

[BOOK] 노개북 클린코드, 6장 객체와 자료 구조 본문

BOOKS/클린 코드

[BOOK] 노개북 클린코드, 6장 객체와 자료 구조

minjuuu 2022. 3. 21. 11:38
728x90

오늘 읽은 범위 : 6장, 객체와 자료 구조 (p. 118 ~128)


< 책에서 기억하고 싶은 내용 >

  • 객체 지향 코드에서 어려운 변경은 절차적인 코드에서 쉬우며, 절차적인 코드에서 어려운 변경은 객체 지향 코드에서 쉽다.
  • 새로운 자료 타입이 필요한 경우에는 클래스와 객체 지향 기법이 가장 적합하다.
  • 새로운 함수가 필요한 경우에는 절차적인 코드와 자료 구조가 좀 더 적합하다.
  • 디미터 법칙 : 휴리스틱으로, 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙.
  • 잡종 구조는 중요한 기능을 수행하는 함수도 있고 공개 변수나 공개 조회/설정 함수도 있다.
    • 잡종 구조는 새로운 함수는 물론이고 새로운 자료 구조도 추가하기 어렵다.
  • 자료 전달 객체
    • 자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다.
    • 자료 구조체를 때로는 자료 전달 객체(Data Transfer Object, DTO)라 한다.
  • 객체는 동작을 공개하고 자료를 숨긴다.
    • 그래서 기존 자료 구조에 새 동작을 추가하기는 쉬우나, 기존 함수에 새 자료 구조를 추가하기는 어렵다.
    • 새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다.
    • 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다.

< 오늘 읽은 소감? 떠오르는 생각을 가볍게 적어보기 >

클린 코드가 java를 예시로 들고 있기 때문에, 100% 이해가 되지 않는다..
이번에는 흐름만 파악하고 다음에 이 책을 모두 읽고, js버전으로 공부할 때 제대로 학습해봐야 할 것 같다.


< 소감 3줄 요약 >

  • 기존 자료 구조에 새 동작을 추가하기는 쉬우나, 기존 함수에 새 자료 구조를 추가하기는 어렵다.
  • 새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다.
  • 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다.

[ 출처 : 클린 코드 ]

728x90