5장 형식 맞추기

Seunghee Ryu·2023년 12월 11일
0

클린 코드

목록 보기
5/18

  • 효과적인 정보 전달을 위해서 어떻게 코드 형식을 맞추고 정리하는지에 대해 알아본다.

1. 형식을 맞추는 목적

  • 코드의 가독성을 높여 일의 효율을 높이기 위해 형식을 맞춘다
  • 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 영향을 미친다
  1. 적절한 행 길이를 유지하라
  • 200줄 정도의 파일로도 대규모 시스템을 구축할 수 있다
  • 신문 기사처럼 작성하라
    - 첫부분에 추상화 수준이 높은 개념을 설명하고 하위로 갈수록 세부 사항을 설명한다
  • 개념은 빈 행으로 분리하는 것이 좋다
    - 빈 행을 넣어서 가독성을 향상시킨다

세로 밀집도


//worst case
public class A{
	/**
	 * A클래스의 나이
	 */
	private int age;

	/**
	 * A클래스의 이름
	 */
	private String name;
	public void setAge(int age){
			this.age = age;
	}
}

//good case
public class A{
		private int age;
		private String name;

		public void setAge(int age){
				this.age = age;
		}
}
  • 서로 밀접한 코드행은 세로로 가까이 붙여놓아야 한다

수직 거리

  • 소스코드를 작성할 때 밀접한 개념을 세로로 두는 노력이 필요하다
  • 같은 파일 안에 속할 정도로 밀접한 두 개념이 있는 경우 세로 거리로 연관성을 표현한다

변수 선언

  • 변수는 사용하는 위치에 최대한 가까이 선언한다
  • 지역 변수는 각 함수 맨 처음에 선언한다

인스턴스 변수

  • 인스턴스 변수는 클래스 맨 처음에 선언한다
  • C++의 경우에는 마지막에 선언하는 것이 일반적이다
  • 핵심은 어느 곳이든 잘 알려진 위치에 인스턴스 변수를 모으는 것이 중요하다는 것이다

종속 함수

  • 추상화 레벨이 높은 것을 상위에 놓고 하위에 저수준 추상화 함수를 둔다

개념적 유사성

  • 개념적인 친화도가 높을수록 코드를 서로 가까이 배치한다

3. 가로 형식 맞추기

-가로행은 120자 정도를 유지하도록 한다

가로 공백과 밀집도

  • 공백을 넣으면 나눠진 요소가 분명해지기에 별도로 구분해야하거나 강조해야하는 부분에 공백을 넣는다

가로 정렬

  • 선언문과 할당문을 별도로 정렬하지 말자

4. 들여쓰기

  • 클래스 > 메소드 > 블록코드 순으로 들여쓰기 계층이 생성된다

가짜 범위

  • 빈 while문이나 for문을 접하는 경우 키워드 괄호 끝에 세미콜론을 개행해서 넣어준다

5. 팀 규칙

  • 코딩 스타일을 의논하여 formatter로 지정하여 구현하는 것이 옳은 방식이다
  • 좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이루어지고 읽기 쉬운 문서는 스타일이 일관적이고 매끄러워야 한다

개인적인 감상

  • formatter가 지정되지 않은 프로젝트를 하면서 개행과 정렬, 가로 공백, 들여쓰기가 제멋대로인 것을 경험하고 나니 팀 규칙을 ㅈ어해서 하나의 스타일로 코딩하는 것이 얼마나 중요한지 깨달을 수 있었다.
  • SI 중에서도 레거시가 규칙을 정하지 않은 경우에는 그대로 formatter 없이 사용하게 되기 때문에 팀원들 간의 논의가 중요했었다
  • 신규로 개발하는 경우에는 구글의 formatter를 적용하는 경우가 있었고 규칙이 있어서 읽기가 좋았다
  • 개인적으로는 빈행을 넣어서 구분하는 것을 좋아하는데 너무 많은 빈행도 가독성을 저해한다는 것을 깨달았다
  • 보통 화면을 불러오는 메서드를 가장 처음에 올리고 그 뒤로 그 화면에 관련된 crud 처리를 하는 순서로 메서드 작성을 했는데 종속성과 관련된 순서였다는 생각이 들었다

0개의 댓글