开发者社区> 1918098137346411> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 会计学包含的两种程序设计思想
+关注继续查看

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

 

CR设计和账簿

 


CR设计介绍

 

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

 

账簿介绍

 

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

 

CR设计应用

 

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

 

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

1112728-20220124093528880-1347967205.png

校验设计和复式记账法

 


校验设计介绍

 

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

 

复式记账法介绍

 

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

 

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

 

校验设计应用


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

 

总结

 


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【C语言程序设计】~求π的近似值
【C语言程序设计】~求π的近似值
44 0
《C语言程序设计与实践(第2版)》——2.7 函数
C语言的程序是由一个个函数构成的,除了有且必须有的main主函数以外,用户也可以自己定义函数。此外,C语言的编译系统还提供了一些库函数。函数为程序的封装提供了一种简便的方法,在其他地方使用函数时不需要考虑它是如何实现的。
954 0
《C程序设计新思维》一导读
这门语言已经有40年的历史了,可以说已经进入了中年。创造它的人是少数对抗管制的人,遵从完美的punk rock精神;但那是20世纪70年代的事情了,现在它已历尽沧桑,成为社会的主流。
1683 0
黑马程序员 八、集合框架(2)
Java帮帮-IT资源分享网  八、黑马程序员—集合框架(2) 第八篇 集合框架(2)  1、Collections 类 操作集合的工具类: static void reverse(List list):反转指定 List 集合中的顺序;(和 ListItertor 的逆序排列一样!) static void shuffle(List list):对集合元素
1270 0
《C语言及程序设计》实践参考——发奖金
返回:贺老师课程教学链接   项目要求 【项目5 - 发奖金】 (1)过年了,村里要庆祝一下。村长对村里的128个村民说:做一个游戏,让每个人把出生年+月+日得到一个数。例如:1995年11月8日=1995+11+8=2014。然后把这个数报上来。村里有一笔钱要作为游戏的奖金,数额为M元(在程序中可以用常量固定为一个数)。如果有人报上来的数字与M相同,就把这笔钱发给这些人。如果只
1118 0
C语言及程序设计提高例程-10 调试技术:进入函数内部去
贺老师教学链接  C语言及程序设计提高 本课讲解 老革命遇上新问题(哪错了?) #include <stdio.h> float max(float x, float y); int main () { float a,b,c; scanf("%f %f", &a, &b); c = max(a, b) ; printf("The
871 0
C语言及程序设计提高例程-5 函数的参数
贺老师教学链接  C语言及程序设计提高 本课讲解 定义无参函数 #include <stdio.h> void printstars( ) { printf("*******************\n"); } void printmessage(void) { printf("Hello, world.\n"); } int main() { prin
964 0
C++程序设计-第11周 继承与派生
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 (第10周学校放春假,空一周) 【目的】1. 掌握类的派生与继承的概念;2. 学会定义子类,重点是类的构造函数与析构函数第一部分 阅读程序【程序1】阅读下面的程序,写出程序运行结果,上机时再运行,对比结果是否有差异,仔细领会继承,以及基类、派生类中构造函数的写法及执行过
1185 0
156
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载