일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 정렬
- Study Halle
- yield
- 항해99
- 상속
- 함수형 인터페이스
- annotation processor
- 제네릭 타입
- raw 타입
- 브릿지 메소드
- 스파르타코딩클럽
- throwable
- Switch Expressions
- 로컬 클래스
- github api
- docker
- 람다식
- 자바스터디
- junit 5
- 익명 클래스
- System.err
- 바운디드 타입
- 합병 정렬
- 접근지시자
- 자바할래
- auto.create.topics.enable
- System.in
- 제네릭 와일드 카드
- 프리미티브 타입
- System.out
Archives
- Today
- Total
코딩하는 털보
클린 코드, 5. 형식 맞추기 본문
클린 코드, 5. 형식 맞추기
프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다.
- 형식을 맞추는 목적
의사소통은 전문 개발자의 일차적인 의무이며 코드 형식은 의사소통의 일환이다. - 적절한 행 길이를 유지하라.
일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다.- 신문 기사처럼 작성하라.
이름은 간단하면서도 설명이 가능하게, 첫 부분은 고차원 개념과 알고리즘을 설명 내려갈수록 저차원 함수와 세부 내역. - 개념은 빈 행으로 분리하라.
빈 행은 새로운 개념을 시작한다는 시각적 단서다. 완결된 생각하나를 행 묶음으로 표현하고 생각 사이에 빈 행을 넣어 분리한다. - 세로 밀집도
서로 밀접한 코드 행은 세로로 가까이 놓여야 한다. - 수직 거리
서로 밀접한 개념은 세로로 가까이 둬야 한다. 연관성이 깊은 두 개념이 멀리 떨어져 있으면 코드를 읽는 사람이 소스 파일과 클래스를 여기저기 뒤지게 된다.
- 신문 기사처럼 작성하라.
- 변수 선언
변수는 사용되는 위치에 최대한 가까이 선언한다. 지역 변수는 각 함수 맨 처음에 선언한다. - 인스턴스 변수
인스턴스 변수는 클래스 맨 처음에 선언한다. - 종속 함수
한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다. 가능하다면 호출하는 함수를 먼저(위에) 배치한다. - 개념적 유사성
비슷한 동작을 수행하는 일군의 함수들을 가까이 배치한다. - 가로 형식 맞추기
짧은 행이 바람직하다. 왠만하면 120자 내로.- 가로 공백과 밀집도
가로 공백으로 두 가지 요소를 나누고 공백을 넣지 않으면 밀집도를 높여준다.
ex)int lineSize = line.length();
ex)b*b - 4*a*c
- 가로 정렬
가로 정렬은 엉뚱한 부분을 강조해서 진짜 의도가 가려질 수 있다. - 들여쓰기
계층에서 코드가 자리잡은 수준에 비례하여 들여쓰기 한다.
- 가로 공백과 밀집도
- 팀 규칙
팀에 속한다면 팀 규칙에 합의하고 모든 팀원들이 그 규칙을 따라야 소프트웨어가 일관적인 스타일을 보인다.
온갖 스타일을 뒤섞어 소스 코드를 필요 이상으로 복잡하게 만드는 실수는 반드시 피해야한다.
Comments