대형 Python 프로젝트는 유지관리가 어려운 복잡한 코드베이스로 발전하는 경우가 많습니다. 가져오기, 레이어 및 누가 누구에게 의존하는지 추적하면 금방 혼란스러워질 수 있습니다. Deply가 도와드리겠습니다. 코드 구조를 분석하고 아키텍처 규칙을 적용하여 Python 프로젝트가 성장하는 동안에도 깔끔하고 모듈식이며 유지 관리가 용이하도록 보장합니다.
Python의 유연성 덕분에 주의하지 않으면 스파게티 코드를 쉽게 도입할 수 있습니다. 새 모듈, 데코레이터를 추가하거나 클래스 상속 방법을 변경하면 대규모 팀 전체에 미묘한 종속성 문제가 발생할 수 있습니다. 자동화된 검사를 통해 명확한 경계가 적용되어 코드 품질을 높게 유지하는 데 도움이 됩니다. 이 접근 방식은 가독성과 팀 생산성을 높여줍니다.
Deply는 다음과 같은 기능을 제공하는 독립형 도구입니다.
Deply의 장점은 가져오기를 넘어 데코레이터, 클래스 상속, 파일 패턴 등을 살펴보는 것입니다. YAML 기반 구성을 사용하면 새 테스트 파일을 작성하지 않고도 CI 파이프라인에 더 쉽게 통합할 수 있습니다.
pip install deply
현재 최신 버전인 0.5.2를 다운로드하게 됩니다.
프로젝트 루트에 deply.yaml 파일을 만듭니다. 최소한 분석하려는 경로, 제외할 파일, 레이어 및 규칙을 정의하십시오. 다음은 Django와 유사한 프로젝트에 대한 샘플 스니펫입니다.
deply: paths: - /path/to/your/project exclude_files: - ".*\.venv/.*" layers: - name: models collectors: - type: bool any_of: - type: class_inherits base_class: "django.db.models.Model" - type: class_inherits base_class: "django.contrib.auth.models.AbstractUser" - name: views collectors: - type: file_regex regex: ".*/views_api.py" ruleset: views: disallow_layer_dependencies: - models enforce_function_decorator_usage: - type: bool any_of: - type: bool must: - type: function_decorator_name_regex decorator_name_regex: "^HasPerm$" - type: function_decorator_name_regex decorator_name_regex: "^extend_schema$" - type: function_decorator_name_regex decorator_name_regex: "^staticmethod$"
작동 방식:
구성이 준비되면 다음을 실행하세요.
pip install deply
deply: paths: - /path/to/your/project exclude_files: - ".*\.venv/.*" layers: - name: models collectors: - type: bool any_of: - type: class_inherits base_class: "django.db.models.Model" - type: class_inherits base_class: "django.contrib.auth.models.AbstractUser" - name: views collectors: - type: file_regex regex: ".*/views_api.py" ruleset: views: disallow_layer_dependencies: - models enforce_function_decorator_usage: - type: bool any_of: - type: bool must: - type: function_decorator_name_regex decorator_name_regex: "^HasPerm$" - type: function_decorator_name_regex decorator_name_regex: "^extend_schema$" - type: function_decorator_name_regex decorator_name_regex: "^staticmethod$"
서비스 계층의 모든 클래스는 Service로 끝나야 합니다.
deply analyze
작업의 모든 기능은 task_로 시작해야 합니다.
프로 팁: 여러 조건을 bool과 결합하여 고급 논리(must, any_of, must_not)를 형성하여 매우 구체적인 규칙을 만들 수 있습니다.
CI 파이프라인에 단계 추가:
service: enforce_class_naming: - type: class_name_regex class_name_regex: ".*Service$"
아키텍처 위반이 발견되면 파이프라인이 실패할 수 있습니다.
Deply는 아키텍처 위반이 시간이 많이 걸리는 리팩터링이 되기 전에 이를 포착할 수 있도록 설계되었습니다. 이러한 검사를 자동화하면 대규모 팀에서도 산뜻하고 계층화된 디자인을 유지할 수 있습니다.
자유롭게 테스트해보고 필요에 맞게 구성을 조정해 보세요. 질문이나 아이디어가 있는 경우 저장소에서 문제 제출 또는 기여에 대한 자세한 내용을 확인하세요. 즐거운 코딩하세요!
위 내용은 Deply: Python 아키텍처를 깔끔하게 유지하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!