Clean Code Day7

ME·2024년 2월 4일
0

개발자 북클럽

목록 보기
18/18

Day7 범위
06. 객체와 자료구조

  • TIL(Today I Learned) 3줄 요약

    1.객체는 동작을 공개하고 자료를 숨긴다. 자료 구조는 별다른 동작 없이 자료를 노출한다.

    2.모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다.

    3.새로운 자료타입/동작을 추가하는 경우에 따라 객체 또는 절차적인 코드를 선택하는 현명함 필요하다.

클린코드의 세계

  • 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 반면, 객체 지향 딤모드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다.
  • 자료/객체 비대칭

    - 객체는 추상화 뒤로 자료를 숨긴채 자료를 다루는 함수만 공개한다.
    - 자료구조는 자료를 그대로 공개하며 별 다른 함수는 제공하지 않는다.

    → 다양한 사례를 통해 체화 필요한 부분이다.

  • 디미터 법칙은 잘 알려진 휴리스틱으로, 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙이다.

  • 어떤 시스템을 구현할 때, 새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다. 다른 경우로 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다. 우수한 소프트웨어 개발자는 편견 없이 이 사실을 이해해 직면한 문제에 최적인 해결책을 선택한다.

이번 챕터는 시스템을 구현하며 내가 잘 적용할 수 있을까 라는 의문점이 가장 많이 들었던 파트였다. 책에 적힌 텍스트 자체는 이해가 가지만 이 이론을 잘 적용하는 것이란 쉽지 않은듯 했고, 언젠가 이 파트에 통달하는 내 모습을 꼭 보고싶다는 포부(?)를 한 가득 가지며 이 챕터를 끝냈다.

0개의 댓글