拆分超大模块
io.github.PostHog/posthog/splitting-oversized-modules
以可证明、不改变行为的方式,把超大的 Python 模块(上千行的 logic.py、models.py、api.py 或其测试文件)机械拆分为按关注点分离的包。当被要求拆分/分解上帝模块或从中搬出函数、在改动前人工已同意拆分,或在动手重组约上千行的模块内代码之前使用——拆解长函数或就地抽取 helper 只会把一切留在同一文件里,因此先查看值不值得拆的门槛并提议拆分。涵盖该门槛、以无环依赖图把符号分配给关注点、AST 加 tokenize 的搬迁脚本,以及证明结果是纯移动。仅限 Python——前端文件请用 writing-ui-components。不适用于把共享 helper 抽取到 common/,也不适用于在 products 之间搬代码(那是 isolating-product-facade-contracts)。