간결한 함수 작성하기
- 함수는 한가지의 기능에 충실한다
- 작게 쪼개고 함수 내 추상화 수준을 동일하게 맞춘다
함수 인수
- 인수는 0~2개가 적당하다
- 3개 이상인 경우 객체를 인자로 넘기는 것도 고려해보자
makeCircle(x, y, radius)
makeCircle(center, radius)
부수 효과 없는 함수
- 값을 반환하는 함수가 외부 상태를 변경하는 경우
def checkPassword(username, password):
user = User.findByName(username)
if user != User.NULL:
codedPhrase = user.getPhraseEncodedByPassword()
phrase = sryptograper.decrypt(codedPhrase, password)
if"Valid Password".equals(phrase):
Session.initialize()
return true
return false
- Session.initialize() -> 함수와 관계 없이 외부상태롤 변경시킴