拆分大型 angularjs 服务有哪些技术?
What techniques exist for splitting large angularjs services?
目前我正在重建一个大型 angularjs 控制器(1000 多行),并且该控制器正在使用一个大型 angularjs 服务(1000 多行)。我想将大部分业务逻辑从控制器推送到服务,但服务越来越难以维护。有哪些用于定义边界和拆分大型服务的技术?
在我们的服务中,我们有 public 函数,它们是对 api 的 http 调用的包装器,以及仅执行业务逻辑的 public 函数。根据 api call/business 逻辑拆分文件是个好主意吗?或者我应该尝试找到另一种拆分文件的方法,将 api 调用和中继业务逻辑分组在同一个文件中吗?
我通常将一个功能业务逻辑拆分成三个子服务,分别放在单独的文件中:feature.manager
、feature.utils
和feature.service
feature.service
包含所有异步调用(ajax、websocket 等),此服务没有实际的业务逻辑,它只处理客户端和服务器之间的通信。
feature.utils
包含所有实用方法,例如业务数据结构转换,此服务中的主要方法应该是功能性的。
feature.manager
包含大部分业务逻辑,应该依赖于feature.utils
和feature.service
目前我正在重建一个大型 angularjs 控制器(1000 多行),并且该控制器正在使用一个大型 angularjs 服务(1000 多行)。我想将大部分业务逻辑从控制器推送到服务,但服务越来越难以维护。有哪些用于定义边界和拆分大型服务的技术?
在我们的服务中,我们有 public 函数,它们是对 api 的 http 调用的包装器,以及仅执行业务逻辑的 public 函数。根据 api call/business 逻辑拆分文件是个好主意吗?或者我应该尝试找到另一种拆分文件的方法,将 api 调用和中继业务逻辑分组在同一个文件中吗?
我通常将一个功能业务逻辑拆分成三个子服务,分别放在单独的文件中:feature.manager
、feature.utils
和feature.service
feature.service
包含所有异步调用(ajax、websocket 等),此服务没有实际的业务逻辑,它只处理客户端和服务器之间的通信。
feature.utils
包含所有实用方法,例如业务数据结构转换,此服务中的主要方法应该是功能性的。
feature.manager
包含大部分业务逻辑,应该依赖于feature.utils
和feature.service