알아두면쓸데있는신기한잡학사전/독서일지

[클린코드] 2일차 - 장인정신 길들이기 및 클린코드 고생길 시작

대범하게 2023. 10. 25. 22:23
반응형

클린코드 2일차 - 장인정신 길들이기 및 클린코드 고생길 시작

클린코드 2일차 ( p.1~12(1장) )

클린코드 3일차 ( p.13~23(1장) / 21~23(2장) )

0 들어가면서

훌륭한 코드에서도 WTF은 존재한다..

 

난관에 부딪힐 때 옳은 문 뒤에 있으려면 어떻게 해야 할까? 답은 장인 정신이다. 

장인 정신을 익히는 과정은 두 단계로 나뉜다. 바로 이론실전이다. 

첫째, 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식 습득

둘째, 열심히 일하고 연습해 지식을 몸과 마음으로 체득

단순히 원칙과 패턴을 안다고 깨끗한 코드가 나오지 않는다. 고생을 해야한다. (즉, 고생하며 읽어야하는 책)

 

그 책의 흐름을 보고자 하면 목차를 봐야한다. 이 책은 총 세 부분으로 나눠진다고 한다.

 

1) 깨끗한 코드를 작성하는 원칙, 패턴, 실기 - 코드가 많아 읽기 힘들 예정이라고 함. 2)를 준비하는 과정

2) 여러 사례 연구 소개 - 문제가 있는 코드를 문제가 적은 코드로 바꾸는 연습. 집중력 필요. 시간 투자 필요. 개중요.

3) 결말 - 행위의 모든 이유인 냄새와 휴리스틱 열거. but, 그 자체의 중요성 보단 결정과 휴리스틱의 관계를 중점으로.

 

0 들어가면서의 결론은 ..

두 번째 사례 연구를 열심히 안 읽고.. 냄새와 휴리스틱를 느끼지 않고.. 관계를 파악하지 않으면.. 고생없으면.. 시간 낭비일 뿐.

 

더보기

1장 깨끗한 코드 

2장 의미 있는 이름

3장 함수

4장 주석

5장 형식 맞추기

6장 객체와 자료구조

7장 오류 처리

8장 경계

9장 단위 테스트

10장 클래스

11장 시스템

12장 창발성

13장 동시성

14장 점진적인 개선

15장 JUnit 들여다보기

16장 SerialDate 리팩터링

17장 냄새와 휴리스틱

목차만 봐서는 생각했던 위에서 언급된 세 부분의 무게가 다른 것 같은데 차근히 살펴봐야겠다. 

 

1 깨끗한 코드

코드가 존재하리라

- 코드가 사라질 가망은 없다. 왜? 코드는 요구사항을 상세히 표현하는 수단.

-  기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업 = 프로그래밍 

- 그에 대한 결과 = 코드

 

나쁜 코드

- 좋은 코드는 중요하다. 왜? 오랫동안 나쁜 코드에 시달려왔으니까. (ㅋ)

- 나쁜 코드는 회사를 망하게 하기도 한다. 그럴 수 있냐고? 80년대 후반의 킬러 앱을 구현한 ..

- 르블랑의 법칙(leblanc's Law) - 나중은 결코 오지 않는다.(Later equals never)

- 한 번 작성한 쓰레기 코드를 나중에 수정하는 일은 결코 없다.

 

나쁜 코드로 치르는 대가 

- 나쁜 코드가 쌓일수록 팀 생산성 떨어짐. (0에 수렴)

- 나쁜 코드 → 생산성 저하 → 복구 시도 → 인력 투입 → 시스템 설계 조예 깊지 X → 생산성 높여야 한다는 압박 증가 → 나쁜 코드

- 돌돌BadCode

 

형님들이 말씀하시는 깨끗한 코드란 ..

 

- 빨리 가는 유일한 방법은, 언제나 최대한 깨끗하게 유지하는 습관.

- 철저한 오류 처리, 메모리 누수, 경쟁 상태(race condition), 일관성 없는 명명법

- 깨끗한 코드는 세세한 사항까지 꼼꼼하게 처리하는 코드 + 한 가지에 '집중'

- 깨끗한 코드는 잘 쓴 문장처럼 읽혀야 한다. 

- 코드는 추측이 아닌 사실에 기반해야 한다.

- 깨끗한 코드란 다른 사람이 고치기 쉽다고 단언한다.

- 깨끗한 코드는 주의 깊게 작성한 코드다.

- 중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화하라.

 

보이스카우트 규칙

- 잘 짠 코드가 전부는 아니다. 시간이 지나도 언제나 깨끗하게 유지해야한다.

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

- 예를 들자면, 변수 이름 하나를 개선하고, 조금 긴 함수를 분할하고, 중복을 제거하고 와 같은 일 !