Home 클린 코드 - 6장 객체와 자료구조
Post
Cancel

클린 코드 - 6장 객체와 자료구조

범위

  • 6장 객체와 자료구조

요약

  • 추!
  • 상!
  • 화!

개념 정리

  • 디미터법칙 : 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙.

책에서 기억하고 싶은 내용

  • 변수를 비공개(private)로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다.
  • 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다.
  • 자료/객체 비대칭
    • (자료 구조를 사용하는) 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 반면, 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다.
    • 절차적인 코드는 새로운 자료 구조를 추가하기 어렵다. 그러려면 모든 함수를 고쳐야 한다. 객체 지향 코드는 새로운 함수를 추가하기 어렵다. 그러려면 모든 클래스를 고쳐야 한다.
    • 분별 있는 프로그래머는 모든 것이 객체라는 생각이 미신임을 잘 안다. 때로는 단순한 자료 구조와 절차적인 코드가 가장 적합한 상황도 있다.
  • 객체는 동작을 공개하고 자료를 숨긴다. 그래서 기존 동작을 변경하지 않으면서 새 객체 타입을 추가하기는 쉬운 반면, 기존 객체에 새 동작을 추가하기는 어렵다.
  • 자료 구조는 별다른 동작 없이 자료를 노출한다. 그래서 기존 자료 구조에서 동작을 추가하는 쉬우나, 기존 함수에 새 자료 구조를 추가하기는 어렵다.

소감

  • “분별 있는 프로그래머는 모든 것이 객체라는 생각이 미신임을 잘 안다. 때로는 단순한 자료 구조와 절차적인 코드가 가장 적합한 상황도 있다.”
  • 반성하는 분별이 없었던 개발자 1인 ㅠㅠ
This post is licensed under CC BY 4.0 by the author.

클린 코드 - 5장 형식 맞추기

클린 코드 - 7장 오류 처리