기록장

[클린코드] 3장-함수 본문

학습 및 기록/IT서적_기록

[클린코드] 3장-함수

HJJJJJ 2023. 9. 18. 00:01
728x90

작게 만들어라

함수를 만드는 규칙은 작게

둘쨰 규칙은 더 작게

if/else/while 문등 블록은 한 줄이어야한다는 의미

이래야 읽고 이해하기 쉬워짐

 

한 가지만 해라

함수는 한가지를 해야 한다 그 한가지를 잘 해야 한다 

 

함수당 추상화 수준은 하나로

위에서 아래로 코드 읽기 : 내려가기 규칙

 

Switch문

얘는 작게 만들기 어려움 , 한가지 작업만 하는 것도 어려움

 

서술적인 이름을 사용 하라

-코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다

 

함수 인수

함수에서 이상적인 인수 개수는 0개(무항)

다음은 1개(단항), 다음은 2개(이항), 3개(삼항)가능한 피하는 편이 좋음

4개 이상은 사용x

인수는 어렵고 인수는 개념을 이해하기 어렵게 만들기 때문

 

부수 효과를 일으키지마라

→ 아 이거 내가 많이 하는거,,, 고쳐야지

 

명령과 조회를 분리하라

 

오류 코드보다 예외를 사용하라

-Try/Catch 블록 뽑아내기

-오류처리도 한 가지 작업이다

 

반복하지마라

-중복은 모든 sw에서 악의 근원

 

함수를 어떻게 짜죠?

sw를 짜는 행위는 글짓기와 비슷하다

논문이나 기사를 작성할 때 생각을 기록한 후 읽기 좋게 다듬는다

초안은 대게 서투르고 어수선하므로 원하는 대로 읽힐 때 까지 말을 다듬고 문장을 고치고 문단을 정리한다

함수도 처음에는 길고 복잡하고 들여쓰기 단계도 많고 중복된 루프도 많고 인수 목록도 길다

—>이걸 빠짐 없이 테스트하는 단위 테스트 케이스도 만든다

—>코드를 다듬고 함수를 만들고 이름을 바꾸고 중복을 제거하고 메서드를 줄이고 순서를 바꿈

—>때로는 전체 클래스를 쪼개기도 함 이 와중에도 코드는 항상 단위 테스를 통과함

 

 

결론

모든 시스템은 프로그래머가 설계한 언어로 만들어짐

함수는 동사며, 클래스는 명사다

시스템에서 발생하는 모든 동작을 설명하는 함수 계층이 그 언어에 속한다

재귀라는 기교로 그 동작은 바로 그 도메인에 특화된 언어를 사용해 자신만의 이야기를 풀어간다

—>작성하는 함수가 분명하고 정확한 언어로 깔끔하게 같이 맞아떨어져야 이야기를 풀어가기 쉬워진다

728x90
Comments