검은색 코드와 일치하는 파이톤 코드
우리는 코드 스타일을 공유하는 데 도움을 받은 지역 사회의 예가 있다.
gofmt
(즉'Go 포맷')는 이미 이 언어의 핵심 도구가 되었다.그들의 핵심 팀은 모든 사람들이 비슷해 보이는 코드를 읽는 데 이득을 볼 수 있도록 규칙을 사용하기로 결정했다.Learn more gofmt
는 스타일 오류를 자동으로 복구하는 도구입니다.PEP 8은 스타일 가이드입니다.그것은 도구가 아니다.도구가 아닌 스타일 가이드에 주목한 결과 일치하지 않는 코드가 있을 수 있습니다.일반적으로 PEP 8 스타일 코드를 만드는 커뮤니티 솔루션은 다음과 같은 lint 도구를 사용합니다.
pycodestyle(원명pep8)
flake8(Flake 8은pycodestyle과pyflakes를 묶은 포장기).
What happens when a project adopts a tool that automatically sets the code style?
지금은 Black를 소개하기에 가장 좋은 시기다.
검은색은 파이톤
gofmt
과 같다.파이썬 핵심 팀이 공식적으로 인정하는 도구는 아니지만 코드를 자동으로 포맷합니다.Black의 형식 규칙은 PEP 8의 하이퍼집합입니다.Black 을 사용하면 PEP 8 규정 준수 및 Black 팀에서 유지 보수 가능한 코드를 생성하는 데 도움이 될 수 있는 몇 가지 스타일을 무료로 선택할 수 있습니다.
Black 팀은 이 도구를 "타협하지 않는 코드 포맷 프로그램"이라고 치켜세웠다.실제로 검은색 설정 옵션이 스타일에 영향을 미치지 않는다는 뜻이다.코드 형식을 제한하는 옵션은 좋은 일이다™. 옵션이 매우 적기 때문에, 서로 다른 항목의 검은색 형식 코드는 매우 비슷해 보인다.
검은색을 사용하면 비슷한 코드에서 이득을 볼 수 있고, 익숙하지 않은 스타일 선택이 아니라 내용에 더 많은 관심을 기울일 수 있다.
Commonly formatted code aids our brains to focus on the problem and code solution, rather than get distracted by code structure and minor stylistic differences.
검은색 사용
도구를 시작하려면
pip
를 사용하여 설치합니다.$ pip install black
나는 venv 파이톤 패키지를 가상 환경에 설치하는 것을 권장한다.Python 프로젝트 관리를 돕기 위해 Pipenv 같은 도구를 사용할 수 있습니다.Black을 설치하면 셸에
black
라는 새 명령줄 도구를 가지고 시작합니다!(직접 시도하기 전에 블랙이 코드 파일을 변경할 수 있다는 것을 일깨워 준다. 만약 당신이 한번 시도하고 싶다면 Git 같은 버전 제어 도구를 사용하거나 복사본에서 작업을 시작하는 것을 강력히 권장한다.)
Black은 Python 코드의 단일 파일이나 전체 디렉터리를 처리할 수 있습니다.
$ black my_file.py
All done! ✨ 🍰 ✨
1 file left unchanged.
$ black my_package/
All done! ✨ 🍰 ✨
108 file left unchanged.
이모티콘귀여웠어검은색이 변하지 않을 때 출력은 짧고 직접적이다.Black이 코드를 변경하면 변경 내용을 간결하게 요약합니다.
$ black my_package/
reformatted /Users/matt/projects/my_package/some_file.py
All done! ✨ 🍰 ✨
1 file reformatted, 107 files left unchanged.
나는 이 출력을 정말 좋아한다. 왜냐하면 이것은 나에게 내가 관심을 가질 수 있는 모든 것을 알려주고, 이와 같은 도구에 자주 잠입하는 소음을 제거하기 때문이다.명령줄에서 Black을 실행하는 것은 좋지만 편집기에서 직접 실행하는 것이 좋습니다.고맙게도, 이 문서들은 많은 인기 편집기 (내가 가장 좋아하는, Vim 포함) editor configuration 를 포함하고 있다.
비엠을 위해 검은색 플러그인을 설치한 후, 저장할 때 포맷할 수 있도록 내
vimrc
를 수정했습니다. 포맷 코드에서 바로 이득을 볼 수 있습니다." Run Black on save.
autocmd BufWritePre *.py execute ':Black'
팀에서 블랙 사용
지난 절에서는 개인 차원에서 검은색을 어떻게 사용하는지 소개했다.프로젝트 개발팀이 어떻게 Black을 함께 사용할 수 있습니까?두 가지 주제를 살펴보겠습니다.
지속적인 통합을 위한 블랙(CI)
만약 당신이 소프트웨어 프로젝트를 개발하는 팀에서 일하고 지속적인 통합을 사용하지 않는다면 (어서!)Travis CI 또는 Circle CI 등의 서비스를 고려하다.약간의 설정을 거친 후 지속적인 통합 도구와 서비스는 버그 검사, 자동 실행 테스트와 구축 코드를 통해 많은 시간을 절약할 수 있다.
CI의 중요한 용도는 피면 검사에 쓰인다.Lint는 자동화 도구가 매우 잘 보고하는 소프트웨어 문제이다.
너는 이것이 어떻게 된 일인지 알아맞힐 수 있니?Black 모드는 CI 검사를 직접 지원합니다!
$ black --check my_package/
would reformat /Users/matt/projects/my_package/some_file.py
All done! 💥 💔 💥
1 file would be reformatted, 107 files would be left unchanged.
--check
옵션을 사용하여 CI 생성 과정에 검은색을 추가하면, 이 도구는 코드 형식에 맞지 않는 코드를 보고하고 CI 생성에 실패합니다.이것은 듣기에 좋은 일이 아닐 수도 있지만, 확실히 그렇다.check 옵션은 팀에서 일치하는 스타일의 코드를 생성하는 데 도움이 됩니다.그것은 높은 코드의 질을 유지할 수 있는 보호이다.
Git 사전 제출 갈고리처럼 검음
Git는 Git 워크플로우(시스템에서 "갈고리"라고 함)의 다양한 위치에서 특수 스크립트를 실행할 수 있습니다.이 스크립트들은 당신이 하고 싶은 일을 할 수 있고 이론적으로는 팀의 개발 절차를 도울 수 있다.
나는 일찍이 이 갈고리들이 팀에 그리 유용하지 않다고 생각했다.나의 신념은 한 팀이 이 갈고리 스크립트를 버전 제어에 추가할 수 없기 때문에 모든 팀 구성원에게 이 스크립트를 적용할 수 없다는 것이다.
그리고 찾았어pre-commit.예비 제출은 갈고리 스크립트를 팀에 쉽게 접근할 수 있도록 한다.어떻게 써요?
$ pre-commit install
이 명령이 있으면pre-commit은 개발자가 팀 단계에서 갈고리에 접근하는 데 필요한 모든 것을 설치할 수 있습니다.pre-commit install
는 모든 스크립트를 미리 제출하여 관리하는 부트 명령입니다.설치 명령을 실행하면pre-commit는
.pre-commit-config.yaml
파일을 사용하여 서로 다른 Git 갈고리 점에서 무엇을 할지 결정합니다.이것은 팀에 권한을 부여했다.
.pre-commit-config.yaml
는 원본 코드 관리에 추가할 수 있고 팀은 공유 설정 선택을 할 수 있기 때문이다.그중의 하나는...drumroll 제발...블랙 구성!이 설정에 대한 자세한 내용은 문서의 Version control integration 섹션에서 설명하지만 간단한 버전
.pre-commit-config.yaml
에는 다음과 같은 내용이 추가됩니다.repos:
- repo: https://github.com/ambv/black
rev: stable
hooks:
- id: black
language_version: python3.7
pre-commit이 설치된 개발자의 경우 Git를 사용하여 commit을 실행하면 다음과 같은 출력이 생성됩니다.$ git commit
black....................................................................Failed
hookid: black
Files were modified by this hook. Additional output:
reformatted my_package/some_file.py
All done! ✨ 🍰 ✨
1 file reformatted.
CI의 코드 형식 문제를 포착하는 것이 좋으며, 코드가 원본 코드 제어에 제출되기 전에 포착하는 것이 좋습니다.검은색으로 칠할게요.
본문에서, 나는 당신에게 어떻게 검은색을 사용하여 코드를 포맷하는지 보여 주었습니다.팀에서 일한 적이 없으면 일치된 코드 형식의 가치를 표현하기 어렵지만, 공유 스타일의 장점을 상상할 수 있기를 바랍니다.
자신이 도구를 사용할 때, Black은 미래에 자신의 코드를 검사하고 일치된 체험을 할 수 있도록 도와줄 것이다.이를 위해 우리는 이 도구를 어떻게 자체적으로 설치하는지 연구했다.
가장 큰 장점은 팀에서 나오기 때문에 저는 두 가지 다른 방법을 중점적으로 소개했습니다. 팀은 Black을 그들의 업무 절차에 구축할 수 있습니다.
나는 Black이 매우 좋은 방법이라고 생각한다. 소프트웨어가 우리로 하여금 파이톤 개발자로서의 업무를 더욱 쉽게 할 수 있게 할 수 있기 때문에 나는 너희들이 볼 수 있기를 바란다!
이것은 pycodestyle이나 Flake 8을 두드리는 것이 아니다.여러 해 동안, 나는 줄곧 flake8의 즐거운 사용자였고, 나는 그것의 존재를 매우 기쁘게 생각한다. ↩
Reference
이 문제에 관하여(검은색 코드와 일치하는 파이톤 코드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mblayman/consistent-python-code-with-black-4c87텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)