ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Clean Code / 02 22 2022
    읽은 책 기록 2022. 2. 22. 13:47

     

     

    함수를 잘 작성하는 법 첫 번째, 바로 최대한 작게 만드는것이다.

     

    그 함수 하나가 하나의 행위를 표현하며 함수의 이름도 최대한 그 행위에 맞게 작성돼야한다.

     

    또한 함수 내부의 중첩 구조가 들여쓰기 2 단 이상을 넘어가면 곤란하다.

     

    그 뜻은 바로 함수가 최소로 작게 만들어지지 않았음을 의미한다.

     

    함수가 하나의 작업만 하게만드려면 모든 문장의 추상화 수준이 동일해야한다.

     

     

    두 번 째, 코드가 위에서부터 아래로 이야기처럼 읽혀야한다.

     

    그리고 아래로 갈수록 추상화 수준이 더 구체적으로 기술돼야한다.

     

    즉, 프로세스가 어떻게 수행돼야하는지 더 구체적인 방법이 나와야한다는것이다.(맞는지 모르겠음. 이렇게 이해함)

     

     

    세 번째, 함수의 이름은 서술적인 이름을 사용한다.

     

    직관적으로 바로 이 함수의 용도가 무엇인지 알 수 있어야한다.

     

    짧고 이해하기 어려운 이름보다, 길고 이해하기 쉬운 함수 이름이 낫다.

     

    따라서 함수 이름을 길게 짓는것을 두려워하지말자.

     

     

    네 번 째, 인수는 적을수록 좋다.

     

    인수가 많을수록 해당 함수가 처리하는 행위가 비례한다는 방증이며,

     

    독자가 코드를 읽을 때 여러개의 인수로 인해 파악해야할 문맥이 많아지기때문에

     

    인수는 최대한 줄이도록한다.

     

     

    다섯 번 째, 메소드 이름은 동사, 인수는 명사로 지어야 깔끔함을 잊지말자.

     

    예) writeField(name) 

     

    이렇게 작성하면 인수로 함수가 무엇을 할 것인지 명확하다.

     

    'name이라는 필드 값을 작성한다' 라고 우리는 직관적으로 이해할 수 있다.

     

     

    여섯 번 째, 로직의 반복을 피해라.

     

    역시 반복되는 코드는 따로 함수를 정의해 처리해주자.

     

     

    결론.

     

    소프트웨어를 작성하는 것은 글짓기와 비슷하다.

     

    생각으로 초안을 만들고, 초안을 계속 다듬어 깔끔한 문장, 문단을 만든다.

     

    코드 역시 한 번에 깔끔한 코드를 작성할 수 없다.

     

    계속 코드도 중복을 제거하고 알맞은 코드 이름을 붙이는 작업을 이행해야

     

    깔끔한 글 같은 코드가 만들어진다.

     

    물론 나같이 성질 급한 사람은 작동되면 바로 다른 기능 구현으로 넘어가버려서..

     

    장인 정신으로 코드를 계속 다듬는것을 좋아하진않을테지만, 노력해봐야겠다.

     

     

    이해가 잘 안가는점 

     

    1. 추상화라는 개념이 막연하고, 행위를 추상화해 쪼갠다는 개념이 아직 어렵다.

     

    또 그 쪼개는데는 얼마나 잘개 분리해야하는지(책에는 최대한 작게라고 표현돼있지만)

     

    감이 잘 안잡힌다.

     

    2. 전반적으로 예시 코드의 예와 설명을 같이 이해하기가 힘들었다.

     

    몇 번 다시 읽어봐야할것같다.

    '읽은 책 기록' 카테고리의 다른 글

    Clean Code / 02 28 2022  (0) 2022.02.28
    Clean Code / 02 25 2022  (0) 2022.02.25
    Clean Code / 02 21 2022  (0) 2022.02.21
    Clean Code / 02 20 2022  (0) 2022.02.20
    Clean Code / 02 19 2022  (0) 2022.02.19
Designed by Tistory.