软件方法(下)分析和设计第8章连载[20210723更新]>>
老刘 2021-7-23 9:34
各位老师早!
在数据结构设计上,有个场景一直有个疑问。类似于库存的进出流水记录,通过这些流水记录,是可以统计出实际库存的。但是对于需要频繁查询库存的应用,每次查库存都要实时统计,非常耗时。我们采用的做法就是建个缓存表,每次有进出流水,就同步更新一下这个缓存表。
想了解一下,老师们有没有别的做法呢?
乌贼 2021-7-23 12:04
历史的流水记录是不会变的。把昨天的记录定义为历史流水,把历史流水给预计算完保存起来。每次只要把历史结果和增量流水合并就行了。数据量大的话,可以1小时、10分钟一个周期。
UMLChina潘加宇
这个本身倒也没什么问题。
不过说的好像什么时候流水变成本质了,是中了“事件溯源”之类的毒吧。
以下是扩展:
电梯每天跑来跑去,没有记住去过哪里的“流水”,难道就没法知道当前状态了(是运动的还是停止的,运动的话是往上往下,停止的话停在哪里)?
2020年12月6日8时,吴某凡啪啪都某竹,这个是行为。
啪啪的过程被录成视频了,这个视频(流水)是数据的一种。
行为发生之后,对某对象的某些属性值造成了影响。跟有没有录视频没关系。
**系统的数据结构以及行为对数据的影响,这些才是本质。**举例:
类图描述系统需要维护哪些类和属性,其中“出库”“入库”等流水是可选的。
以及状态机图描述行为对属性值的影响。物品规格的状态机:
(只画了一部分,其他迁移大家自行脑补。如果没有提炼出类似这样的逻辑,)
我们的系统之所以复杂,就是因为要维护类似这样的逻辑。
但是“只要记流水就可以了”的做法很讨人喜欢,因为这不用思考,不用抽象,好像记录现象就可以,不用思考背后的逻辑,刚好可以作为偷懒的遮羞布。
但不管说得怎么天花乱坠,这些复杂逻辑不会凭空消失,你不去探索它,它也不会免费出现在你的系统里,除非已经有人帮你负重前行——有人吗?
[幻灯]7.29-8.1日晚-剔除“伪创新”和“无领域”的领域驱动设计-网课
[2020.01加一套题]UMLChina建模竞赛题大全-题目全文+分卷自测(11套110题)
全程字幕-25套UML+Enterprise Architect/StarUML建模示范视频
[新增:鸵鸟]软件开发团队的脓包:皇帝的新装、口号党、鸵鸟、废话迷
《软件方法》书中自测题-题目全文+分卷自测(1-8章)16套111题
怪论:东北公司用用例做需求,反映了东北互联网落后?
别把洋垃圾当宝贝-评InfoQ中国“敏捷……”文章(一)
中文书籍中对《人月神话》的引用(完结,共110本):软件工程通史1930-2019、实用Common Lisp编程……
CTO也糊涂的常用术语:功能模块、业务架构、用户需求……[20210217更新]
UMLChina服务介绍