|| Clean Code || 객체와 자료 구조

윤코코·2022년 3월 1일
0

책 [Clean Code]를 읽고 정리한 내용입니다.

# 오늘 읽은 범위

6장. 객체와 자료 구조

# 기억하고 싶은 내용

- 자료 추상화

  • 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. ... 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다. (p.119)

- 자료/객체 비대칭

  • 분별 있는 프로그래머는 모든 것이 객체라는 생각이 미신임을 잘 안다. 때로는 단순한 자료 구조와 절차적인 코드가 가장 적합한 상황도 있다. (p.122)

- 디미터 법칙

  • 디미터 법칙은 잘 알려진 휴리스틱(heuristic)으로, 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙이다. ... 즉, 객체는 조회 함수로 내부 구조를 공개하면 안 된다는 의미다. (p.123)
    • 기차충돌
      • 자료구조는 무조건 함수 없이 공개 변수만 포함하고 객체는 비공개 변수와 공개 함수를 포함한다면, 문제는 훨씬 간단하리라. (p.124)
    • 구조체 감추기

- 자료 전달 객체

  • 자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 이런 자료 구조체를 때로는 자료 전달 객체 (Data Transfer Object, DTO)라 한다. (p.126)
    • 활성 레코드

# 떠오르는 생각

  • 이번 장은 조금 어려웠다. 번역의 한계도 있었던 것 같고, 내가 익숙치 않은 Java문법이어서 더 그랬던 것 같다.

# 궁금 or 잘 이해되지 않는 내용

  • [자료 추상화]에서 "추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다."라고 했는데 그럼 함수에 어떤 인자가 들어가야 하는지는 함수의 이름에서 모두 유추할 수 있어야 한다는 걸까? 그래도 함수명 만으로 추측하기에는 한계가 있지는 않을까?
  • heuristic: using experience to learn and improve
  • 활성 레코드???
profile
Web Front-End Developer

0개의 댓글