python-project-structure 帮开发者整理 Python 项目的目录、模块边界和公开接口。把现有文件、主要职责和调用方式交给 AI,它会判断哪些代码应该放在一起,哪些需要拆开,并安排测试文件的位置。
比如一个 user.py 同时负责请求处理、业务规则和数据库访问,每次改动都要在大文件里找位置。原文建议按共同职责与变化原因组织代码:既可以分技术层,也可以在复杂应用中按用户、订单等业务领域归组。
它反对为了显得有架构而不断加深目录。真正存在独立子领域时再分层,否则导入路径和查找文件的成本会不断增加。测试放在代码旁边还是单独目录,都可以讨论,关键是全项目保持一致。
公开接口也要有明确入口。原文使用 __init__.py 和 __all__ 表达哪些名称希望调用方使用;__all__ 不是访问控制,不能阻止别人显式导入内部名称。它更适合配合命名和文档形成维护约定。