[Clean Code] 1장 깨끗한 코드

Min J·2022년 10월 27일
0

CleanCode

목록 보기
1/1

1. 깨끗한 코드

나쁜 코드

나쁜 코드에 발목이 잡혀 고생한 기억이 있는가? 조금이라도 프로그램을 짜봤다면 필경 수없이 경험했으리라. wading.

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

깨끗한 코드란?

비야네 스트롭스트룹

나는 우아하고 효율적인 코드를 좋아한다.

  • 깨끗한 코드는 보기에 즐거운 코드이다.
  • 우아하지 않은 코드는 바람직하지 않은 결과를 초래한다.
  • 나쁜 코드는 나쁜 코드를 유혹한다. 나쁜 코드를 고치면 오히려 더 나쁜 코드를 만들어낸다는 의미다.
  • 메모리 누수, 경쟁 상태, 일관성 없는 명명법 등 깨끗한 코드는 세세한 사항까지 꼼꼼하게 처리하는 코드이다.

그래디 부치

깨끗한 코드는 잘 쓴 문장처럼 읽힌다.

  • 좋은 소설과 마찬가지로 코드는 해결할 문제의 긴장을 명확히 드러내야 한다.
  • 코드는 추측이 아니라 사실에 기반해야 하고 반드시 필요한 내용만 담아야 한다.

데이브 토마스

깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다.

  • 테스트 케이스가 없는 코드는 깨끗한 코드가 아니다.
  • ‘최소’ 단어를 강조하는데, 큰 코드보다는 작은 코드에 가치를 둔다는 의미다.
  • ‘문학적’ 코드는 인간이 읽기 좋은 코드를 작성하라는 의미다.

마이클 페더스

깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다.

론 제프리스

  • 모든 테스트를 통과하기
  • 중복 피하기
  • 한 가지 기능만 수행하기
  • 제대로 표현하기
  • 작게 추상화하기

워드 커닝햄

코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다.

우리는 저자다

  • 새 코드를 짜면서 우리는 끊임없이 기존 코드를 읽는다.
  • 기존 코드를 읽어야 새 코드를 짜므로 읽기 쉽게 만들면 짜기도 쉬워진다.
  • 급하다면, 서둘러 끝내려면, 쉽게 짜려면, 읽게 쉽게 만들면 된다.

보이스카우트 규칙

캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라.

  • 지속적인 개선이 깨끗한 코드를 만든다.

느낀점!!

그 시절 우리는 르블랑의 법칙을 몰랐다. 나중은 결코 오지 않는다.

아직도 기간이 촉박했던 수행평가 때 만든 프로젝트나 공모전 출품 작품을 손보지 못하고 있다. 너무 촉박하게 만들어서 어떻게 짰는지 조차 기억도 나지 않고 오래되기도 했고 코드가 너무 지저분해서 이해하지 못하는 부분도 있어서 엄두가 나지 않는다. 작품을 춤품하고도 이제 리팩토링 좀 해볼까… 했지만 막상 손이 가지 않았다. 그대로 나쁜 코드들이 되어 버렸다. 고등학생 때 만든 프로젝트를 포트폴리오에 넣지는 못할테니 아무튼 돌아가지는 쓰레기를 추억으로 남겨도 될 거 같다.

이제는 깨끗한 코드를 짜야 한다. 일을 하고 있고 내 코드를 후에 누군가 볼 수 있으니 아직 부족한 실력이지만 코드 리뷰도 열심히 참고하여 개발하고자 한다. 나는 오래전 PHP로 개발된 페이지를 유지 보수 하거나 새로운 페이지를 만들고 있다. 작업하면서 다른 코드를 참고하는데 이해가 가지 않은 부분이나 중복적인 부분은 따로 함수로 묶어도 될 거 같은 부분이 보인다. 새로 기능을 만들게 된다면 중복을 최대한 줄이는 방면으로 개발하고 싶다! 외에도 켄트 백의 코드 규칙을 구현하고자 한다.


친구들과 함께 스터디로 진행하고 있는 독서 정리입니다!
Go Github!

0개의 댓글