본문 바로가기

책/클린코드

[클린코드] 5장 형식

728x90
SMALL

안녕하세요 남갯입니다


오늘은 클린코드 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. 팀규칙

 - 팀규칙이라는 제목은 말장난이고 프로그래머라면 각자 선호하는 규칙이 존재한다. 또한 팀이라면 자신이 선호해야 할 규칙이 바로 팀규칙이다.



728x90
LIST

' > 클린코드' 카테고리의 다른 글

[클린코드] 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