Python 关于构造ETL应用程序代码的建议
我需要一些关于为ETL应用程序构建代码的最佳实践的建议 我目前的结构大致如下:Python 关于构造ETL应用程序代码的建议,python,python-3.x,Python,Python 3.x,我需要一些关于为ETL应用程序构建代码的最佳实践的建议 我目前的结构大致如下: main_process.py mid_level_process.py setup.py __init__.py module1.py modules2.py ... 我的问题是,这些“中间级进程”调用了许多打包在dir结构较低级别中的函数,但是为了可维护性和可读性,在主进程中将它们本身作为函数调用更有意义。把这些也放在较低的一层是不是一种不好的做法?让这些模块互相调用函数感觉
main_process.py
mid_level_process.py
setup.py
__init__.py
module1.py
modules2.py
...
我的问题是,这些“中间级进程”调用了许多打包在dir结构较低级别中的函数,但是为了可维护性和可读性,在主进程中将它们本身作为函数调用更有意义。把这些也放在较低的一层是不是一种不好的做法?让这些模块互相调用函数感觉很糟糕?或者最好在main_process.py中定义函数,然后在那里调用它们?这里没有硬性规定,除了 这是
\uuuu init\uuuu.pt
公开的内容,它构成了一个包,并且在很大程度上与目录的结构无关。(但是让我们忽略\uuuu init\uuuu.py
,假设它存在并且是空的,因此您有一个具有文件系统精确布局的包。)
然而,对于可维护性和可读性,在主流程中将它们本身称为函数更有意义
没问题Main_process.py
可以从mid_-level_process.py
和module1.py
或module2.py
导入到目前为止没有任何循环
把这些也放在较低的一层是不是一种不好的做法
如果Main_-process.py
和mid_-level_-process.py
都是从module1.py
和module2.py
导入的,这是有意义的。您可以这样做,并将它们放在一个单独的包中。(当两个模块都使用例如int
时,不反对一个模块导入另一个模块,对吧?!)
如果您选择使用mid_level_process.py
调用后两者作为有效的中介,但是如果您还希望将它们导入Main_process.py
,则这也是有效的
将module1
和module2
与其他两个模块放在同一级别的问题在一定程度上是主观的,取决于上下文。是否存在一些概念模块化或将它们分开的原因?在完全不同的上下文中,其他模块是否希望导入module1
和module2
,而不需要main
或mediator
?这样就不需要将它们放在同一个包或同一个目录级别上
你现在的安排才有意义