책- 정리/Clean Code

Chapter 1장 깨끗한 코드

jinkwon.kim 2017. 1. 8. 14:05
728x90
반응형


Chapter 1장 깨끗한 코드

    • 코드가 존재 하리라 

자동화 툴이 많이 나와도 프로그래머는 사라지지 않는다.
깊이있게 수정하려면 어짜피 프로그래머가 수정해야 한다. 
    • 나쁜코드 

나쁜 코드라고 생각되면 바로 고쳐라, 나중에 고치야지 하면 절때 못 고친다. 
나중은 오지 않는다. !!!
    • 나쁜 코드로 치루는 대가 

나쁜 코드가 쌓일수록 생상 선은 떨어진다.
나쁜 코드는 해독하고 고쳐야 하고 어디서 사이드 이펙트가 발생할지 알수가 없다. 
기한을 맞추려고 나쁜 코드를 짜면 오히러 기한을 맞추지 못하고 시간이 좀 걸리더라고 좋은 코드를 짜면 기한을 맞 출수 있다.

    • 프로그램 대가들의 의견!

By 바야네 스트롭스트룹 (Bjarne Stroustrup) [ C++ 창시자이자 The C++ Programming Language6 저자 ]
- 논리 적으로 간단해야 버그가 숨어들지 못한다. 
- 의존성을 최대한 줄여야 유지보수가 쉬워진다. 
- 오류는 명백한 전략에 의거해 철저히 처리한다. 
- 성능을 최적으로 유지해야 사람들이 원칙 없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다. 
- 깨끗한 코드는 한가지를 제대로 한다. 

By 그래디 부치(Grady Booch) [Object Oriented Analysis and Design with Application 저자]
- 깨끗한 코드는 단순하고 직접 적이다. 
- 깨끗한 코드는 잘쓴 문장처럼 읽힌다. 
- 깨끗한 코드는 오히려 설계자의 의도를 숨기지 않는다. 오히러 명쾌한 추상화와 단순한 제어문으로가득하다.

By 큰 데이브 토마스 (Big Dave Thomas) [ OTI 창립자이자 이크립스 전략의 대부] 

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

- 단위 테스트 케이스와 인수테스트 케이스가 존재한다. 

- 깨끗한 코드에는 의미 있는 이름이 붙는다. 
- 특정 목적을 달성하는 방법은 하나만 제공한다. 

- 의존성은 최소이며 각 의존성을 명확히 정의한다. 

- API는 명확하며 최소로 줄여야한다. 

- 언어에 따라 필요한 모든 정보를 코드만으로 명확히 표현할 수 었기에 코드는 문학적으로 표현해야 마땅하다. 


By 마이클 페더스(Michael Feathers) [Working Effectively with Legacy Code 저자]

- 깨끗한 코드는 많지만 그중에서도 모두를 아우르는 특지응 하나있다. 

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

- 깨끗한 코드는 고치려고 살펴봐도 딱히 손 댈 곳이 없다. 


By 론 제프리스(Ron Jeffries) [Extreme Programming Installed 와 Extreme Programming Adventure in C# 저자]

- 모든 테스트를 통과한다. 

- 중복이 없다. 

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

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

* 같은 작업을 여러번 반복하면 코드가 아이디를 제대로 표현하지 못한다는 증거다. 


By 워드 커닝행(ward Cunningham) [ Wiki 창시자, FIt 창시자 , Extrem Programming 공동 저자, 디자인패턴을 뒤에서 움직이는 전문가, smalltalk와 객체지향 의정신적 지도자, 코드를 사랑하는 프로그래머들의 대부]

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

- 코드가 그문제를 풀기 위한 언어처럼 보인다면 아름다운 코드라 불러도 된다. .


    • 우리는 저자이다.

저자는 독자가 있고 우리에게 독자는 다음에 프로그램을 짜는 프로그래머이다. 



요약!!!


    • 나만의 깨끗한 코드의 정의

- 코드는 단순하고 직접 적이야한다. 

- 의미있는 이름을 사용해야한다.

- 논리적으로 간단해야한다.

- 중복이 없어야한다. 

- 의존성을 최대한 줄여야 한다.

- API 명확하고 최소로 줄여야한다. 

- 클래스, 메서드, 함수등을 취대한 줄인다. 

- 단위 테스트케이스와 인수테스트 케이스가 존재해야한다. 

728x90
반응형

'책- 정리 > Clean Code' 카테고리의 다른 글

Chapter 2장 의미 있는 이름  (0) 2017.01.11
chapter 들어가면서  (0) 2017.01.02
Clean Code란 문엇인가에 대한 고찰  (0) 2017.01.01