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

我想听听您关于在代码库中命名文件和文件夹的想法。 假设我们在付款范围内定义了不同的供应商服务(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名称​​确实表示给定模块包含其所在服务目录的主要部分。同样的想法适用于所有文件:每个模块的完整路径清楚地描述模块的内容。

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

我想到了这个想法(init,main,utils trio)来构造服务目录,我想听听您的想法。所有具有类似名称的文件(例如main,utils)都让我有些痒。这是不好的做法吗?构建此类服务目录的替代方法有哪些?

假设:

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

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

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

问题中提供的结构对我来说看起来不错。绝对清楚

拥有很多具有相似名称的文件(您好,Django!每个软件包都有__init__.pymodels.pyadmin.pytests.py,{{1} }(或同名的软件包)。

对于像解决方案这样的框架来说,拥有很多相似的命名文件是绝对正常的,它允许您创建某种“可插拔系统”,以备不时之需。

现代编辑器可以通过在案例的父目录名称中添加前缀/后缀来与不同目录中的同名文件配合使用。我最喜欢的IDE PyCharm在这种情况下Tabdir plugin有一个很棒的插件。

我喜欢你的结构。任何现代框架都试图标准化“应用程序或插件文件夹”,这很正常。那是真正的编程,而不是编写大量丑陋的文件并将其导入:)

本文链接:https://www.f2er.com/2958226.html

大家都在问