如何在整体代码库中正确命名服务文件和文件夹?

问题描述 投票:1回答:1

我想听听您关于在代码库中命名文件和文件夹的想法。假设我们在付款范围内定义了不同的供应商服务(paypalService,stripeService等)和退款服务。考虑付款目录中的以下结构:

monolith
|
└--payment
     │   __init__.py
     │   views.py
     │   tasks.py
     └───services
     │   │   __init__.py
     │   └───refund
     │       │   __init__.py
     │       │   main.py
     │       │   utils.py
     │   └───vendors
     │       │   __init__.py
     │       └─── stripe
     │          │   __init__.py
     │          │   main.py
     │          │   utils.py
     │       └─── paypal
     │          │   __init__.py
     │          │   main.py
     │          │   utils.py
     │       └─── adyen
     │          │   __init__.py
     │          │   main.py
     │          │   utils.py

在这种结构中,文件名本身并不代表任何内容(例如main.py),但是当我们查看全名时,包括文件夹,例如(monolith/payment/services/refund/main.py)这个main.py名称does表示给定的模块包含其所在服务目录的主要部分。相同的想法适用于所有文件:每个模块的完整路径清楚地描述了模块的内容有。

[有些人认为__init__.py是放置主模块类的合适位置,但是我对此进行了研究,无法看到它的这种用例。 __init__.py的AFAIK可能用例是定义如何将目录作为一个包(例如,包)提供给外界。在这个文件中定义__all__对我来说很有意义。

我想出了这个想法(init,main,utils trio)来构造服务目录,我想听听您的想法。所有具有类似名称的文件(例如main,utils)都让我有些头疼。这是不好的做法吗?有什么其他方法可以构建此类服务目录?

假设:

  • 假设每个模块应具有其自己的特定utils。
  • 服务模块足够大,可以为其创建一个程序包,并将其拆分为诸如“ utils”,“ mixins”,“ main”等模块。

任何阅读有关此问题的最佳实践的资源也将不胜感激!

python service directory naming-conventions modularity
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.