第四单元架构设计 本单元代码的迭代开发与架构设计基于里氏替换原则,将每次新增的任务分派到新增的解析器类中,交互类只需调用解析器类中相应的 方法即可实现对输入查询指令的相应输出。由于采用新增解析器类的方式,不需要更改任何旧代码,只需新增若干个类,并在交互类 新增若干行代码,创建关联新增类即可。 第一次 ...
分类:
其他好文 时间:
2021-06-28 19:05:25
阅读次数:
0
什么是领域? 答:用户亟待解决的问题区域就是领域。人类社会的方方面面,上至高精尖的前沿科技,下至常态化的衣食住行都可以用领域来描述。 什么是领域驱动设计? 答:领域驱动设计的本质就是通过消化吸收大量的领域知识,最终得出一个反映深层次领域知识并聚焦于关键领域概念的模型。也可以理解为领域驱动设计的产物就 ...
分类:
其他好文 时间:
2021-03-08 14:06:33
阅读次数:
0
敏捷测试的原则 整个团队对测试负责; 持续测试、持续的质量反馈; 不断调整计划以适应需求的变化; 始终以用户需求为中心,每时每刻不离用户需求,将验证和确认统一起来; 关注可以交付的客户价值; 面对面的沟通、协作,强调团队的责任预防缺陷,而不是关注缺陷的数量; 敏捷测试的基础就是自动化测试; 迭代开发 ...
分类:
其他好文 时间:
2020-10-27 11:37:54
阅读次数:
16
在项目迭代开发中,难免会有更新数据库Schema的情况,比如添加新表、在表中增加字段或者删除字段等,那么当我对数据库进行一系列操作后,如何快速地在其他同事的电脑上同步?如何在测试/生产服务器上快速同步?每次发版的时候,由于大家都可能有sql更改情况,这样就会有以下痛点:忘记某些sql修改每个开发人员的sql的执行顺序问题重复更新需要手动去数据库执行脚本以上问题以及痛点可以通过Flyway工具来解决
分类:
数据库 时间:
2020-08-26 18:41:57
阅读次数:
51
我理解的迭代开发,即是软件通过识别硬件版本,从而兼容产品生命周期内,所有的硬件改动。也就是一个软件,适配多个硬件。 一般标识的硬件版本的方法有两种:其一是预留若干个IO口,通过改变这些IO口电平状态,来产生与硬件版本绑定的编码;其二是通过往板上某个存储器内刷不同的编码。方法一比较彻底地标识出硬件版本 ...
分类:
其他好文 时间:
2020-08-19 19:56:57
阅读次数:
96
一、引言 学完了面向对象的基础知识后,可还是不知该如何下手,凡是都得有个章法。 此刻有经验的人可能会想到瀑布模型、螺旋模型、迭代开发、敏捷、RUP等一堆软件工程相关的软件开发流程,但对于大部分人来说这些流程仅仅只是项目管理上的流程。 本节我们就来了解下,作为一名程序员基于面向对象开发程序的开发流程: ...
分类:
其他好文 时间:
2020-07-20 13:33:27
阅读次数:
104
项目在多环境迭代开发过程中,数据库的表结构不断变更,在部署时,往往会出现数据库表结构未及时变更导致出现问题,耗费在表结构上的时间相当多,上线过程持续痛苦,代码有 GIT/SVN 来控制,数据库中的表版本也可以做到版本控制,本文讲解通过 flyway 的方式来管理数据库版本变动。 本文首发个人技术博客 ...
分类:
其他好文 时间:
2020-06-26 16:42:57
阅读次数:
138
1.保持单元测试小巧、快速 理论上,任何代码提交前都应该完整跑一遍所有测试套件。保持测试代码执行符合预期,这样能够缩短迭代开发周期。 2.单元测试应该是全自动/非交互式的 测试套件通常是定期执行的,执行过程必须完全自动化才有意义。输出结果需要人工检查的测试不是一个好的单元测试。 3.让单元测试很容易 ...
分类:
其他好文 时间:
2020-06-15 21:18:24
阅读次数:
64
JML语言的理论基础、应用工具链情况 JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言。可以通过开展规格化设计,而给代码实现者以明确、严谨的设计需求;也可以针对已有的代码给出规格,以提高代码的维护性。 结合Junit、OpenJML、SMT So ...
分类:
其他好文 时间:
2020-05-23 20:01:29
阅读次数:
54
BUAA_OO_2020_UNIT3_Summary ? 本单元在阅读并理解JML规格的基础上,完成一个简单社交网络系统的迭代开发,该系统为实时在线系统,输入给出指令,需要及时给出正确的输出。训练重点为对规格的理解,数据结构和算法的选择,程序复杂度和时间的控制。 一、JML理论基础与应用工具链梳理 ...
分类:
其他好文 时间:
2020-05-22 17:20:50
阅读次数:
42