会计学包含的两种程序设计思想

简介: 会计学包含的两种程序设计思想

下班路上坐地铁的时候看了一本会计学的书,目前看了50多页。过程中,发现会计学和程序设计在思想上有惊人的相似之处。今天举两个例子做说明。

 

CR设计和账簿

 


CR设计介绍

 

CR设计就是只有创建和查询,没有更新和删除。咱们后台人工操作,设计数据变更都需要有历史记录。历史记录和数据变更的最终结果区别在于历史记录有数据不变性,可以进行事件溯源。这个方法在《整洁架构》中有专门的介绍。现在非常流行的时序数据库本质也是这一思想的具体实现。

 

账簿介绍

 

这个思想的产生要追溯到石器时代。石器时代就有结绳记事。那些绳子就是原始人的账簿。登记方法就是增加的时候在上面接个大疙瘩,减少的时候解开大疙瘩。随后,绳子演变成了苏美尔人的泥巴或者殷商人的龟甲,估计就是在上面画道道,画一些线条表示增加,另一些线条表示减少。估计那个时候中国人还不知道“+”和“-”这两个符号,只好把增加和减少分开写,中国人的习惯是上面写增加、下面写减少(天收地付)。

 

CR设计应用

 

在现在的工程架构中,能运用软件的就尽量不用硬件。因为它们缺少日志记录,如果发生了异常情况难以排查。举个例子,二层防火墙因为不能做负载均衡,都是主备类部署。一旦一台出现故障必须立即停掉主,启用备。发生比特位跳变等问题,没有现场,也没有日志,重启这台机器也不会再次故障,难以确认原因。不能确认原因怎么能确保下次不会再出现问题呢?强烈建议将出现故障不能给出原因的处理列到购买合同里。

 

下面是一个常用的一种主备模式叫A/S模式的原理图。扯远了。

1112728-20220124093528880-1347967205.png

校验设计和复式记账法

 


校验设计介绍

 

咱们平时做通信,收到的数据包都有校验和。金融支付领域都有对账。毕竟完整性、准确性和一致性是数据质量最重要的三个标准。

 

复式记账法介绍

 

这个思想也深得复式记账法的精髓。复式记账法是指对发生的每一项经济业务,都要以相等的金额,在相互联系的两个或两个以上的账户中进行记录的记账方法。

 

这种方法的优点是对于发生的每一项经济业务,都要在两个或两个以上的账户中相互联系地进行分类记录。这样,通过账户记录不仅可以全面、清晰地反映经济业务的来龙去脉,还能全面、系统地反映经济活动的过程和结果。由于每一项经济业务发生后,都是以相等的金额在有关的账户中登记,因而可以对记录的结果进行试算平衡,以检查账户记录是否正确。

 

校验设计应用


咱们网上取款的时候有双因素校验,不但登录要输入密码,取款还要发一个手机验证码确认是本人。咱们的代码要上线要经过静态代码检查、代码人工审查、集成测试检查等环节才能合并到主分支。咱们从一个系统定时同步数据时一般会实时获取增量数据,同时配合定时任务拉取全量做比对。

 

总结

 


对于一门技术,有些人学的很快,很可能是他有意识的或者潜意识的进行抽象类比,找出共性和个性,掌握精髓。比如工作中、技术中、各个领域中都在用各种形式的“分类”:这本会计书上说会计就是分类的艺术。常用的思维导图不就是一个分类工具么?数据结构化不就是把数据分类吗?由此还产生了搜索引擎。

相关文章
|
9月前
|
前端开发 算法 API
鸿蒙特效教程08-幸运大转盘抽奖
本教程将带领大家从零开始,一步步实现一个完整的转盘抽奖效果,包括界面布局、Canvas绘制、动画效果和抽奖逻辑等。
292 0
鸿蒙特效教程08-幸运大转盘抽奖
|
12月前
|
人工智能 自然语言处理 安全
新浪微博AIGC业务应用探索-AIGC应用平台助力业务提效实践
本次分享围绕AIGC技术在新浪微博的应用展开,涵盖四个部分。首先分析AIGC为微博带来的机遇与挑战,特别是在内容安全和模型幻觉等问题上的应对策略;其次介绍通过工程架构快速实现AIGC技术落地的方法,包括统一部署模型和服务编排;接着展示AIGC在微博的具体应用场景,如评论互动、视频总结和智能客服等;最后展望未来,探讨大模型的发展趋势及其在多模态和特定业务场景中的应用前景。
如何修改Xshell中的字体颜色大小等样式 修改Vm虚拟机终端的字体颜色
这篇文章介绍了如何在Xshell中修改字体颜色、大小等样式,以及如何在虚拟机终端设置字体颜色,以实现统一和舒适的视觉效果。
如何修改Xshell中的字体颜色大小等样式 修改Vm虚拟机终端的字体颜色
|
10月前
|
人工智能 测试技术
LIMO:上海交大推出高效推理方法,仅需817条训练样本就能激活大语言模型的复杂推理能力
LIMO 是由上海交通大学推出的一种高效推理方法,通过极少量的高质量训练样本激活大语言模型的复杂推理能力。
404 11
|
XML JSON JavaScript
JSON对象的stringify()和parse()方法使用
本文阐述了JSON对象的`stringify()`和`parse()`方法的用法,包括如何将JavaScript对象转换为JSON字符串,以及如何将JSON字符串解析回JavaScript对象,并讨论了转换过程中需要注意的事项。
JSON对象的stringify()和parse()方法使用
|
JavaScript 定位技术 异构计算
WebGis——从零开始vue使用cesium添加点线(四)
WebGis——从零开始vue使用cesium添加点线(四)
|
机器学习/深度学习 算法 物联网
LoRA及其变体概述:LoRA, DoRA, AdaLoRA, Delta-LoRA
LoRA可以说是针对特定任务高效训练大型语言模型的重大突破。它被广泛应用于许多应用中。在本文中,我们将解释LoRA本身的基本概念,然后介绍一些以不同的方式改进LoRA的功能的变体,包括LoRA+、VeRA、LoRA- fa、LoRA-drop、AdaLoRA、DoRA和Delta-LoRA。
1322 2
|
存储 IDE Java
【.NET Core】深入理解async 和 await 理解
【.NET Core】深入理解async 和 await 理解
723 0
vscode 如何修改c/c++格式化风格,大括号不换行
vscode 如何修改c/c++格式化风格,大括号不换行