클린 코드(1~3장)
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가지 일을 한다는 것을 쉽게 알 수 있습니다.
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);
Reference
이 문제에 관하여(클린 코드(1~3장)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/c6z3h/clean-code-chapter-1-3-5b89텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)