"이론과 실전은 다르다."
자전거 타기의 물리적인 지식을 다 익혀도 처음타면 100% 넘어지고, 이는 체득하지 않으면 의미가 없다. 자전거가 몸의 일부처럼 움직이듯 책을 활용하면 좋을것이다.
사람들은 노코드에 열광하지만 상세 요구사항을 표현하기엔 아직 부족하며 노코드조차 코드로 이루어져있기 때문에 좋은 코드를 짜는 노력은 헛되지 않을 것이다.
이전에 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 하지만 나중은 결코 오지않는다 한번 짤 때 제대로 짜자.(르블랑의 법칙)
나쁜 코드는 나쁜코드를 "유혹"하며 나와 주변의 개발속도를, 생산성을 크게 떨어뜨린다.
다음은 위대한 프로그래머들의 말을 종합적으로 정리한 내용이다.
깨끗한 코드는
프로그래머들이 일하는 시간 중 코드를 읽는시간 대 짜는시간의 비율이 10: 1 이다. 그만큼 읽기 쉬운 코드가 매우 중요하다.
보이스카우트 규칙에 "캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라."라는 말이 있는데 처음부터 많은 시간을 투자해 코드를 정리할 필요없이 변수, 함수 하나하나 조금씩 정리해나가면 코드는 점점 좋아지고 클린코드가 된다.
"의미있는 이름을 통해 가독성을 높이자!!"
// 변수예시
int d; // 흐른 시간(단위: 날짜) 같은 명칭보다
int daySinceCreation; // 같이 의도가 분명해야 한다.
//함수예시
function getThem() {
let list1 = []
theList.forEach(val => {
if (val === 4) list1.add(val)
})
return list1
}
//함수 코드가 다음과 같다면 의도를 파악하기 위해 다른 코드들을 읽을시간이 필요하다. 만약 //다음과 같이 바꿔준다면 명확하게 의도를 파악할 수 있다.(지뢰찾기)
function getFlaggedCells() {
let flaggedCells = []
gameBoard.forEach(cell => {
if (cell[state] === flagged) flaggedCells.push(cell)
})
return flaggedCells
}
두개의 값을 더하는 add() 메소드를 선언했다면 배열에 값을 추가하는 메소드로 add대신 insert, append를 사용해라 남이 이해하기 쉽도록 작성해야한다.
chartAdded() 와 chartAdd()같이 유사한 이름을 짓지 않는다.
의미가 분명하게 표시가 되는 단어라면 data, info, time 등과 같은 불용어는 사용할 필요가 없다.
ex) customerlnfo -> customer, accountData -> account, moneyAmount -> money
의미가 분명한 선에서 적은 글자를 적게 사용하는 습관이 필요하다.