发票项目总结

来源:互联网 发布:python的init 编辑:程序博客网 时间:2024/04/28 18:42
最近开发了一个项目,发票系统,此系统以前有一个版本,由于模型特别冲突。故此架构重新设计,代码全部重写。
项目中,用了很多技术点的尝试,特此列出。

项目不足,项目还是基于传统的 领域贫血模型来做的,此点非常不足。下次项目考虑用DDD方式完成,目前再看相关的书籍与文档。

项目总结如下:

  1. 分层测试实践。在分层测试的时候,不用连接数据库,提高测试效率。(在家不用VPN也可以写测试代码)。主要关注复杂业务逻辑,对于传递参考不建议写单元测试。
  2. 集成测试实践。此点在上次周会讲了一些,大家在写的时候也有一些体会,相信集成测试以后会在核心大范围推广的
  3. 财务首次在项目中应用SONAR检测,开发也可以一边写代码,一边根据SOANR的建议修改代码。相信认真用过的开发很受益的,因为SONAR的建议正是你所忽视的。
  4. DAO完善。此点主要是丰富DAO层。加入了枚举等。
  5. 发票模块结构清晰,比老的发票更加完善。包括支持发票明细,地址单独分模块等。(为什么作为技术,因为此点表明我们的想法更加向领域靠了)
  6. 代码基本是每个模块独立服务,走领域service(Bo)调用相关领域服务。(以前基本乱作一团)
  7. 财务首次用声明式事务。(项目中发票模块都是声明式事务,别的模块是编程式的)
  8. 财务首次尝试一种基于version的乐观锁机制。(以前是用字段判断或者压根没有考虑)
  9. 引入系统内部事件机制,对于合同基础数据变化,可以发送事件给相应的模块。(以前直接调用,系统响应时间苦不堪言)
  10. Napoli消息持久化重构。(目前财务自己内部实现,可以在核心推广,也可以给NAPOLI建议实现错误消息持久化)
  11. 合同后续逻辑与到账后续逻辑重构。(主要是代码结构)
  12. BizHelper,小部分进行重构,相应的职责,放到相应的CacheAo、LogAo服务中。
  13. 以前定义在BizConstant的一些领域的数值定义到相应的领域模型中。(虽然我们的领域是贫血的)
原创粉丝点击