[2012 01 28]cleancode 3장

10
3장 장장 2012 01. 28 원원원 Clean Code

Transcript of [2012 01 28]cleancode 3장

Page 1: [2012 01 28]cleancode 3장

3 장 함수

2012 01. 28원종필

Clean Code

Page 2: [2012 01 28]cleancode 3장

• 의도를 분명히 표현하는 함수를 어떻게 만들까 ??

• 함수를 어떻게 만들어야 처음 읽는 사람이 내부를 직관적으로 파악할 수 있을까 ??

Page 3: [2012 01 28]cleancode 3장

작게 만들어라

• 함수가 중첩구조가 생길만큼 커져서는 안된다• 들여쓰기 수준은 1,2 단을 넘어서는 안된다• 읽기 쉽고 이해하기 쉬워진다

Page 4: [2012 01 28]cleancode 3장

한 가지만 해라

• 함수는 한 가지만 해야 한다• 한 가지만 하는지 판단법• 의미있는 이름으로 다른 함수를 추출할 수 있다면

여러가지 작업을 하는 것이다• 한가지 작업만 하는 함수는 자연스럽게 섹션으로

나누기 어렵다

Page 5: [2012 01 28]cleancode 3장

함수당 추상화 수준은 하나로

• 함수내 모든 문장이 동일한 추상화 수준에 있어야 한다• 근본 개념과 세부사항을 뒤섞기 시작하면

함수에 세부사항을 점점 더 많이 추가하게 된다

Switch 문

• 정말로 switch 문을 써야 하는 것인지추상 팩토리 (Abstract Factory) 가 필요한 것은 아닌지잘 고려해야 한다

Page 6: [2012 01 28]cleancode 3장

서술적인 이름을 사용하라

• 여러 단어를 사용해 함수 기능을 잘 표현하는 이름을 선택해라

함수 인수

• 인수를 많이 쓰지 말아라 . 직관적으로 사용하기 어렵다• 출력인수는 입력인수보다 이해하기 어렵다• 인수의 수가 많다면 클래스로 선언해서 인수로 넘기는

방법도 사용할 수 있다 . 인수의 개념을 표현하게 된다 .

Page 7: [2012 01 28]cleancode 3장

부수효과를 일으키지 마라

• 부수 효과는 거짓말이다• 함수에서 한가지를 하겠다고 약속하고 남몰래 다른 짓을

하는 것인 안 좋다 .• 함수 호출로는 예상하지 못했던 클래스 변수의 수정 등등 ..

Page 8: [2012 01 28]cleancode 3장

함수를 어떻게 짜야 하는가

• 소프트웨어를 짜는 행위는 글짓기와 비슷하다

• 서투른 초안을 쓰고 다듬어간다 .

• 함수를 짤때도 마찬가지다

• 처음에는 길고 복잡하다

• 코드를 다듬고 , 함수를 만들고 , 이름을 바꾸고 ,

중보을 제거하고 ...

• 최종적으로는 우리가 원하는 깔끔한 함수가 된다 .

Page 9: [2012 01 28]cleancode 3장

Q/A

Page 10: [2012 01 28]cleancode 3장

끝 .