본문 바로가기
공부쟁이/파이썬 클린코드

Ch1. 소스.코드 포매팅과 도구

by 헤옹스 2019. 9. 14.

* 클린코드는 필수적인 것.

   - 코드의 품질을 관리하지 않는다면 결과적으로 기술 부채가 누적되어 실패한 프로젝트가 될 가능서이 높아짐.

   - 포매팅. 문서화.

 

* 훌륭한 코딩 가이드라인을 준수하는 것이 중요함.

   - 코드를 문서와 일치시키려면 지속적인 작업이 필요함.

   - 이를 자동화하기 위한 도구들....에는 어떤것들이 있을까?

 

****이번 장의 목표****

* 클린코드란 무엇이고

* 왜 중요한지.

* 왜 포매팅과 문서화가 중요한지

* 이 과정을 어떻게 자동화하는지

 

클린코드의 의미

* 정적 분석기

체커(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을 대체하는 것일까?기본 품질 향상을 위한 도구 설정.