티스토리 뷰
형식을 맞추는 목적
- 코드 형식은 의사소통의 일환이다.
- 처음 잡아놓은 구현 스타일은 코드에 계속 영향을 줌.
적절한 행 길이를 유지하라
- 일반적으로 큰 파일보다 작은 파일이 이해하기 쉬움.
신문기사처럼 작성하라
- 기사의 첫 문단은 전체 기사 내용을 요약한다. 코드에선 그 역할을 이름이 한다. 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단할 정도로 신경 써서 짓는다.
- 아래로 내려갈수록 세세하게 묘사하기. 마지막에는 가장 저차원 함수와 세부 내역이 나와야함.
개념은 빈 행으로 분리하라
- 개념 사이는 빈 행을 넣어 분리해야함. ex. 패키지 선언부, import문, 각 함수 사이
- 하나의 개념 덩어리가 한 덩어리로 보이도록.
세로 밀집도
- 줄바꿈이 개념을 분리한다면 세로 밀집도는 연관성을 의미함.
- 서로 밀접한 코드 행은 세로로 가까이 놓여야 한다.
수직 거리
- 서로 밀접한 개념은 세로로 가까이 둬야 한다. 또, 타당한 근거가 없다면 서로 밀접한 개념이 다른 파일에 존재해서는 안된다.
- 여기서 연관성이란 한 개념을 이해하는 데 다른 개념이 중요한 정도를 의미.
- 지역 변수 : 지역 변수는 사용하는 위치에 최대한 가까이 선언한다.
- 인스턴스 변수 : 어디에 두는지는 중요하지 않음. 단지 잘 알려진 위치에 인스턴스 변수를 모아두는게 중요. 변수 선언을 어디서 찾을지 독자 모두가 알고 있어야함.
- 종속 함수 : 한 함수가 다른 함수를 호출하면 두 함수는 세로로 가까이 배치. 가능하다면 읽기 편하도록 호출하는 함수를 먼저 배치한다.
- 개념적 유사성 : 개념적 친화도가 높은 코드일수록 가까이 배치한다. 친화도가 높아지는 요인으로는 호출관계에 있는 두 함수, 변수와 그 변수를 사용하는 함수, 비슷한 동작을 수행하는 함수 등 이 있다.
세로 순서
- 호출되는 함수를 호출하는 함수보다 나중에 배치.
- 신문기사처럼 가장 중요한 개념을 가장 먼저 표현.
- 세부사항은 가장 마지막에 표현하기.
가로 형식 맞추기
- 행 길이는 120자 이하가 좋다.
가로 공백과 밀집도
- 할당 연산자, 함수의 인수들 사이 등과 같이 두 주요 요소가 확실히 나뉜다는 사실을 강조할때 공백을 줌.
- 함수와 인수 사이와 같이 밀접한 개념 사이는 공백을 주지 않는다.
- 연산 수식에서 곱셈의 경우처럼 우선순위가 높거나 덧셈, 뺄셈처럼 우선순위가 낮은 항들 사이에 차이를 주기 위해 덧셈,뺄셈에만 공백을 주는것도 유용함.
가로 정렬
- ex. 변수선언부에 변수 이름들의 시작열 맞추기
- 가로 정렬은 그렇게 유용하지 못함.
- 애초에 정렬이 필요할 정도로 길지 않게 만드는게 더 중요.
들여쓰기
- 계층에서 각 수준은 이름을 선언하는 범위이자 선언문과 실행문을 해석하는 범위임.
- 즉, 들여쓰기는 코드의 범위를 갖는 계층으로 구성되는 특성을 표현하는 도구임.
- 클래스 > 메서드 선언 > 메서드 코드 > .....
- 간단한 if문/while문에도 일관적으로 적용되어야함.
가짜 범위
- 빈 while문/for문. 피하면 좋음. 빈 블록을 올바로 들여쓰고 괄호로 감싸기.
팀 규칙
- 팀 규칙을 정하고 그 규칙에 따라 코드를 작성하라.
- 좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이뤄진다.
- 일관적이고 매끄러운 스타일은 독자가 읽기 편하게 함.
- 여러 스타일로 작성된 코드는 읽기 어려움.
'프로그래밍 > 공부' 카테고리의 다른 글
클린 코드) 4장 핵심 정리 (0) | 2022.01.22 |
---|---|
클린 코드) 3장 핵심 정리 (0) | 2022.01.17 |
클린 코드) 2장 핵심 정리 (0) | 2022.01.14 |
클린 코드) 1장 핵심 정리 (0) | 2022.01.14 |
- Total
- Today
- Yesterday
- 전처리기
- 의존관계역전법칙
- 주입
- clean code 정리
- 클린 코드 줄거리
- CLANG
- dfs
- 생명 주기
- 의존성
- 링커
- 이분탐색
- ios simulator
- swiftc
- BFS
- XcodeBuildSystem
- 학교 과제
- clean code
- XCFramework
- 알고리즘
- 순환참조
- ios
- 클린 코드 정리
- 클린 코드
- 면접질문
- 프로그래머스
- 메모리 순환참조
- 단어변환
- SwiftUI
- 여행경로
- Swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |