클린 코드(1~3장)

3645 단어 beginnerscareer

Clean Code라는 책은 이해하기 쉽고 유지 관리하기 쉬운 코드를 작성하는 방법에 대해 설명합니다. Leetcode 이후의 다음 단계인 것 같습니다. 지뢰 찾기 게임의 예를 살펴보겠습니다. 왼쪽의 예를 이해할 수 있습니까? 오른쪽이 이해하기 쉬웠습니까?


이 책의 처음 세 장은 입문서로서 1. 깨끗한 코드, 2. 의미 있는 이름, 3. 기능을 다룹니다.

머리말


클린 코드의 철학


  • 작은 것이 중요합니다. 그럼에도 불구하고 그들의 가치는 작지 않습니다. 세부 사항에 대한 주의는 전문성의 중요한 토대입니다. 작은 것의 실천을 통해 큰 것에 대한 능숙함과 신뢰를 얻는다.
  • 한 평생, 많은 마스터. 무엇이 좋은 코드를 만드는지에 대한 관점은 사람마다 다릅니다. 중요한 것은 판단력을 높이는 것입니다.
  • 실천하십시오. 자전거를 타는 것과 같이, 어떻게 작동하는지에 대한 모든 물리학 방정식이 있더라도 처음 탈 때 여전히 넘어질 것입니다. 연습하고, 실수하고, 배우십시오.

  • 책의 분할



    1부에서는 모범 사례, 2부에서는 사례 연구(이를 통해 작업해야 합니다!), 3부에서는 얻은 직관에 대해 설명합니다.

    1장: 깨끗한 코드



    잘못된 코드는 일반적으로 너무 빨리 개발하려고 하기 때문에 발생합니다. 나중에 다시 정리하겠다고 하면 대개는 그렇지 않습니다. 코드가 뒤틀리게 됩니다. 각각의 새로운 기능은 문제를 해결하기 위해 더 많은 왜곡이 필요합니다. 시간이 지남에 따라 엉망진창이 너무 커서 청소하기가 엄청나게 어려워집니다.
    개발자로서 우리는 일을 깨끗하게 유지하는 데 시간이 필요한 경우 PM에게 개발 속도를 늦추라고 말하는 것이 중요합니다. 그렇지 않으면 너무 빨리 제공할 수 있다는 나쁜 기대치를 설정합니다.

    You know you are working on clean code when each routine you read turns out to be pretty much what you expected. You can call it beautiful code when the code also makes it look like the language was made for the problem. - Ward Cunningham, inventor of Wiki



    깨끗한 코드가 중요한 이유는 무엇입니까? Emacs 재생에서 읽기: 코드 작성 시간은 10:1의 야구장에 있었습니다.

    보이 스카우트 규칙



    Leave the campground cleaner than you found it.



    체크아웃할 때보다 조금 더 깔끔하게 코드를 체크인하면 코드가 썩지 않을 것입니다. 청소는 거창할 필요가 없습니다. 하나의 변수 이름을 더 좋게 변경하고, 너무 큰 함수 하나를 분해하고, 약간의 중복을 제거하고, 하나의 복합 if 문을 정리합니다.

    2장: 의미 있는 이름




    검색 가능한 이름 사용




    메서드 및 클래스 이름



    클래스 이름은 명사여야 합니다(예: Customer, Account, AddressParser). 메서드 이름은 동사여야 합니다(예: postPayment, deletePage 또는 save).

    "추상화 수준" 점프를 피하십시오




    3장: 함수



    함수는 3000줄, 100줄이 될 수 있지만 20줄이 될 수는 없습니다. 그리고 그들은 한 가지 일만 해야 합니다.
    결정하는 방법?
    아래 코드를 보면 3가지 일을 한다는 것을 쉽게 알 수 있습니다.
  • 페이지가 테스트 페이지인지 확인합니다.
  • 그렇다면 설정 및 분해를 포함합니다.
  • 페이지를 HTML로 렌더링합니다.

  • 3가지가 명시된 함수 이름 아래의 추상화 수준이라는 점에 유의하십시오. 따라서 함수는 한 가지 일을 합니다.
    함수가 "한 가지"이상을 수행하고 있음을 알 수 있는 또 다른 방법은 단순히 구현의 재진술이 아닌 이름으로 함수에서 다른 함수를 추출할 수 있는지 여부입니다.

    들여쓰기 수준은 2보다 크지 않아야 합니다.
    인수는 0으로 유지하는 것이 가장 좋습니다. 3개 이상(다항식)은 매우 특별한 정당화가 필요합니다.
    두 인수 함수를 참조하십시오.

    assertEquals(expected, actual)
    


    예상과 실제를 혼합하는 것이 얼마나 쉬운지 확인하십시오.

    인수 개체를 줄이는 방법:

    // Dont use this
    Circle makeCircle(double x, double y, double radius);
    // Use this
    Circle makeCircle(Point center, double radius);
    

    좋은 웹페이지 즐겨찾기