코드로 우주평화

원활한 소통을 장려하는 코드 형식은 무엇일까? 본문

나는 이렇게 본다/Clean Code

원활한 소통을 장려하는 코드 형식은 무엇일까?

daco2020 2022. 2. 1. 22:52

제목 : 클린 코드

저자 : 로버트 C. 마틴

범위 : 5장 형식 맞추기

 

 


 

기억하고 싶은 것

  • '돌아가는 코드'가 전문 개발자의 일차적인 의무라 여길지도 모르겠다. 하지만 이 책을 읽으면서 생각이 바뀌었기 바란다.
    • 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다.
  • 원활한 소통을 장려하는 코드 형식은 무엇일까?
    • 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다.
    • 신문기사 처럼 작성하라
      • 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다.
      • 아래로 내려갈수록 의도를 세세하게 묘사한다.
      • 마지막에는 저차원 함수의 세부 내역이 나온다.
    • 개념은 빈 행으로 분리하라.
    • 타당한 근거가 없다면 서로 밀집한 개념은 한 파일에 속해야 마땅하다.
    • 연관성이란 한 개념을 이해하는 데 다른 개념이 중요한 정도다.
    • 변수는 사용하는 위치에 최대한 가까이 선언한다.
      • 지역 변수는 각 함수 맨 처음에 선언한다.
      • 루프 직전에 선언할 수도 있다.
      • 인스턴스 변수는 클래스 맨 처음에 선언한다.
      • 변수 간에 세로로 거리를 두지 않는다.
    • 종속 함수는 세로로 가까이 배치한다.
      • 호출하는 함수를 위에 호출되는 함수를 그 아래에 배치한다.
    • 개념적 유사성 - 친화도가 높을수록 코드를 가까이 배치한다.
      • 종속성, 변수와 변수를 사용하는 함수, 유사한 기능의 함수, 유사한 명명법 등
    • 가로로는 공백을 사용해 밀접한 개념과 느슨한 개념을 표현한다.
    • 개인적으로는 120자 정도로 행 길이를 제한한다.
    • 팀 규칙
      • 팀은 한 가지 규칙에 합의해야 한다. 그래야 소프트웨어가 일관적인 스타일을 보인다.
      • 개개인이 따로국밥처럼 맘대로 짜대는 코드는 피해야 한다.
    • 좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이뤄진다는 사실을 기억하기 바란다.
    • 한 소스 파일에서 봤던 형식이 다른 소스 파일에도 쓰이리라는 신뢰감을 독자에게 줘야 한다.

 

떠오르는 질문

  • 형식을 내가 직접 만들고 자동화할 수 있을까?
    VSC의 경우 EditorConfig를 사용하여 규칙을 만들 수 있다!

 

하고 싶은 말

  • 코드 자체가 표준 문서가 되도록 코딩하자.
  • 기존에 짰던 코드들을 다시 돌아보면 엉망진창인 것들이 많다. 내일 꼭 리펙토링해보자!
  • 앞으로는 내 코드 스타일이 일관적으로 보여질 수 있도록 작성하자.

 

 

 


 

 

레퍼런스

VSC 공식문서 - 코드 스타일에 EditorConfig 파일 사용