안녕하세요 남갯입니다
오늘은 클린코드 5장 형식에 대해 포스팅 해보려고 합니다.
형식을 맞추는 목적
돌아가는 코드가 개발자의 1차적인 의무라 여길지도 모르지만 코드는 후에 코드의 품질에 영향을 미친다.
따라서 오랜시간 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 구현스타일과 가독성은 유지보수 용이성과 확장성에 영향을 미친다.
원할한 소통을 장려하는 코드형식
1. 적절한 행 길이를 유지하라.
-대략적으로 500줄을 넘기지 않고 200줄 정도인 파일로도 커다란 시스템을 구축 가능하다.
2. 신문기사처럼 작성하라.
- 신문기사처럼 독자가 위에서 아래로 최상단에는 요약하는 표제와 읽어가면서 디테일한 세부사항들이 나오게 한다.
이처럼 소스파일도 신문기사와 비슷하게 이름은 간단하면서 설명이 가능하도록 짓는다.
3. 개념은 빈행으로 분리하라.
- 함수와 함수사이에 한칸의 빈행을 두어 가독성을 높이자.
4. 세로밀집도
public class ReporterConfig {
/**
* 리포터 리스너의 클래스 이름
*/
private String m_className;
/**
* 리포터 리스너의 속성
*/
private List<Property> m_properties = new ArrayList<Property>();
public void addProperty(Property property) {
m_properties.add(property);
}
public class ReporterConfig {
private String m_className;
private List<Property> m_properties = new ArrayList<Property>();
이 두 코드를 보고 위보다는 아래가 더 읽기 쉽고 한눈에 들어온다.
5. 수직거리
- 함수의 동작방식을 이해하려고 뺑뺑이 돈 기억이 있는가? 서로 다른 파일에 속하는 것이 아니면
서로 밀접한 개념을 가진다면 (연관성이 높다면) 세로로 가까이 두는것이 좋다.
6. 변수선언
- 변수는 사용하는 위치에 최대한 가까이 선언한다.
7. 인스턴스 변수
- 인스턴스 변수는 클래스 맨 처음에 선언한다. 변수간에 세로로 거리를 두지 않는다. 잘 설계한 클래스는 많은 클래스메서드가 인스턴스 변수를 사용하기 때문이다.
8. 종속함수
- 한 하수가 다른함수를 호출한다면 두 함수는 세로로 가까이 배치한다. 되도록 호출하는 함수를 호출 되는 함수보다 일찍 부른다.
a()를 호출하고, a()에 대한 내용이 바로 밑에 나오도록 말이다.
9. 개념적유사성
- 어떤 코드는 서로 끌어당긴다. 개념적인 친화도가 높기 떄문이다. 친화도가 높을수록 가까이 배치한다.
종속성 혹은 비슷한 개념적인 명명법이 비슷하고 기본기능이 유사한 것 들이다.
10. 가로형식 맞추기
- 한 행에는 120자 정도로 글자길이를 제한하자
11. 가로 공백과 밀집도
- 할당문에는 왼쪽 요소와 오른쪽 요소간의 공백을 줘서 나눈다. 연산자 우선순위를 강조하기 위해서도 공백을 사용한다.
12. 가로정렬
13. 들여쓰기
- 짧은문이라도 들여쓰기를 해라.
14. 팀규칙
- 팀규칙이라는 제목은 말장난이고 프로그래머라면 각자 선호하는 규칙이 존재한다. 또한 팀이라면 자신이 선호해야 할 규칙이 바로 팀규칙이다.
'책 > 클린코드' 카테고리의 다른 글
[클린코드] 7장 오류처리 (0) | 2020.02.05 |
---|---|
[클린코드] 6장 객체와 자료구조 (0) | 2020.02.04 |
[클린코드] 4장 주석 (0) | 2020.01.29 |
[클린코드] 3장 함수 (0) | 2020.01.28 |
[클린코드] 2장 의미 있는 이름 (1) | 2020.01.15 |