Projek Python yang besar sering berubah menjadi pangkalan kod kompleks yang sukar untuk dikekalkan. Menjejaki import, lapisan dan siapa yang bergantung pada siapa yang boleh cepat berubah menjadi huru-hara. Deply sedia membantu. Ia menganalisis struktur kod anda dan menguatkuasakan peraturan seni bina, memastikan projek Python anda kekal bersih, modular dan mudah diselenggara—walaupun ia berkembang.
Fleksibiliti Python memudahkan untuk memperkenalkan kod spageti jika kita tidak berhati-hati. Menambah modul baharu, penghias atau mengubah cara kelas yang diwarisi boleh memperkenalkan isu pergantungan yang halus merentas pasukan besar. Sempadan yang jelas—dikuatkuasakan oleh semakan automatik—membantu mengekalkan kualiti kod yang tinggi. Pendekatan ini meningkatkan kebolehbacaan dan produktiviti pasukan.
Deply ialah alat kendiri yang:
Kelebihan Deply ialah ia melangkaui import, melihat pada penghias, warisan kelas, corak fail dan banyak lagi. Konfigurasi berasaskan YAML menjadikannya lebih mudah untuk dimasukkan ke dalam saluran paip CI tanpa menulis fail ujian baharu.
pip install deply
Anda akan mendapat versi terkini, pada masa ini 0.5.2.
Buat fail deply.yaml dalam akar projek anda. Sekurang-kurangnya, tentukan laluan yang ingin anda analisis, sebarang fail untuk dikecualikan, lapisan anda dan peraturan. Di bawah ialah contoh coretan untuk projek seperti 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$"
Cara ia berfungsi:
Setelah konfigurasi anda sedia, jalankan:
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$"
Semua kelas dalam lapisan perkhidmatan mesti berakhir dengan Perkhidmatan.
deply analyze
Semua fungsi dalam tugasan mesti bermula dengan tugas_.
Petua Pro: Gabungkan berbilang syarat dengan bool untuk membentuk logik lanjutan (mesti, mana-mana, mesti_tidak), memastikan anda boleh mencipta peraturan yang sangat khusus.
Tambahkan langkah pada saluran paip CI anda:
service: enforce_class_naming: - type: class_name_regex class_name_regex: ".*Service$"
Saluran paip anda boleh gagal jika sebarang pelanggaran seni bina ditemui.
Deply direka untuk membantu anda menangkap pelanggaran seni bina sebelum ia menjadi refactor yang memakan masa. Dengan mengautomasikan semakan ini, anda boleh mengekalkan reka bentuk yang segar dan berlapis, walaupun pada pasukan yang besar.
Jangan ragu untuk mengujinya dan melaraskan konfigurasi untuk keperluan anda sendiri. Jika anda mempunyai soalan atau idea, lihat repo untuk mendapatkan butiran tentang isu pemfailan atau sumbangan. Selamat mengekod!
Atas ialah kandungan terperinci Deply: pastikan seni bina python anda bersih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!