一、系统架构
A.系统架构要求
- 高可用:
大的系统中实现高可用是非常复杂的,我们的作业差不多只需要设置一主一备就可以了。 - 可扩展性(一定范围内)
比如我们的疫情系统:要添加一个特殊的功能
面向对象、面向切面、设计模式、模板引擎
在刚刚开始编程的时候就需要考虑可扩展性,方法论:
(1)正确预测变化
不必每个点都考虑可扩展性,不能完全不考虑。
(2)完美封装变化
接口是封装变化的编程实现。
分层:变化层、稳定层
变化层的接口设计是非常困难的,接口就是对外的稳定层。 - 低成本
低成本的困难之处在于:往往只有“创新”才能达到低成本目标。且低成本往往与高可用冲突。 - 高性能
- 规模
系统的功能多、逻辑分支多,即使没有高性能要求、高可用要求、扩展性,也会很复杂。 - 读写分离、业务分库、分表
B.架构设计原则:
“合适优于业界领先”
“简单优于复杂”:先理解得很复杂很详细,再化繁为简
“演化优于一步到位”:淘宝京东的例子,教务系统的例子:演化最经济的方法反而是能买就买
C.课后任务:
考虑疫情填报系统的架构,包括扩展性、高并发性,怎样适应用户的需求。
二、建模
- 画UML图,类图、时序图,复杂的时候需要状态图。获得类:语法分析经验
- 编程习惯:不要省略花括号、变量名、异常处理(80%程序解决20%的问题,核心在细节)、if 语句后面是否使用else if 还是 if
- 面向对象的程序设计,思考复用,封装代码,逻辑和输入输出不能揉在一起;以后需要修改、扩展是否可以?