본문 바로가기
공부/스터디

[클린 코드] 2주차: 5, 6장

by nahowo 2025. 5. 16.

5장: 형식 맞추기

형식의 종류

  • 행 길이
    • 파일별 라인 수
  • 모듈 구조
    • 고차원 개념/알고리즘부터 설명하고 아래로 내려갈수록 저차원 함수/세부 내역
  • 공백 행
    • 개념을 공백 행으로 분리
  • 세로 밀집도
    • 서로 밀접한 파일은 한 파일에 속하고 세로 거리가 가까워야 함(protected 지양)
    • 변수는 선언과 사용을 가까이 둠
    • 개념적 유사성: 비슷한 동작을 수행하는 함수는 가까이 둠
    • 종속 함수: 호출하는 함수 → 호출되는 함수 순서
  • 가로 길이
    • 한 줄은 최대 120자 정도
  • 가로 밀집도
    • 공백을 사용해 밀집 정도 표현: 연산자, 함수 할당 등
  • 들여쓰기
    • intelliJ folding 제거하기: Setting > Editor > General > Code Folding > Java에서 원하지 않는 경우 체크 해제
      • 더 이상 intelliJ가 자동으로 코드를 fold(한 줄 메서드일 때 들여쓰기가 제거된 것처럼 보이는 경우 등)하지 않음

 

6장: 객체와 자료 구조

객체와 자료

개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다.

  • 객체: 추상화 뒤로 자료를 숨기고 자료를 다루는 함수만 공개
    • 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉬움
    • 새로운 함수를 추가하기 어려움
  • 자료: 자료를 그대로 공개하고 별다른 함수를 제공하지 않음
    • 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉬움
    • 새로운 자료 구조를 추가하기 어려움
  • 잡종 구조: 객체, 자료 구조가 섞인 구조
    • 새로운 함수, 새로운 자료 구조를 추가하기 어려움
    • 함수나 타입을 보호할지 공개할지 확신하지 못해 어중간하게 설계된 구조

→ 필요한 유연성에 따라 객체/자료 중 선택(모든 것이 객체라는 편견 버리기)

디미터 법칙

  1. 모듈은 자신과 밀접하게 연관된 모듈에 대해서만 지식을 가진다.
  2. 모듈은 자신과 밀접하게 연관된 모듈과만 대화해야 한다.

'공부 > 스터디' 카테고리의 다른 글

[클린 코드] 5주차: 11, 13장  (2) 2025.06.06
[클린 코드] 4주차: 9, 10장  (0) 2025.05.29
[클린 코드] 3주차: 7, 8장  (0) 2025.05.29
[클린 코드] 1주차: 3장  (0) 2025.05.10