5장: 형식 맞추기
형식의 종류
- 행 길이
- 파일별 라인 수
- 모듈 구조
- 고차원 개념/알고리즘부터 설명하고 아래로 내려갈수록 저차원 함수/세부 내역
- 공백 행
- 개념을 공백 행으로 분리
- 세로 밀집도
- 서로 밀접한 파일은 한 파일에 속하고 세로 거리가 가까워야 함(protected 지양)
- 변수는 선언과 사용을 가까이 둠
- 개념적 유사성: 비슷한 동작을 수행하는 함수는 가까이 둠
- 종속 함수: 호출하는 함수 → 호출되는 함수 순서
- 가로 길이
- 한 줄은 최대 120자 정도
- 가로 밀집도
- 공백을 사용해 밀집 정도 표현: 연산자, 함수 할당 등
- 들여쓰기
- intelliJ folding 제거하기: Setting > Editor > General > Code Folding > Java에서 원하지 않는 경우 체크 해제
- 더 이상 intelliJ가 자동으로 코드를 fold(한 줄 메서드일 때 들여쓰기가 제거된 것처럼 보이는 경우 등)하지 않음
- intelliJ folding 제거하기: Setting > Editor > General > Code Folding > Java에서 원하지 않는 경우 체크 해제
6장: 객체와 자료 구조
객체와 자료
개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다.
- 객체: 추상화 뒤로 자료를 숨기고 자료를 다루는 함수만 공개
- 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉬움
- 새로운 함수를 추가하기 어려움
- 자료: 자료를 그대로 공개하고 별다른 함수를 제공하지 않음
- 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉬움
- 새로운 자료 구조를 추가하기 어려움
- 잡종 구조: 객체, 자료 구조가 섞인 구조
- 새로운 함수, 새로운 자료 구조를 추가하기 어려움
- 함수나 타입을 보호할지 공개할지 확신하지 못해 어중간하게 설계된 구조
→ 필요한 유연성에 따라 객체/자료 중 선택(모든 것이 객체라는 편견 버리기)
디미터 법칙
- 모듈은 자신과 밀접하게 연관된 모듈에 대해서만 지식을 가진다.
- 모듈은 자신과 밀접하게 연관된 모듈과만 대화해야 한다.
'공부 > 스터디' 카테고리의 다른 글
| [클린 코드] 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 |