三天教会大家做一个社保管理系统中的核销小工具

我想通过这个小工具,和大家一起从零搭架子,一起编写代码,一起探讨一种编码风格,一种架构,一种编程的思想体系,嗯,有了思想体系,则大巧不工!

体验地址是http://tool.hrinto.cn/
用户名和密码都是tengfei12345
开源地址是https://github.com/Langbencom/HeXiao

下面截图几张

 

 

 

 咱们言归正传。

先从搭架子开始

架构没有银弹,但有套路。我认为要吃透三层架构,其他复杂的也是基于现实业务场景由此改编而来。万变不离其宗。

创业三年了,开发的项目很多,就这简简单单的三层架构,做过pv在千万的网站,也做过电网实验室使用的系统,可谓变的是根据业务场景独特的设计,不变的是套路,这套路的运用之妙,在乎一心。

  1. 展示层,负责系统与客户的交互
  2. 业务逻辑层,负责处理系统的业务
  3. 数据访问层,负责处理数据,与不同的数据库打交道
  4. 服务层,负责与其他系统进行数据交互和业务集成

这不是4个层吗?带着这个问题,来看一下我这些年总结的最佳实践:

  1.  新建一个展示层的Web应用程序,顺带为解决方案创建目录

 记得勾选“Web API”,我们将展示层和服务层都放在这个App的Web应用程序了,这样的好处是网站页面可以调用webapi服务,其他的程序(比如手机端,微信小程序)也可以调用webapi服务,让代码重用率提高。


下面我们增加接口类库、业务逻辑类库、数据访问类库和公共组件类库。

在解决方案上点击右键,添加新项目


一个Web应用程序和4个类库按照同样的方式创建好,然后我们将它们的命名空间统一修改为“Langben.”

 

注意Common这个组件我们不加命名空间,因为很多这是一个公共组件,其他项目也使用,共同维护。

 

下面我们为其建立引用关系:

这里约定,App组件,引用其他4个,其中虽然引用了DAL组件,但我们约定只允许调用DAL中的Model(例如CityMeta),不允许调用DAL中的访问数据库的方法(例如CityRepository)

调用关系总结如下:

展示层(App)调用业务接口层(IBLL),业务逻辑层(BLL)实现了接口层(IBLL),业务逻辑层(BLL)调用数据访问层(DAL),公共组件(Common)则是抽象了系统中可以共用和重用的部分,每个层都可以调用。

 

posted @ 2017-04-21 16:17  狼奔代码生成器  阅读(1589)  评论(0编辑  收藏  举报