* 클린코드는 필수적인 것.
- 코드의 품질을 관리하지 않는다면 결과적으로 기술 부채가 누적되어 실패한 프로젝트가 될 가능서이 높아짐.
- 포매팅. 문서화.
* 훌륭한 코딩 가이드라인을 준수하는 것이 중요함.
- 코드를 문서와 일치시키려면 지속적인 작업이 필요함.
- 이를 자동화하기 위한 도구들....에는 어떤것들이 있을까?
****이번 장의 목표****
* 클린코드란 무엇이고
* 왜 중요한지.
* 왜 포매팅과 문서화가 중요한지
* 이 과정을 어떻게 자동화하는지
클린코드의 의미
* 정적 분석기
체커(checker) : 문법 체크
린터(linter) : 취약한 부분을 찾아내기.
* 클린코드는 기계나 스크립트가 판단할 수 있는것이 아님. 전문가가 판단할 수 있다.
* 프로그래밍 언어란 :
인간의 아이디어를 컴퓨터에게 전달하는것.(X)
아이디어를 다른 개발자에게 전달하는 것.(O)
* 파이썬의 주요 개념을 이해한 다음, 좋은 코드와 나쁜코드의 차이점을 확인하고,
* 훌륭한 코드와 좋은 아키텍처의 특징을 식별하여 자신만의 정의를 하는 것이 중요함..!
=> 이 책을 읽은 후에는 스스로 코드를 판단하고 분석할 수 있을 것.
클린코드의 중요성
- 유지보수성 향상, 기술 부채의 감소, 애자일 개발을 통한 효과적인 작업 진행, 성공적인 프로젝트 관리.
- 민첩한 개발과 지속적인 배포가 가능해짐.
-
클린코드에서 코드 포매팅의 역할
- PEP-8 : Python Enhancement Proposal. 파이썬 개선을 위한 제안서.
고유번호 8번에 해당하는 PEP-8은, Style Guide for Python Code에서 코딩커넨션에 대한 내용을 다룬다.
프로젝트 코딩 스타일 가이드 준수
"일관성"
표준화된 구조. 구조화된 패턴을 가진 코드.
- 신속하게 패턴을 파악할 수 있으며, 오류 감지하는 것이 훨씬 쉬워짐. 훨씬 빠르게 이해할 수 있음.
"PEP-8"
: 파이썬이 따라야 하는 코딩 스타일.
- 검색 효율성(Grepablilty) :
- 일관성 : 코드 레이아웃, 문서화, 이름 작명 규칙 증이 모든 저장소에서 동일하담ㄴ 훨씬 쉽게 익숙해질 것이다.
- 코드 품질 : 코드를 구조화하여 한눈에 코드를 이해하고, 버그와 실수를 쉽게 찾을 수 있다.
Docstring과 어노테이션
* 주석(comment)을 다는 것은 나쁜 습관이다.
1) 주석은 코드로 아이디어를 제대로 표현하지 못했음을 나타내는 것이다.
2) 오해의 소지가 있다.
-> 외부 라이브러리에 오류가 있다면 짧은 주석을 다는 것이 허용된다.
어노테이션
Mypy 같은 도구를 사용해 타입 힌트 등의 자동화된 검증을 실행할 수 있다.
Docstring
파이썬 코드 안에 직접 문서화 하는 것.(소스코드에 포함된 문서(documentation).)
- 리터럴 문자열.
- 데이터 타입이 무엇인지 설명하고 예제를 제공할 수 있다.
- 코드의 특정 컴포넌트(모듈, 클래스, 메서드 또는 함수)에 대한 문서화.
- 가능한 많은 docstring을 추가하는 것이 좋다.
- 파이썬이 동적 타이핑을 하기때문에(함수는 파라미터의 갑승로 무엇이든 사용할 수 있음.)
- 파라미터의 타입을 체크하거나 강요하지 않기때문에, 예상되는 함수의 입력과 출력을 문서화하면 함수가 어떻게 동작하는 지 이해하기 쉬움.
어노테이션어노테이션은 docstring을 대체하는 것일까?기본 품질 향상을 위한 도구 설정.