会计学包含的两种程序设计思想
Posted 编程一生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了会计学包含的两种程序设计思想相关的知识,希望对你有一定的参考价值。
下班路上坐地铁的时候看了一本会计学的书,目前看了50多页。过程中,发现会计学和程序设计在思想上有惊人的相似之处。今天举两个例子做说明。
CR设计和账簿
CR设计介绍
CR设计就是只有创建和查询,没有更新和删除。咱们后台人工操作,设计数据变更都需要有历史记录。历史记录和数据变更的最终结果区别在于历史记录有数据不变性,可以进行事件溯源。这个方法在《整洁架构》中有专门的介绍。现在非常流行的时序数据库本质也是这一思想的具体实现。
账簿介绍
这个思想的产生要追溯到石器时代。石器时代就有结绳记事。那些绳子就是原始人的账簿。登记方法就是增加的时候在上面接个大疙瘩,减少的时候解开大疙瘩。随后,绳子演变成了苏美尔人的泥巴或者殷商人的龟甲,估计就是在上面画道道,画一些线条表示增加,另一些线条表示减少。估计那个时候中国人还不知道“+”和“-”这两个符号,只好把增加和减少分开写,中国人的习惯是上面写增加、下面写减少(天收地付)。
CR设计应用
在现在的工程架构中,能运用软件的就尽量不用硬件。因为它们缺少日志记录,如果发生了异常情况难以排查。举个例子,二层防火墙因为不能做负载均衡,都是主备类部署。一旦一台出现故障必须立即停掉主,启用备。发生比特位跳变等问题,没有现场,也没有日志,重启这台机器也不会再次故障,难以确认原因。不能确认原因怎么能确保下次不会再出现问题呢?强烈建议将出现故障不能给出原因的处理列到购买合同里。
下面是一个常用的一种主备模式叫A/S模式的原理图。扯远了。
校验设计和复式记账法
校验设计介绍
咱们平时做通信,收到的数据包都有校验和。金融支付领域都有对账。毕竟完整性、准确性和一致性是数据质量最重要的三个标准。
复式记账法介绍
这个思想也深得复式记账法的精髓。复式记账法是指对发生的每一项经济业务,都要以相等的金额,在相互联系的两个或两个以上的账户中进行记录的记账方法。
这种方法的优点是对于发生的每一项经济业务,都要在两个或两个以上的账户中相互联系地进行分类记录。这样,通过账户记录不仅可以全面、清晰地反映经济业务的来龙去脉,还能全面、系统地反映经济活动的过程和结果。由于每一项经济业务发生后,都是以相等的金额在有关的账户中登记,因而可以对记录的结果进行试算平衡,以检查账户记录是否正确。
校验设计应用
咱们网上取款的时候有双因素校验,不但登录要输入密码,取款还要发一个手机验证码确认是本人。咱们的代码要上线要经过静态代码检查、代码人工审查、集成测试检查等环节才能合并到主分支。咱们从一个系统定时同步数据时一般会实时获取增量数据,同时配合定时任务拉取全量做比对。
总结
对于一门技术,有些人学的很快,很可能是他有意识的或者潜意识的进行抽象类比,找出共性和个性,掌握精髓。比如工作中、技术中、各个领域中都在用各种形式的“分类”:这本会计书上说会计就是分类的艺术。常用的思维导图不就是一个分类工具么?数据结构化不就是把数据分类吗?由此还产生了搜索引擎。
思考--你的工作!(出自《程序员修炼之道》)
JSP的两种include
JSP中有两种方式可以把指定的jsp程序或者html文件包含进来,分别为一下两种形式:
1.静态包含:<%@ include file=”fileURL” %>
属于编译期间指令。JSP Engine会在JSP程序的转换时期先把fileURL设定的文件包含进来,然后再开始执行转换,编译等工作(把fileURL指向的文件原封不动的放到本文件中间后再转换、编译)。无论是包含JSP文件还是html文件整个过程中只生成一个servlet文件。它不可以用于传递参数,即<%@ include file=”fileURL?user=aaa” %>是错误的,会导致程序编译找不到文件。
2.动态包含:<jsp:include page=”URLSpec” flush=”true”/>
或<jsp:include page=”URLSpec” flush=”true”>
<jsp:param name=”paramName” value=”paramValue”>
</jsp:include>
属于运行期间指令。该指令在转换时期是不会被编译的,只有在客户端请求时期如果被执行到,才会被Tomcat等JSP Engine等编译,否则将不会被编译。如果包含的是动态页面(如JSP)则会生成两个servlet文件;但是如果包含的是静态文件(如html文件),则整个过程也只产生一个servlet文件。但它可以带参数执行。
本文出自 “java” 博客,请务必保留此出处http://a001807.blog.51cto.com/9804844/1874895
以上是关于会计学包含的两种程序设计思想的主要内容,如果未能解决你的问题,请参考以下文章