✨깨끗한 코드✨와 의미있는 이름

JACKJACK·2022년 12월 19일
1
post-thumbnail
post-custom-banner

📝클린코드를 위한 마음가짐

"이론과 실전은 다르다."

자전거 타기의 물리적인 지식을 다 익혀도 처음타면 100% 넘어지고, 이는 체득하지 않으면 의미가 없다. 자전거가 몸의 일부처럼 움직이듯 책을 활용하면 좋을것이다.


📄클린코드 1장 - 깨끗한 코드


  • 사람들은 노코드에 열광하지만 상세 요구사항을 표현하기엔 아직 부족하며 노코드조차 코드로 이루어져있기 때문에 좋은 코드를 짜는 노력은 헛되지 않을 것이다.

  • 이전에 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 하지만 나중은 결코 오지않는다 한번 짤 때 제대로 짜자.(르블랑의 법칙)

  • 나쁜 코드는 나쁜코드를 "유혹"하며 나와 주변의 개발속도를, 생산성을 크게 떨어뜨린다.

  • 깨끗한 코드와 나쁜 코드를 구분할 줄 안다고해서 깨끗한 코드를 작성할 줄 아는 것은 아니다. 그림을 볼줄 이는것과 그리는것은 다르듯.(자전거 얘기와 일맥상통)

🧐사람마다 제각각? 클린코드의 정의

다음은 위대한 프로그래머들의 말을 종합적으로 정리한 내용이다.

깨끗한 코드

  • 논리가 간단해 버그가 숨어들지 못한다 그만큼 명백하고 단순하다.
  • 의존성을 최대한 줄여야 유지보수가 쉽다.
  • 세세한 사항까지 꼼꼼히 처리해 오류가 없다.
  • 가독성이 좋아 잘 쓴 문장처럼 느껴진다.
  • 고치려고해도 손댈곳이 없다.
  • 중복이 없다.

프로그래머들이 일하는 시간 중 코드를 읽는시간 대 짜는시간의 비율이 10: 1 이다. 그만큼 읽기 쉬운 코드가 매우 중요하다.

보이스카우트 규칙에 "캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라."라는 말이 있는데 처음부터 많은 시간을 투자해 코드를 정리할 필요없이 변수, 함수 하나하나 조금씩 정리해나가면 코드는 점점 좋아지고 클린코드가 된다.




📄클린코드 2장 - 의미있는 이름

"의미있는 이름을 통해 가독성을 높이자!!"

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
}


2. 그릇된 정보 제공을 하지않도록 약어를 마음대로 만들어 쓰거나 유사한 변수, 함수명을 짓지 말아라.🤔

두개의 값을 더하는 add() 메소드를 선언했다면 배열에 값을 추가하는 메소드로 add대신 insert, append를 사용해라 남이 이해하기 쉽도록 작성해야한다.

chartAdded() 와 chartAdd()같이 유사한 이름을 짓지 않는다.


3. 분석에 큰 의미가 없는 불용어는 사용하지 말아라.🤨

의미가 분명하게 표시가 되는 단어라면 data, info, time 등과 같은 불용어는 사용할 필요가 없다.

ex) customerlnfo -> customer, accountData -> account, moneyAmount -> money


4. 의미가 분명해지는 선에서 불필요한 맥락을 없애라.😤

의미가 분명한 선에서 적은 글자를 적게 사용하는 습관이 필요하다.




💡결론

- 가독성이 좋고 단순해서 유지보수하기 좋은 코드가 클린코드이다.

- 모든 코드를 짤 때 항상 깨끗한 코드를 짜는 노력을 들여야한다. (나중은 없다.)

profile
러닝커브를 빠르게 높이자🎢
post-custom-banner

0개의 댓글