Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 5장.형식 맞추기
#clean_code
2년 전
381


TIL (Today I Learned)

2022.02.28

오늘 읽은 범위

5장. 형식 맞추기

책에서 기억하고 싶은 내용을 써보세요.

  • 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다. ~코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무다. ~오늘 구현한 기능이 당므 버전에서 바뀔 확률은 아주 높다. 오늘 구현한 코드의 가독서은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. (96 p)

  • 신문 기사처럼 작성하라 ~최상단에 기사를 몇 마디로 용약하는 표제가 나온다. 독자는 표제를 보고서 기사를 읽을지 말지 결정한다. 첫 문단은 전체 기사 내용을 요약한다. 세세한 사실은 숨기고 커다란 그림을 보여준다. 쭉 읽으며 내려가면 세세한 사실이 조금씩 드러난다. 날짜, 이름, 발언, 주장, 기타 세부사항이 나온다. 소스파일도 신문 기사와 비슷하게 작성한다.

    ~소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. ~신문은 다양한 기사로 이뤄진다. 대다수 기사가 아주 짧다. 어떤 기사는 조금 길다. 한 면을 채우는 기사는 거의 없다. 신문이 읽을 만한 이유는 여기에 있다. 신문이 사실, 날짜, 이름 등을 무작위로 뒤섞은 긴 기사 하나만 싣는다면 아무도 읽지 않으리라.

  • 개념은 빈 행으로 분리하라 ~각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다. ~눈의 초점을 흐리게 하고 코드를 바라보면 효과는 더욱 분명하게 드러난다. (100 p)

  • 세로 밀집도 ~줄바꿈이 개념을 분리한다면 세로 밀집도는 연관성을 의미한다. ~

  • 수직 거리 ~시스템이 무엇을 하는지 이해하고 싶은데, 이 조각 저 조각이 어디에 있는지 찾고 기억하느라 시간과 노력을 소모한다. 서로 밀접한 개념은 세로로 가까이 둬야 한다. ~같은 파일에 속할 정도로 밀접한 두 개념은 세로 거리로 연관성을 표현한다. 연관성이란 한 개념을 이해하는 데 다른 개념이 중요한 정도다. (101 p)

  • 인스턴스 변수 ~인스턴스 변수는 클래스 맨 처음에 선언한다. 변수 간에 세로로 거리를 두지 않는다. 잘 설계한 클래스는 많은 (혹은 대다수) 클래스 메서드가 인스턴스 변수를 사용하기 떄문이다. (103 p)

  • 종속 함수 ~한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가가이 배치한다. 또한 가능하다면 호출하는 함수를 호출괴는 함수보다 먼저 배치한다. 그러면 프로그램이 자연스럽게 읽힌다.

    (104 p)

  • 개념적 유사성 ~명명법이 똑같고 기본 기능이 유사하고 간단하다. 서로가 서로를 호출하는 관계는 부차적인 요인이다. 종속적인 관계가 없더라도 가까이 배치할 함수들이다. (106 p)

  • 세로 순서 ~함수 호출 종속성은 아래 방향으로 유지한다. (106 p)

  • 가로 공배과 밀집도 ~함수와 인수는 서로 밀접하기 때문이다. (108 p)

  • 팀 규칙 ~팀규칙이라는 제목은 말 장난이다. 프로그래머라면 각자 선호하는 규칙이 있다. 하지만 팀에 속한다면 자신이 선호해야 할 규칙은 바로 팀 규칙이다. ~개개인이 따로국밥처럼 맘대로 짜대는 코드는 피해야 한다. (113 p)

    좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이뤄진다는 사실을 기억하기 바란다. 스타일은 일관적이고 매끄러워야 한다. 한 소스 파일에서 봤던 형식이 다른 소스 파일에도 쓰이리라는 신뢰감을 독자에게 줘야 한다. (114 p)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 코딩, 컴퓨터 과학은 재미 있다.

  • 문학적인 요소가 코딩에 필요하다는 게 정말 신기하다.

  • 이름짖기, 브랜딩 잘 할 자신있다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 로그 스케일: 선형 그래프(Linear graph), 정수 그래프와는 다르며, Log를 활용한 그래프이다. 주로 계승(factorial)적인 부분의 도수를 2차원 그래프에 나타낼 때 사용한다고 한다.