Clean Code (함수)

최태선·2022년 3월 28일
0

CleanCode

목록 보기
1/4
post-thumbnail

함수인수는 적을수록 좋고, 최대한 3개를 넘기지 마라.

최선은 입력인수가 없는 것이고, 차선은 1개뿐인 것이다. 출력인수는 없어야한다.(코드를 이해하기 어렵게 만든다)

함수로 부울값을 넘기는 것은 끔찍하다.

함수가 한꺼번에 여러가지를 처리한다고 공표하는셈. 하나의 함수는 하나의 기능만 해야한다.

인수가 2~3개 필요하다면 이를 줄일수 있는 방법

1) 인수를 클래스로 묶어라
2) 가변인수를 사용해라

함수 의미를 명확히 하기위해서는 함수명을 잘 지어야한다.

1) 의미가 분명하게 지을것
2) 함수 이름에 인수를 넣을것

assertEquals ( expected, actual) 보다는 asserrExpectedEqualsActual(expected,actual)이 좋다. (순서를 기억할 필요가 없기 때문)

불가피하게 함수가 두가지 일을 해야한다면 함수명에 반드시 써라

명령과 조회를 분리해라

if(set("username","unclebob"))...

이렇게 사용하면 set이 설정하는 함수인지, 설정되어있는지 확인하는 함수인지 이해하기 어렵다.

오류코드말고 예외를 사용해라. 이때 try catch도 혼란을 야기하니 try catch를 별도 함수로 빼라.

public void delete(Page page)
{
	try
    {
    	deletePageAndAllReferences(page);
    }
    catch(Exception e)
    {
    	logError(e);
    }
}

private void deletePageAllReference(Page page) throws Exception
{
	deletePage(page);
    registry.deleteReference(page.name);
    configKeys.deleteKey(page.name.makeKey());
}

private void logError(Exception e)
{
	logger.log(e.getMessage());
}

delete는 모든 오류를 처리하면서 deletePageAllReference() 함수를실행하고, 모든 동작은 deletePageAllReference() 에서 실행한다.

반복하지 마라

반복되는 알고리즘을 if문으로 계속 나눠서 처리하면 알고리즘을 바꿀때 전부 다 바꿔야하고, 실수가 발생하기 쉽다.

구조가 큰 함수에서는 break나 continue를 피해라.

코드는 논문쓰기와 비슷하다.

초안을 작성하고, 그것을 다듬는다. 처음부터 좋은 코드를 쓸 수 없다.

profile
최태선입니다

0개의 댓글