「漫谈」软件设计的目标和途径是什么?(7)

2023-05-03 来源:飞速影视
6.3 数据模型匹配业务
数据模型匹配的含义是说让你的代码真实的表达实际的业务意图,而且这个意图必须要落实到数据层面,而非代码层面。简而言之就是让你的数据体现你的业务,而不是你的代码体现你的业务。感觉有点绕噢,什么鬼意思?我举个小例子:个税计算

「漫谈」软件设计的目标和途径是什么?


你觉得哪种更合适?1就是业务被体现在了代码中,这时候2019年了,个税免征额提高到了5000,你怎么办?改代码呗,3500改成5000不就完事了。对,完事了,那么历史的数据怎么办?有人要对比一下新旧版本的差异,怎么算?没办法,你被逼着写了两个版本,2019年前一个版本的代码,2019年后的一个版本,然后混乱就开始了。
所以根本问题在哪?就是因为3500这个数字看起来虽然不起眼,但是它本身是业务的一部分,结果却被安置到了代码中。这就是典型的数据模型不匹配业务。这种细节有时候一开始很难察觉到,但是一旦发现可能就已经很难挽回了,代码可以随便改,但是已经存在的历史数据怎么办? 上述的例子还好说点,你可以刷一下历史数据给补上去。但是很多时候数据一开始没有记录,后续就无论如何也无法修补了,导致你的代码被死死的捆绑住,无法再添加新功能了。
笔者非常认同Linus torvalds的一句话:“烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。”[1]。Git的数据结构非常之稳定,它的底层实际上是一个内容寻址文件系统,在这样的一个底层数据结构之上,十几年来Git新增了n多个功能和命令,但是却一致保持着的兼容性(你用Git早期版本初始化操作一个repo,到了现在的最新版依然是完全匹配的)。

「漫谈」软件设计的目标和途径是什么?


相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号