[클린코드] 1~2장
도서

[클린코드] 1~2장

반응형

1장  깨끗한 코드

 

분당 욕(이게뭐야)이 얼마나 나오냐에 따라 좋은코드인지 나쁜코드인지 나뉜다.

 

나쁜코드

  • 중복된 코드
  • 불필요한 연산이 들어간 성능이 나쁜 코드
  • 네이밍과 내용이 다르거나 이해하기 어려운 의미가 모호한 코드

"우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다. 대충 짠 프로그램이 돌아가는 것에 안도감을 느끼고 안돌아가는 쓰레기보다 돌아가는 쓰레기가 좋다고 위로한 경험이 있다. 다시 돌아와 나중에 정리하겠다고 다짐했었다. 물론 그때 그시절 우리는 르블랑의 법칙을 몰랐다. 나중은 결코 오지 않는다."

시간이 부족하다는 이유로, 영향범위가 넓어 버그가 생길까 두려워 나쁜코드가 생긴다.

 

나쁜 코드가 나쁜 이유는 개발속도와 생산성을 시간이 지날수록 크게 떨어 트린다.

기술부채도 만들어 수정을 더 어렵게 만들기도 한다.

나쁜 코드가 나쁜 이유는 깨진창문으로 비유한다.

창문이 깨진 건물은 창문이 더 깨져도 상관하지 않는다. 코드도 나쁜코드가 더 나쁜 코드를 만든다.

 

 

 

클린코드

책에서는 클린코드에 대해 다양한 이야기를 하는데 중요한 부분만 정리해보자면

  • 코드는 한 가지를 제대로한다.
  • 단순하고 직접적이며, 잘 쓴 문장처럼 읽힌다. 
  • 다른사람이 고치기 쉬워야 한다.
  • 중복이 없어야 한다.

좋은 글은 간결하다 코드도 똑같이 통용되는 이야기인듯 하다.

그리고 책에서는 보이스카우트 규칙을 이야기한다. 캠프장은 처음 왔을 때 보다 더 깨끗하게 해놓고 떠나라.

코드도 시간이 지나면서 엉망으로 전락할 수도 있다.

 

이 책이 무조건 옳은 것은 아니다.

예술에 대한 책을 읽는다고 예술가가 되는 보장은 없다. 이 책은 단지 다른 예술가가 사용하는 도구와 기법, 그리고 생각하는 방식을 소개할 뿐이다.

 

2장  의미 있는 이름

 

의도를 분명히 밝혀라

특정 코드가 어떠한 일을 하는지 이해하기 쉽게 만들어야 한다.

 

그릇된 정보를 피하라

약어는 변수이름으로 적합하지 않다. 그리고 흡사한 이름을 사용하지 않도록 해야한다.

 

의미있게 구분하라

name에 굳이 string을 붙여 nameString으로 할 필요가 없다.

moneyAmount는 money와 구분이 되지 않는다.

 

발음하기 쉬운 이름을 사용하라

어려운 이름을 사용하면 토론하기가 어렵다.

 

검색하기 쉬운 이름을 사용하라

7이 들어가는 함수가 있으면, 7이 들어가는 파일이름이나 수식이 모두 검색된다.

 

클래스 이름

명사나 명사구가 적합

 

매서드 이름

동사나 동사구가 적합

 

기발한 이름은 피하라

재미난 이름보다 명료한 이름을 선택해야 한다.

 

의미 있는 맥락을 추가하고, 불필요 맥락을 제거해야 한다.

 

 

더 많은 내용이 있고, 책에 설명이 더 잘되어 있는데 추려보았는데. 이 모든 것을 적용한다는 것은 처음에 쉽지 않겠다 생각이 들었습니다. 그럼에도 책에 있는 내용들은 전부 일리 있는 말들이었고, 생각도 못해본 문제점을 생각할 수 있게되어 좋았습니다.

 

참고) Google Jaba Style Guide

반응형