加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

后端开发实践系列——Spring Boot项目模板

发布时间:2019-07-25 03:22:04 所属栏目:建站 来源:无知者云
导读:副标题#e# 在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为第0个迭代要做的事情。但是,当项目运行了一段时间之后再来反观,我总会发现一些不足的地方,要么测试分类没有分好,

对于gradle而言,我们刻意地将Gradle插件脚本与插件配置放到了一起,比如Checkstyle:

  1. ├── gradle 
  2. │   ├── checkstyle 
  3. │   │   ├── checkstyle.gradle 
  4. │   │   └── checkstyle.xml 

事实上,在默认情况下Checkstyle插件会从项目根目录下的config目录查找checkstyle.xml配置文件,但是这一方面增加了多余的文件夹,另一方面与该插件相关的设施分散在了不同的地方,违背了广义上的内聚原则。

基于业务分包

早年的Java分包方式通常是基于技术的,比如与domain包平级的有controller包、service包和infrastructure包等。这种方式当前并不被行业所推崇,而是应该首先基于业务分包。比如,在订单示例项目中,有两个重要的领域对象Order和Product(在DDD中称为聚合根),所有的业务都围绕它们展开,因此分别创建order包和product包,再分别在包下创建与之相关的各个子包。此时的order包如下:

  1. ├── order 
  2. │   ├── OrderApplicationService.java 
  3. │   ├── OrderController.java 
  4. │   ├── OrderNotFoundException.java 
  5. │   ├── OrderRepository.java 
  6. │   ├── OrderService.java 
  7. │   └── model 
  8. │       ├── Order.java 
  9. │       ├── OrderFactory.java 
  10. │       ├── OrderId.java 
  11. │       ├── OrderItem.java 
  12. │       └── OrderStatus.java 

可以看到,在order包下我们直接放置了OrderController和OrderRepository等类,而没有必要再为这些类划分单独的子包。而对于领域模型Order来讲,由于包含了多个对象,因此基于内聚性原则将它们归到model包中。但是这并不是一个必须,如果业务足够简单,我们甚至可以将所有类直接放到业务包下,product包便是如此:

  1. └── product 
  2.     ├── Product.java 
  3.     ├── ProductApplicationService.java 
  4.     ├── ProductController.java 
  5.     ├── ProductId.java 
  6.     └── ProductRepository.java 

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读