后端开拓实践系列——Spring Boot项目模板
对付gradle而言,我们决心地将Gradle插件剧本与插件设置放到了一路,好比Checkstyle:
究竟上,在默认环境下Checkstyle插件会从项目根目次下的config目次查找checkstyle.xml设置文件,可是这一方面增进了多余的文件夹,另一方面与该插件相干的办法分手在了差异的处所,违反了广义上的内聚原则。 基于营业分包 从前的Java分包方法凡是是基于技能的,好比与domain包平级的有controller包、service包和infrastructure包等。这种方法当前并不被行业所推许,而是应该起首基于营业分包。好比,在订单示例项目中,有两个重要的规模工具Order和Product(在DDD中称为聚合根),全部的营业都环绕它们睁开,因此别离建设order包和product包,再别离在包下建设与之相干的各个子包。此时的order包如下:
可以看到,在order包下我们直接安排了OrderController和OrderRepository等类,而没有须要再为这些类分别单独的子包。而对付规模模子Order来讲,因为包括了多个工具,因此基于内聚性原则将它们归到model包中。可是这并不是一个必需,假如营业足够简朴,我们乃至可以将全部类直接放到营业包下,product包即是云云:
在编码实践中,我们老是基于一个营业用例来实当代码,在技能分包场景下,我们必要在分手的各包中往返切换,增进了代码导航的本钱;其它,代码提交的改观内容也是散落的,在查察代码提交汗青时,无法直观的看出该次提交是关于什么营业成果的。在营业分包下,我们只必要在单个同一的包下修改代码,镌汰了代码导航本钱;其它一个甜头是,假如哪天我们必要将某个营业迁徙到其它的项目(好比辨认出了独立的微处事),那么直接整体移动营业包即可。 虽然,基于营业分包并不料味着全部的代码都必需囿于营业包下,这里的逻辑是:颖呷举办营业分包,然后对付一些不附属于任何营业的代码可以单独分包,好比一些util类、民众设置等。好比我们依然可以建设一个common包,下面安排了Spring民众设置、非常处理赏罚框架和日记等子包:
自动化测试分类 在当前的微处事和前后端疏散的开拓模式下,后端项目仅提供纯粹的营业API,而不包括UI逻辑,因从此端项目不会再包括诸如WebDriver的重量级端到端测试。同时,后端项目作为向外提供营业成果的独立运行单位,在API级别也应该有响应的测试。 另外,措施中有些框架性代码,要么是诸如Controller之类的技能性框架代码,要么是基于某种架构气魄威风凛凛的代码(好比DDD实践中的ApplicationService),这些代码一方面并不包括营业逻辑,一方面是很薄的一个抽象层(即实现相对简朴),用单位测试来包围显得没有须要,因此笔者的概念是可以不为此编写单独的单位测试。再者,措施中有些重要的组件性代码,好比会见数据库的Repository可能漫衍式锁,行使单位测试现实上“测不到点上”,而行使API测试又显得在分类逻辑上不公道,为此我们可以专门建设一种测试范例谓之组件测试。 基于以上,我们可以对自动化测试做个分类:
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |