我是一个长期的python开发人员。我正在尝试Go,将现有的python应用程序转换为Go。它是模块化的,对我来说真的很好用。
在Go中创建相同的结构后,我似乎陷入了周期性的导入错误,这比我想要的要多得多。从未在python中出现任何导入问题。我什至不必使用导入别名。所以我可能有一些周期性的进口,这在python中是不明显的。我实际上发现那个奇怪。
无论如何,我迷路了,试图在Go中修复这些问题。我读过接口可以用来避免循环依赖。但是我不知道如何。我也没有找到任何例子。有人可以帮我吗?
当前的python应用程序结构如下:
/main.py
/settings/routes.py contains main routes depends on app1/routes.py, app2/routes.py etc
/settings/database.py function like connect() which opens db session
/settings/constants.py general constants
/apps/app1/views.py url handler functions
/apps/app1/models.py app specific database functions depends on settings/database.py
/apps/app1/routes.py app specific routes
/apps/app2/views.py url handler functions
/apps/app2/models.py app specific database functions depends on settings/database.py
/apps/app2/routes.py app specific routes
settings/database.py具有诸如connect()打开数据库会话之类的通用功能。因此,应用程序包中的一个应用程序将调用database.connect()并打开数据库会话。
settings/routes.py它具有允许应用程序将其子路线添加到主路线对象的功能的情况也是如此。
设置包更多地是关于功能,而不是数据/常量。它包含应用程序包中的应用程序使用的代码,否则必须在所有应用程序中重复。因此,例如,如果我需要更改路由器类,则只需更改settings/router.py,应用程序将继续运行而无需进行任何修改。
蓝山帝景
胡说叔叔
相关分类