팀원 모두가 쉽게 이해할 수 있는 코드는 깨끗한 것입니다. 클린 코드는 원래 작성자가 아닌 개발자가 읽고 개선할 수 있습니다. 이해 가능성에는 가독성, 변경 가능성, 확장성 및 유지 관리 가능성이 따릅니다.
일반 규칙
- 표준 규칙을 따르세요.
- 단순하게 유지하세요. 단순한 것이 항상 더 좋습니다. 복잡성을 최대한 줄입니다.
- 보이스카우트 룰. 처음보다 깨끗해진 캠핑장을 떠나보세요.
- 항상 근본 원인을 찾으세요. 항상 문제의 근본 원인을 찾으세요.
디자인 규칙
- 구성 가능한 데이터를 높은 수준으로 유지하세요.
- if/else 또는 switch/case보다 다형성을 선호합니다.
- 멀티스레딩 코드를 분리합니다.
- 과도한 구성을 방지합니다.
- 의존성 주입을 사용하세요.
- 데메테르의 법칙을 따르세요. 클래스는 직접적인 종속성만 알아야 합니다.
이해하기 위한 팁
- 일관성을 유지하세요. 특정한 방식으로 작업을 수행한다면 유사한 작업도 모두 동일한 방식으로 수행하세요.
- 설명변수를 사용하세요.
- 경계 조건을 캡슐화합니다. 경계 조건을 추적하기가 어렵습니다. 처리를 한곳에 담으세요.
- 기본 유형보다 전용 값 객체를 선호합니다.
- 논리적 종속성을 피하세요. 같은 클래스의 다른 항목에 따라 올바르게 작동하는 메서드를 작성하지 마세요.
- 부정 조건문을 사용하지 마세요.
이름 규칙
- 설명적이고 명확한 이름을 선택하세요.
- 의미 있는 구별을 하세요.
- 발음하기 쉬운 이름을 사용하세요.
- 검색 가능한 이름을 사용하세요.
- 매직 넘버를 명명된 상수로 바꾸세요.
- 인코딩을 피하세요. 접두사를 추가하거나 정보를 입력하지 마세요.
함수 규칙
- 작습니다.
- 한 가지만 하세요.
- 설명이 포함된 이름을 사용하세요.
- 더 적은 인수를 선호합니다.
- 부작용이 없습니다.
- 플래그 인수를 사용하지 마세요. 플래그 없이 클라이언트에서 호출할 수 있는 여러 개의 독립적인 메서드로 메서드를 분할합니다.
댓글 규칙
- 항상 코드로 자신을 설명하려고 노력하세요.
- 중복되지 마세요.
- 눈에 띄는 노이즈를 추가하지 마세요.
- 닫는 중괄호 주석을 사용하지 마세요.
- 코드를 주석 처리하지 마세요. 그냥 제거하세요.
- 의도에 대한 설명으로 사용하세요.
- 코드 설명에 사용하세요.
- 결과에 대한 경고로 사용하세요.
소스 코드 구조
- 개념을 세로로 분리하세요.
- 관련 코드는 세로로 조밀하게 나타나야 합니다.
- 용도에 가까운 변수를 선언하세요.
- 종속 함수는 닫혀 있어야 합니다.
- 유사한 기능이 가까이 있어야 합니다.
- 기능을 아래쪽 방향으로 배치하세요.
- 줄을 짧게 유지하세요.
- 가로 정렬을 사용하지 마세요.
- 공백을 사용하여 관련된 항목을 연관시키고 약한 관련성을 분리합니다.
- 들여쓰기를 깨지 마세요.
객체 및 데이터 구조
- 내부 구조를 숨깁니다.
- 데이터 구조를 선호합니다.
- 하이브리드 구조(객체 반, 데이터 반)를 피하세요.
- 작아야 합니다.
- 한 가지만 하세요.
- 인스턴스 변수 수가 적습니다.
- 기본 클래스는 파생 상품에 대해 아무것도 몰라야 합니다.
- 동작을 선택하기 위해 일부 코드를 함수에 전달하는 것보다 많은 함수를 갖는 것이 더 좋습니다.
- 정적 메서드보다 비정적 메서드를 선호하세요.
테스트
- 테스트당 하나의 어설션.
- 읽을 수 있습니다.
- 빠릅니다.
- 독립.
- 반복 가능.
코드 냄새
- 강성. 소프트웨어는 변경하기 어렵습니다. 작은 변화가 연속적인 변화를 가져옵니다.
- 취약성. 단일 변경으로 인해 소프트웨어가 여러 곳에서 중단됩니다.
- 부동성. 관련된 위험과 많은 노력으로 인해 코드의 일부를 다른 프로젝트에서 재사용할 수 없습니다.
- 불필요한 복잡성.
- 불필요한 반복.
- 불투명도. 코드가 이해하기 어렵습니다.
그게 많은 것 같아요. 하지만 그 이상이 더 있습니다.
전체 책을 읽어보세요.
요약을 읽어주셔서 감사합니다. 도움이 되기를 바랍니다.
웹사이트:
https://kaleemelahi.co
CoF를 구매하세요:
https://buymeacoffee.com/kaleemelahi
위 내용은 클린 코드 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!