命名空间作业是一种好习惯吗?
在我的应用程序中,我有两个与import asyncio
loop = asyncio.get_event_loop()
def do_thing(ch_id):
async def get_chan_info_and_do_chores(ch_id):
response = perform_grpc_call(ch_id)
do_chores(response)
async def get_httpapi_info_and_do_chores(ch_id):
response = requests.get(URL)
do_chores(response)
async_tasks = []
for ch_id in list(channels):
async_tasks.append(loop.create_task(get_chan_info_and_do_chores(ch_id)))
async_tasks.append(loop.create_task(get_httpapi_info_and_do_chores(ch_id)))
loop.run_until_complete(asyncio.gather(*async_tasks))
模型相关的作业-它们都将接收一个post_id并在那里执行特定的任务。这些作业称为Page
和PageWritingScoreJob
。我想改用命名空间Page:PageArchitectureScrapingJob
和Page::WritingScoreJob
,但不确定这是否不好。
谢谢
答案 0 :(得分:1)
没有真正的理由说明为什么使用名称空间会是一个坏习惯。
在Rails应用程序中,所有内容通常都集中在全局名称空间中,不一定是因为这是最好的方式-只是很方便。
在互操作性方面,将代码放置在全局名称空间中存在问题已被广泛接受,因为它大大增加了名称冲突的风险。在缺少像Python或Ecmascript这样的导入系统的Ruby中尤其如此。这就是为什么几乎每个gem都将其常量封装在模块中的原因。
尽管在Rails应用程序中,您通常是应用程序代码的最终使用者,这意味着将控制器和模型放置在全局名称空间中的效果很好,因此通常值得在较简单的代码模板中进行权衡,而又不用花钱代码需要执行一个附加步骤,并嵌套在另一个文件夹中。