클린코드 2일차 - 장인정신 길들이기 및 클린코드 고생길 시작
클린코드 2일차 ( p.1~12(1장) )
클린코드 3일차 ( p.13~23(1장) / 21~23(2장) )
0 들어가면서
난관에 부딪힐 때 옳은 문 뒤에 있으려면 어떻게 해야 할까? 답은 장인 정신이다.
장인 정신을 익히는 과정은 두 단계로 나뉜다. 바로 이론과 실전이다.
첫째, 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식 습득
둘째, 열심히 일하고 연습해 지식을 몸과 마음으로 체득
단순히 원칙과 패턴을 안다고 깨끗한 코드가 나오지 않는다. 고생을 해야한다. (즉, 고생하며 읽어야하는 책)
그 책의 흐름을 보고자 하면 목차를 봐야한다. 이 책은 총 세 부분으로 나눠진다고 한다.
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), 일관성 없는 명명법
- 깨끗한 코드는 세세한 사항까지 꼼꼼하게 처리하는 코드 + 한 가지에 '집중'
- 깨끗한 코드는 잘 쓴 문장처럼 읽혀야 한다.
- 코드는 추측이 아닌 사실에 기반해야 한다.
- 깨끗한 코드란 다른 사람이 고치기 쉽다고 단언한다.
- 깨끗한 코드는 주의 깊게 작성한 코드다.
- 중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화하라.
보이스카우트 규칙
- 잘 짠 코드가 전부는 아니다. 시간이 지나도 언제나 깨끗하게 유지해야한다.
- "캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라"
- 예를 들자면, 변수 이름 하나를 개선하고, 조금 긴 함수를 분할하고, 중복을 제거하고 와 같은 일 !
'알아두면쓸데있는신기한잡학사전 > 독서일지' 카테고리의 다른 글
[클린코드] 7일차 - 오류 보단 예외처리, 그리고 클린코드로 인한 중복 알레르기 (1) | 2023.10.31 |
---|---|
[클린코드] 6일차 - 좋은 함수를 위한 n가지 주의사항 (1) | 2023.10.30 |
[클린코드] 5일차 - 분명한 이름을 위한 의미있는 맥락(Context) 부여, 함수는 한 가지 일만. (1) | 2023.10.29 |
[클린코드] 4일차 - 의미 있는 이름 짓는 시간은 유의미하다. (2) | 2023.10.27 |
[클린코드] 3일차 - 의미 있는 이름은 어떻게 지을까? (2) | 2023.10.25 |