2.系统架构演进实例
# 前言
# 任务要求
Industry Practice of SA 结合设计模式等软件架构知识,通过重构、引入新特性等方式,提高目标软件(可以是宠物商店但最好是别的?审美疲劳了)质量
# 提交内容:
1.代码git库link: a.注意git提交格式等内部质量 b.要求可运行可测试,注意外部质量
2.重构说明link: a.图文并茂:结合UML图描述重构前后系统,说明优化动机、思路、方法、效果 b.云文档、markdown形式均可
# 评估指标
1.目标软件复杂性【别一个helloworld搁这重构】 2.软件质量方面设计实现【git提交求求规范点】 3.重构过程中体现的设计模式理解【能用就用,但别过度设计】 4.文档质量【错别字少点没问题吧】 5.软件部署难度、ci程度【一键部署、到处执行】 6.工作量分配【团队提交难点,为什么是难点?工作后年底分绩效的时候就知道了】
# 其他
1.可重复提交评审,但分数会打折【与助教工作量相关,评价软件质量很难,不要为难助教】 2.特别优秀的平时成绩可满分 3.第一次实验课时候,和助教报名 4.个人或小组形式均可,团队形式需显式声明工作量分配(KPI),并以软件度量方式/工具证明合理性(代码变更行数、patch提交数量等均可)
# 项目
首先确定技术栈 SSM 前后端分离,然后下面同时需要单体架构(方便后续演进微服务),同时业务尽量不要太复杂,因为我们需要将精力和关注点放在架构上(当然也可以手动删减业务)
聊天室后端:JustCoding-Hai/subtlechat: 微言聊天室是基于前后端分离,采用SpringBoot+Vue开发的网页版聊天室 (github.com) (opens new window)
我看下这个整体来说,业务模块还是比较完善的(太多了后面可能删),同时也是单体架构,也方便后续做架构演进
# 架构演进
Dubbo 官网将系统架构分为 单体架构、垂直架构、分布式服务架构、流计算架构
首先我会先将现有项目动刀(本地),剔除冗余业务模块,之后上传 GitHub