深度开发模式:按需开发与公共框架的平衡之道

理想很丰满,现实往往很残酷。

一种按照需求驱动开发的方式,根据业务来逐个编写所需的模块,然后按照模块编写所需的接口,构建中间件和解耦的command、handler等。通过这样的方式,一个项目便初具雏形。该项目的显著特点是按需开发,无需定义与业务相关的公共模块,有则使用,无则不添加。这种项目看起来似乎没有公共框架,只是一个独立的项目。当然,这种方式的效率和性能也是最高的,无需过多地包装公共代码。

有关示例如下,不做过多的赘述:

l iuzhixin405/netcore-micro (GitHub.com)

一种业务规模庞大的项目,开发人员只需要编写业务实现,这就需要一个公共框架,提供可复制的公共模块,以便业务人员编写业务代码。

下面以简洁的方式呈现这种开发模式,项目层级如下:

三个模块分别是业务模块、主机和基础模块。业务模块Business以dll形式提供给host进行注册和发布。

主机host可以存放公共的基础模块,例如注册、登录、认证等,这里省略。

业务模块存放业务代码,包括提供接口。

流程如下:request => 业务模块controller => business => service => repository

整个项目的接口保持不变,实现可以各异。

在仓储层定义几个公共的方法,

服务层也是同样的方法

依赖注入还是老一套,实现它就行。

在主机通过扫描assembly来注册服务

业务需求注入代码如下:

在business层加了aop,通过proxy的方式

在你需要的每个方法前加上特性就可以了

再控制器层加了个公共的,不管是controller拦截还是公共的部分都可以写到这里

该框架主打就是一个简陋,像日志、缓存、消息中间件都可以提前约定好公共接口,service层接口调用,business层注入需要的实现。按照接口和实现分离的方式该项目还需要调整下目录

地址如下:

liuzhixin405/single-arch (github.com)

热门手游下载
下载排行榜