728x90
반응형
Clean Code 3장 (함수)
작게 만들어라!
- 함수를 만드는 규칙은 작게 만드는것이다.
- 20줄도 길다. 이 책의 저자 켄트벡은 java swing의 함수들이 2~3줄 이었다고 한다. (이게 닌자코딩아닌가?)
if/else, while문에 들어가는 블록은 한 줄이어야 한다.
함수를 잘 만드는 원칙
함수는 한가지를 해야한다. 그 한 가지를 잘 해야한다. 그 한가지만을 해야한다.
- 워렌버핏의 주식 투자원칙이 생각나는 말인데, 결론은 제발 한가지만 하자 인것으로...
함수 당 추상화 수준은 하나로! (이해 좀 더 필요)
getHtml()
은 추상화 수준이 높다.String pagePathName = PathParser.render(pagepath);
는 추상화 수준이 중간이다..append('\n')
은 추상화 수준이 아주 낮다.- 한 함수에서 근본개념과 추상개념들을 막 뒤섞으면 안된다.
서술적인 이름을 사용하라 (일관적인 이름을 사용하자)
- 모듈 내에서 같은 문구, 명사, 동사를 사용하는것이 좋다
includeSetupAndTeardownPages, includeSetupPages, includeSuiteSetup
규칙이 보인다.
부수효과를 일으키지 마라
- 하나의 함수에서 한가지 일만 해라의 연장선이다
public boolean checkPassword(String userName, String password){
if(user != User.NULL){
//~~~중략
if("Valid Password".equals(phrase))
{
Session.initialize();
return true;
}
}
}
- 위의 함수에서는 password를 검사하는것처럼 보이지만, session 초기화의 기능도 있다. 원래 명시된 기능 이외에 다른것들을 수정하면 안된다.
오류 코드보다 예외를 사용하라
if(deletePage(page) == E_OK)
보다 try/catch를 사용한 예외처리가 좀 더 낫다.- 모든 오류 처리를 위해 E_OK같은 error Enum을 만들면, 다른 클래스들에도 예외처리를 위해 import를 해야하고, error Enum이 변경시에 모두 수정해야하는 번거로움이 있다.
Try/Catch block은 뽑아내는것이 좋다
별도 함수로 뽑아내서 deletePage() 내부에서 try,catch를 수행하는것이 좋다.
우리팀이 가져가야할 점
- 추상화 수준을 높게 하는게 좀 더 알아보기 쉽고, 단일 함수당 단일기능을 하자! (근데 너무 많은 함수가 있는건 좋게 )
- Switch문을 혐오해서, 프로그램에서 한 번이상 사용하지 않고, 막 감춘다는데.. 여기는 너무 ..
728x90
반응형
'WEB > Clean Code' 카테고리의 다른 글
[Clean Code] 5장. 형식 맞추기 (0) | 2022.02.20 |
---|---|
[Clean Code] 4장. 주석 (0) | 2022.01.23 |
[Clean Code] 3장. 함수 (0) | 2022.01.22 |
[Clean Code] 2장. (의미있는 이름, 요약 : 닌자코딩 금지) (0) | 2022.01.01 |
[Clean Code] 1장. 깨끗한 코드 (0) | 2021.12.26 |