book diary

플래그 인수_CleanCode_52p

작은코딩 2023. 6. 23. 00:28

 

 

플래그 인수는 추하다. 함수로 부울 값을 넘기는 관례는 정말로 끔찍하다. 왜냐고? 함수가 한꺼번에 여러 가지를 처리한다고 대놓고 공표하는 셈이니까! 플래그가 참이면 이걸 하고 거짓이면 저걸 한다는 말이니까!

-cleancode 52p 중

 

 

아니 정말로? 개발하면서 종종 option 같은 느낌으로 boolean 값을 인자로 받아서 쓰는 경우가 있었는데,, 정말로 끔찍하다는 표현을 마주하니 속으로 뜨끔했다.

 

조건에 따른 로직을 서로 다른 함수로 만들기엔 코드 길이가 길어지거나, 일부 중복된 코드가 있고 boolean 값에 따라 추가 로직이 있는 경우를 그렇게 사용했는데 책에서 하는 말처럼 여러 가지를 한다고 대놓고 공표하는 셈이었다. 

 

생각해 보면 boolean의 경우뿐 아니라 enum 값과 같이 인자가 A or B or C 일 때나, 인자를 받는 경우를 상정하고 함수를 만들었다가 나중에 인자가 없는 경우의 예외처리를 해줘야 하는 등 비슷한 상황이 있었다.

 

앞서서 함수를 작게 그리고 더 작게 만들라는 내용이 있었는데, 플래그 인수를 받는 함수는 적어도 2개 이상의 함수로 쪼갤 수 있었고 함수 이름도 좀 더 자세하게 지을 수 있었다.

 

오늘도 내 코드에 개선할 점을 찾았다.

여유가 있을 때 그리고 생각날 때 조금씩 코드를 바꿔보자

'book diary' 카테고리의 다른 글

형식 맞추기_CleanCode_95p  (0) 2023.07.14
좋은 주석, 나쁜 주석_CleanCode_70p  (0) 2023.06.28
Read book_CleanCode (클린코드 ~ 9p)  (0) 2022.01.21