Book Record/Clean Code

[Clean Code] 1장 깨끗한 코드

lakelight 2022. 9. 26. 18:47
728x90
반응형

 

깨끗한 코드를 작성하기 위한 첫번째 기록

장인 정신

장인 정신을 익히기 위해서 첫째, 지식을 습득해야 한다. 둘째, 지식을 몸과 마음으로 체득해야 한다. like 자전거 타기

물리적인 지식, 중력, 마찰력, 각 운동량, 질량 등을 알고 있다고 했을 때 그것들을 이용해서 자전거를 탈 수 있는 것은 아니다. 자전거를 타기 위해서는 넘어지면서 배우고 몸으로 익혀야 한다.

깨끗한 코드도 이와 마찬가지로 원칙을 익힌 후 도전과 실패를 통해 익혀야 한다.

 

코드의 전망

코드는 기계가 이해하고 실행할 정도로 엄밀하고 정확하고 상세하고 정형화되어야 하기 때문에 사라질 가망은 없다.

코드가 사라지리라 생각하는 사람들은 언젠가 비정형적인 수학이 나오리라 기대하는 수학자와 비슷하다.

 

고행: wading

나쁜 코드에 발목이 잡혀 고생한 기억

 

르블랑의 법칙: leblanc’s Law

나쁜 코드를 작성하고, 나중에 정리해야지 하지만, 나중은(과거) 결코 돌아오지 않는다.

 

나쁜 코드의 잘못은 프로그래머의 태도의 문제

대다수의 관리자는 좋은 코드를 원한다. 그들이 일정과 요구사항을 강력하게 밀어붙이는 이유는 그것이 그들의 책임이기 때문입니다. 좋은 코드를 사수하는 것프로그래머들의 책임입니다.

나쁜 코드에 대해서 아무리, 멍청한 관리자와 조급한 고객과 쓸모없는 마케팅 부서의 탓으로 돌려도 전적인 잘못프로그래머한테 있다. 나쁜 코드의 위험을 이해하지 못하는 관리자의 말을 그대로 따르는 행동도 전문가 답지 못한 행동이다.

 

클린 코드를 배워야하는 이유

나쁜 코드를 양산하면 기한을 맞추지 못한다. 오히려 속도가 늦어지고, 기한을 놓친다. 기한을 맞추는 유일한 방법, 즉 빨리 프로젝트를 맞추는 유일한 방법은 코드깨끗하게 유지하는 습관이다.

 

비야네 스트롭스트룹 C++창시자의 말

나는 우아하고 효율적인 코드를 좋아한다. 논리간단해야 버그숨어들지 못한다. 의존성최대한 줄여야 유지보수가 쉬워진다. 오류는 명백한 전략에 의거해 철저히 처리한다. 성능최적으로 유지해야 사람들이 원칙 없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다.

유혹: 나쁜 코드는 나쁜 코드를 ‘유혹’ 한다. 흔히 나쁜 코드를 고치면서 오히려 더 나쁜 코드를 만든다.

 

그래디 부치의 말

깨끗한 코드는 단순하고 직접적이다. 깨끗한 코드는 잘 쓴 문장처럼 읽힌다. 깨끗한 코드는 결코 설계자의 의도를 숨기지 않는다. 오히려 명쾌한 추상화와 단순한 제어문으로 가득하다.

 

‘큰’ 데이브 토마스 OTI 창립자이자 이클립스 전략의 대부의 말

깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다. 단위 테스트 케이스인수 테스트 케이스가 존재한다. 깨끗한 코드에는 의미 있는 이름이 붙는다. 특정 목적을 달성하는 방법은 하나만 제공된다. 의존성 최소이며 각 의존성을 명확히 정의한다. API는 명확하며 최소로 줄였다. 언어에 따라 필요한 모든 정보를 코드 만으로 명확히 표현할 수 없기에 코드는 문학적으로 표현해야 마땅하다.

 

마이클 페더스의 말

깨끗한 코드의 특징은 많지만 그 중에서도 모두를 아우르는 특징이 하나 있다. 깨끗한 코드언제나 누군가 주의 깊게 짰다는 느낌을 준다. 고치려고 살펴봐도 딱히 손 댈 곳이 없다. 작성자가 이미 모든 사항을 고려했으므로, 고칠 궁리를 하다보면 언제나 제자리로 돌아온다. 그리고는 누군가 남겨준 코드, 누군가 주의 깊게 짜놓은 작품에 감사를 느낀다.

 

론 제프리스의 말

  1. 모든 테스트를 통과한다.
  2. 중복이 없다.
  3. 시스템 내 모든 설계 아이디어를 표현한다.
  4. 클래스, 메서드, 함수 등을 최대한 줄인다.

깨끗한 코드를 만드는 비결: 중복 줄이기, 표현력 높이기, 간단한 추상화 고려하기

 

워드 커닝햄 위키 창시자, 피트 창시자, 익스트림 프로그래밍 공동 창시자의 말

코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다. 코드가 그 문제를 풀기 위한 언어처럼 보인다면 아름다운 코드라 불러도 되겠다.

 

보이스카우트 규칙

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

체크아웃할 때보다 좀 더 깨끗한 코드를 체크인한다면 코드는 절대 나빠지지 않는다. 시간이 지날수록 코드가 좋아지는 프로젝트를 상상하면 신난다.

 

클린 코드 법칙

1. 유지보수를 위해 의존성을 줄인다.
2. 오류는 전략에 의거해 철저히 처리한다.
3. 성능을 최적으로 해서 코드를 망치려는 가능성을 없앤다.
4. 단순하고 직접적으로 작성, 잘 읽히는 문장처럼 작성한다.
5. 코드에는 의미있는 이름을 사용하고, 특정 목적을 달성하기 위한 방법은 1가지로 제한한다.
5. 중복을 줄이고 추상화를 간단하게 작성한다.

 

마무리

장인 정신을 가지고 책에서 배운 내용을 실무에서 적용해가며
클린 코드의 법칙을 제 것으로 만들겠습니다.

 

[출처]
Clean Code (클린 코드,애자일 소프트웨어 장인 정신), 로버트 C. 마틴 저

728x90
반응형

'Book Record > Clean Code' 카테고리의 다른 글

[Clean Code] 6장 객체와 자료 구조  (2) 2022.10.07
[Clean Code] 5장 형식 맞추기  (4) 2022.10.06
[Clean Code] 4장 주석  (0) 2022.09.27
[Clean Code] 3장 함수  (2) 2022.09.27
[Clean Code] 2장 의미있는 이름  (0) 2022.09.26