[2012 01 28]cleancode 3장
-
Upload
jong-pil-won -
Category
Documents
-
view
453 -
download
2
Transcript of [2012 01 28]cleancode 3장
3 장 함수
2012 01. 28원종필
Clean Code
• 의도를 분명히 표현하는 함수를 어떻게 만들까 ??
• 함수를 어떻게 만들어야 처음 읽는 사람이 내부를 직관적으로 파악할 수 있을까 ??
작게 만들어라
• 함수가 중첩구조가 생길만큼 커져서는 안된다• 들여쓰기 수준은 1,2 단을 넘어서는 안된다• 읽기 쉽고 이해하기 쉬워진다
한 가지만 해라
• 함수는 한 가지만 해야 한다• 한 가지만 하는지 판단법• 의미있는 이름으로 다른 함수를 추출할 수 있다면
여러가지 작업을 하는 것이다• 한가지 작업만 하는 함수는 자연스럽게 섹션으로
나누기 어렵다
함수당 추상화 수준은 하나로
• 함수내 모든 문장이 동일한 추상화 수준에 있어야 한다• 근본 개념과 세부사항을 뒤섞기 시작하면
함수에 세부사항을 점점 더 많이 추가하게 된다
Switch 문
• 정말로 switch 문을 써야 하는 것인지추상 팩토리 (Abstract Factory) 가 필요한 것은 아닌지잘 고려해야 한다
서술적인 이름을 사용하라
• 여러 단어를 사용해 함수 기능을 잘 표현하는 이름을 선택해라
함수 인수
• 인수를 많이 쓰지 말아라 . 직관적으로 사용하기 어렵다• 출력인수는 입력인수보다 이해하기 어렵다• 인수의 수가 많다면 클래스로 선언해서 인수로 넘기는
방법도 사용할 수 있다 . 인수의 개념을 표현하게 된다 .
부수효과를 일으키지 마라
• 부수 효과는 거짓말이다• 함수에서 한가지를 하겠다고 약속하고 남몰래 다른 짓을
하는 것인 안 좋다 .• 함수 호출로는 예상하지 못했던 클래스 변수의 수정 등등 ..
함수를 어떻게 짜야 하는가
• 소프트웨어를 짜는 행위는 글짓기와 비슷하다
• 서투른 초안을 쓰고 다듬어간다 .
• 함수를 짤때도 마찬가지다
• 처음에는 길고 복잡하다
• 코드를 다듬고 , 함수를 만들고 , 이름을 바꾸고 ,
중보을 제거하고 ...
• 최종적으로는 우리가 원하는 깔끔한 함수가 된다 .
Q/A
끝 .