1. 코드 = 커뮤니케이션
설명을 통하지 않고 코드로만 대화해도 이해할 수 있어야함
커뮤니케이션 실패
cons d = " "; // 경과 시간
이런 코드를 만드는 사람이 하는 생각
- 난 잘 이해되는데?
- 어짜피 코드 위아래를 보면 어떤 의미인지 알 수 있지 않아?
But
- 다른 개발자들이 이 코드를 보면 무너지 이해가 될까?
- 시간이 지나고 직접 만든 당사자가 봐도 이해 못 할 수도
2-1. 의도를 명확히 밝혀라
변수 이름만 봐도 어떤 역할을 하는지 알 수 있어야 함
변수명은 구체적으로
Bad → 작성자만 알 수 있는 약어로 쓰여져 있음
if (t === DaysType.Day) {
}
// t가 무슨 의미일까요?
const cbm = (d: Days[]) => d.map((dd: Days) => dd.month());
// cbm, d, dd 가 무슨 의미일까요?
const sd = data.get("someDateData");
// sd가 무슨 의미일까요?
Good → 변수명을 구체적으로 바꿔줌으로써 다른 개발자들도 이해하기가 수월함
if (selectedDay === DaysType.Day) { }
// t => selectedDay (선택한 요일)
const getSelectedMonth = (selectedDays: Days[]) =>
selectedDays.map((item: Days) => item.month());
// cbm => getSelectedMonth (선택한 Month 를 조회하는 함수)
// d => selectedDays (선택된 요일들)
// dd => item (selectedDays 구성요소)
const selectedDate = data.get("someDateData");
// sd => selectedDate (선택된 날짜)
2-2. 주석은 해결책이 아니다
Bad → 주석을 써서 부족한 설명을 보완한다?
const t = " "; // 유저가 선택한 날짜
Bad → 주석이 쓰여있는 범위를 벗어난다면?
/**
* 이
* 후
* 다
* 른
* 코
* 드
* 들
* 이
* 나
* 온
* 다
* 음
* 에
*/
if (t === DaysType.Day) {
}
// t가 무슨 의미인지 확인하려면 t가 선언된 부분의 주석을 확인해야한다
- if 문에서 t를 읽은 개발자는 t가 어떤 의미인지 알 수 있을까?
Good → 의미있고 구체적인 변수명으로 변경해주면 주석이 필요가 없음
좋은 코드일수록 주석이 필요 없음
const selectedDate = " ";
/**
* 이
* 후
* 다
* 른
* 코
* 드
* 들
* 이
* 나
* 온
* 다
* 음
* 에
*/
if (selectedDay === DaysType.Day) {
} // t => selectedDay
2-3. 중언부언 하지마라
Bad → 일반적인 단어들의 조합으로 변수가 어떤 역할을 하는지 알 수 없음
const stringArray = // 댓글 목록
Good → 대상의 특징을 명확하게 드러낼 수 있는 용어를 사용해야 함
const replyComments =
정리
작성자만 알수있는 약자를 사용하지 말자
주석을 덧대서 설명하기보다 구체적인 변수명을 사용하자
역할을 설명할수 있는 명확한 단어를 쓰자
무료 강의 - 인프런 클린코드 찍먹
https://www.inflearn.com/course/%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-%EC%B0%8D%EB%A8%B9?srsltid=AfmBOopso_XjA6zK1Xl0KnHriY1ENTVTDZc7SQiSQxxZz4ZM9UTggDi2