본문 바로가기
공부 기록

[클린코드] 5장. 형식 맞추기

by 매트(Mat) 2024. 4. 17.

5장. 형식 맞추기

  • 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다.
  • 팀으로 일한다면 팀이 합의해 규칙을 정하고 모두가 그 규칙을 따라야 한다.

형식을 맞추는 목적

코드 형식은 중요하다!

  • 코드 형식은 의사소통의 일환이다.
  • 의사소통은 전문 개발자의 일차적인 의무다.
    • 돌아가게만 만든 코드가 절대 아니다.
  • 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다.

적절한 행 길이를 유지하라

  • 신문 기사처럼 작성하라: 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단할 정도로 신경써서 짓는다. 무작위로 작성하면 신문도 잘 안보게 된다.
  • 개념은 빈 행으로 분리하라: 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다. 즉, 생각 사이는 빈 행을 넣어 분리해야 한다. 글도 마찬가지로 문단 구분 없이 다닥다닥 붙어 작성한다면 누가 보고 싶을까.
  • 세로 밀집도: 서로 밀접한 코드 행은 세로로 가까이 놓여야 한다. 즉, 의미없는 주석으로 밀접한 두 인스턴스를 떨어뜨려 놓으면 좋지 않다.
  • 수직 거리: 함수나 변수가 정의된 코드를 찾으려 상속 관계를 줄줄이 거슬러 올라간 경험이 있는가? 시스템이 무엇을 하는지 이해하고 싶은데, 이 조각 저 조각이 어디에 있는지 찾고 기억하느라 시간과 노력을 소모한다. 따라서 연관성이 깊은 개념들은 서로 밀집되어 있어야 한다. (변수나 함수도 서로 연관되어 있다면 가까이 작성해야 한다.)
  • 세로 순서: 일반적으로 함수 호출 종속성은 아래 방향으로 유지한다. 즉, 호출되는 함수를 호출하는 함수보다 나중에(뒤에) 배치한다.

가로 형식 맞추기

한 행은 가로로 얼마나 길어야 적당할까?

프로그래머는 명백하게 짧은 행을 선호한다. 우리가 글을 읽을 때 끊지 않고 모든 내용을 한 줄로 읽으면 힘들듯이 코드도 마찬가지다.

팀 규칙

프로그래머라면 각 선호하는 규칙이 있다. 하지만 팀에 속한다면 자신이 선호해야 할 규칙은 바로 팀 규칙이다. 팀의 규칙을 따라야 협업할 때 내가 해당 코드를 작성하지 않아도 다른 누군가가 코드를 볼 때 일관성 있게 코드를 작성하였으므로 파악하기가 쉽다.

  • 좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이뤄진다는 사실을 기억하기 바란다.
  • 온갖 스타일을 뒤섞어 소스코드를 필요 이상으로 복잡하게 만드는 실수는 반드시 피한다.
  • 코드 자체가 최고의 구현 표준 문서가 되는 예다.

느낀 점

클린코드 초반부를 읽을 때도 그렇고, 리팩토링 책을 읽을 때도 느꼈지만 강조하는 몇 가지가 있다.

  • 코드를 깔끔하고 명확하게 작성
  • 최대한 단순하게
  • 코드가 읽기 쉬워야 한다.

제일 중요한 것은 개발자는 협업을 주로 하기 때문에 남들이 읽기 쉽게 코드를 짜는 것이 베스트인 것 같다.

내 머릿속에는 복잡한 알고리즘을 구현할 수 있다고 해서 그 복잡한 알고리즘을 코드에 막 작성하게 된다면 일관성이 사라진다.

적어도 팀에서 사용하는 몇 가지 규칙을 정하고, 그 규칙은 최소한 지키면서 서로 코드에 대해 피드백을 주고받으면 충분히 성장하지 않을까 싶다.

그래서 이번 장에서 제일 중요한 것은 팀 내의 코드 형식을 최대한 맞추면서 개발해야 한다. 해당 코드 형식 자체가 바로 문서가 될 것이다.

References

'공부 기록' 카테고리의 다른 글

[클린코드] 7장. 오류 처리  (1) 2024.04.19
[클린코드] 6장. 객체와 자료구조  (0) 2024.04.18
[클린코드] 4장. 주석  (0) 2024.04.16
[클린코드] 3장. 함수  (0) 2024.04.15
[클린코드] 2장. 의미 있는 이름  (1) 2024.04.14

댓글