본문 바로가기

IT/클린코드

[클린코드] 5장 형식

안녕하세요 남갯입니다


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

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



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

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