개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
코드는 사라질 지라도 코드 형식은 남는다. 그러므로 형식을 맞추는 것이 중요하다.
신문 기사처럼 너무 길지 않고 앞부분만 보더라도 이해가 되고 한 눈에 구조가 파악되도록 작성해야 한다.
팀 규칙으로 시스템 전반적으로 일관된 스타일으로 유지해야 한다.
TIL (Today I Learned) 날짜
2022. 05. 02
오늘 읽은 범위
5장. 형식 맞추기
책에서 기억하고 싶은 내용을 써보세요.
코드 형식은 중요하다!
오늘 구현한 기능은 다음 버전에서 바뀔 확률이 높지만 오늘 구현한 코드의 스타일과 가독성 수준은 앞으로의 코드 품질에 지대한 영향을 미친다.
코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다.
적절한 행 길이를 유지하라.
신문 기사처럼 작성하라.
이름은 간단하면서도 설명이 가능하게
소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명
아래로 내려갈수록 의도를 세세하게 묘사
마지막에 가장 저차원 함수와 세부 내역이 나오도록
개념은 빈 행으로 분리하라.
일련의 행 묶음은 완결된 생각 하나를 표현하며 생각 사이는 빈 행을 넣어 분리해야 한다.
빈 행은 새로운 개념을 시작한다는 시각적인 단서
세로 밀집도는 연관성을 의미. 서로 밀접한 개념은 세로로 가까이 둬야 한다.
변수는 사용하는 위치에 최대한 가까이 선언한다.
인스턴스 변수는 클래스 맨 처음에 선언하고 변수 가에 세로로 거리를 두지 않는다.
잘 설계한 클래스는 많은 클래스 메소드가 인스턴스 변수를 사용하므로 변수 선언을 어디서 찾을지 모두가 알고 있어야 한다.
한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치하며 함수 호출 종속성은 아래 방향으로 유지한다. 즉, 호출되는 함수를 호출하는 함수보다 나중에 배치한다.
가장 중요한 개념을 가장 먼저 표현하고 이 때는 세세한 사항을 최대한 배제. 세세한 사항은 가장 마지막에 표현.
개념적인 친화도가 높을수록 코드를 가까이 배치한다.
예를 들어 비슷한 동작을 수행하는 일군의 함수(명명법이 똑같고 기본 기능이 유사한 함수들)
한 행의 길이는 짧은 게 바람직하다.
가로로는 공백을 사용해 밀접한 개념과 느슨한 개념을 표현.
선언문과 할당문을 별도로 가로 정렬하지 않는다.
범위로 이뤄진 계층을 표현하기 위해 들여쓰기를 사용하며, 들여쓰는 정도는 계층에서 코드가 자리잡은 수준에 비례한다.
왼쪽으로 코드를 맞춰 코드가 속하는 범위를 시각적으로 표현하면 구조가 한 눈에 들어온다.
때로 간단한 if문, 짧은 while문 등에서 들여쓰기 규칙을 무시하고 싶은 유혹이 생기지만 가독성을 위해 들여쓰기를 넣는 것이 좋다.
팀은 한 가지 규칙에 합의해야 하며, 모든 팀원은 그 규칙을 따라야 한다. 그래야 소프트웨어가 일관된 스타일을 보인다.
좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이뤄진다. 스타일은 일관적이고 매끄러워야 하며 한 소스 파일에서 봤던 형식이 다른 소스 파일에서도 쓰이리라는 신뢰감을 독자에게 줘야 한다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
여기서도 결국 코드를 짠다는 것을 독자가 있는 글을 쓰는 일이라는 것을 강조한다.
결국 형식을 맞추는 것이 중요한 이유는 읽는 사람의 가독성을 위해서라는 게 이 장의 요지인 걸로 보인다. 형식을 맞춰야 하는 게 왜 중요한가? 그것이 가독성을 높여주고 독자로 하여금 같은 내용이더라도 좀 더 빠르고 쉽게 이해할 수 있도록 도와주기 때문이다.
그러므로 융통성 없이 맹목적으로 따르면 안되고 독자와 의사소통하기 위한 수단으로 생각해야 한다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.