命名空间作业是一种好习惯吗?

时间:2019-12-08 21:41:40

标签: ruby-on-rails

命名空间作业是一种好习惯吗?

在我的应用程序中,我有两个与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并在那里执行特定的任务。这些作业称为PagePageWritingScoreJob。我想改用命名空间Page:PageArchitectureScrapingJobPage::WritingScoreJob,但不确定这是否不好。

谢谢

1 个答案:

答案 0 :(得分:1)

没有真正的理由说明为什么使用名称空间会是一个坏习惯。

在Rails应用程序中,所有内容通常都集中在全局名称空间中,不一定是因为这是最好的方式-只是很方便。

在互操作性方面,将代码放置在全局名称空间中存在问题已被广泛接受,因为它大大增加了名称冲突的风险。在缺少像Python或Ecmascript这样的导入系统的Ruby中尤其如此。这就是为什么几乎每个gem都将其常量封装在模块中的原因。

尽管在Rails应用程序中,您通常是应用程序代码的最终使用者,这意味着将控制器和模型放置在全局名称空间中的效果很好,因此通常值得在较简单的代码模板中进行权衡,而又不用花钱代码需要执行一个附加步骤,并嵌套在另一个文件夹中。

相关问题