LeeA0의 공부 일기

[Clean Code] 1장. 깨끗한 코드 본문

Java/Clean Code

[Clean Code] 1장. 깨끗한 코드

LeeA0 2021. 8. 22. 20:23

[사담]

더보기

이번 장에서 제일 공감됬던 말은 '우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다' 였습니다 ㅎㅎ.. 

실제로 그 때에는 최선이라 생각했던 코드들도, 나중에 봤을 때 별로라 생각해 고쳐야겠다는 마음을 먹었었는데요. 다음 일을 하느라 급해서 아직도 리팩토링 못한게 많습니다 ㅠㅠ..

이 책을 읽고 열심히 공부해서 리팩토링을 해야겠다는 생각이 다시 드네요 ㅎㅎ..

 

[정리]

DSL (Domain Specific Language)

: 도메인에 특화된 언어,

 특정 문제 표현 기법, 특정 문제 해결 기법에 사용할 목적으로 만든 프로그래밍 언어나 명세 언어

 

나쁜 코드의 악순환

출시에 바빠 코드를 마구 작성 -> 기능을 추가 -> 감당불가 -> 새로운 시스템을 설계하자는 의견 -> 새 시스템이 기존 시스템을 따라잡기까지 약 10년 -> 그 사이에 새 시스템 설계 팀원 변경 -> 다시 새로운 시스템을 설계하자는 의견 -> ...(무한반복)

 

깨끗한 코드란?

1. 비야네 스트롭스트룹 (Bjarne Stroustup)

- 우아하고 효율적인 코드 (보기에 즐거운 코드)

- 논리가 간단 -> 버그가 숨어들지 못함

- 의존성을 최대한 줄임 -> 유지보수가 쉬워짐

- 오류는 명백한 전략에 의거해 철저히 처리

- 성능을 최적으로 유지 -> 원칙없는 최적화로 코드를 망치는 것을 방지

- 한 가지를 제대로하는 코드

 

2. 그래디 부치 (Grady Booch)

- 단순하고 직접적인 코드

- 잘 쓴 문장처럼 읽히는 코드

- 설계자의 의도를 숨기지 않는 코드

- 명쾌한 추상화와 단순한 제어문으로 가득함

 

3. 데이브 토마스 (Dave Thomas)

- 작성자가 아닌 사람도 읽기 쉽고 고치기 쉬움

- 단위 테스트 케이스인수 테스트 케이스가 존재

- 의미있는 이름이 붙음

- 특정 목적을 달성하는 방법은 하나만 제공

- 의존성을 최소화하고, 명확히 정의

- 코드는 문학적으로 표현 -> 인간이 읽기 좋은 코드

 

4. 마이클 페더스 (Michael Feathers)

- 언제나 누군가 주의 깊게 짰다는 느낌을 주는 코드 -> 고치려고 살펴봐도 손 댈 곳이 없음

 

5. 론 제프리스 (Ron Jeffries)

- 모든 테스트를 통과

- 중복없음

- 시스템 내 모든 설계 아이디어를 표현

- 클래스, 메서드, 함수 등을 최대한 줄임

 

6. 워드 커닝햄 (Ward Cunningham)

- 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행하는 코드 -> 코드가 그 문제를 풀기 위한 언어로 보인다!

 


 

 
 
Clean Code
저자 : 로버트 C. 마틴
출판 : 인사이트
발매 : 2013. 12. 24

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

[Clean Code] 3장. 함수 (미완)  (0) 2021.09.11
[Clean Code] 2장 - 실습  (0) 2021.09.02
[Clean Code] 2장. 의미 있는 이름  (0) 2021.08.29
[Clean Code] 0장. 들어가면서  (0) 2021.08.22
[Clean Code] 시작일기  (0) 2021.08.22
Comments