一个前程序员闲谈河南红码事件

以前做过程序员,这次看到网上关于河南省有一部分人群被赋予了红码,各种说法都有,我不评价这些,只从程序员的角度聊聊这个话题。

一个软件设计的初始依据,就是用户需求。客户需要什么样的东西,程序员敲键盘为客户实现所需要的功能。

下面谈三方面的问题,一是软件的数据处理逻辑,二是软件的用户角色,三是聊聊出现这种情况可能是什么情况造成的。

软件的数据处理逻辑

数据的处理基本上就是三段,数据输入、数据处理、数据输出。最简单的一个例子,1、数据输入:某甲的核酸检测结果是阳性;2、数据处理逻辑:如果核酸检测结果是阳性,赋红码,如果是阴性,赋绿码;3、数据输出:给某甲赋予红码。

上面的例子是最最简单的逻辑关系,实际上会复杂很多,比如某甲的核酸检测报告为阳性,隔离一段时间或治疗后检测结果为阴性了,是不是立即赋予绿码呢,可能还不行,需要几天的观察,再多次检测阴性才能赋予绿码。某乙的检测结果是阴性,但他是某甲的密切接触者,比如家属、一个办公室的同事等等,虽然是阴性,不排除是新冠病毒潜伏期的可能性,为了预防,先把某乙也先赋予红码以便管控起来。数据输入:某甲阳性,某乙阴性,某乙是某甲的密切接触者;数据处理逻辑:判断某乙和某甲密切接触程度;数据输出:某乙也赋予红码。

所谓数据处理,无论多么复杂,最终分解成逻辑判断语句:if……then……else……,也就是说,预置了很多赋红码的条件,只要触发了条件,就是红码,没有触发,就是绿码。简单化了,没有考虑黄码的情形,也就是多几条if语句。

软件的用户角色

说起用户角色,换句话就是使用软件的权限,以健康码为例,为什么你乘坐公交车、进大超市等场所,有人要查验你的健康码?因为他自己没有查看你健康码的权限,只能你出示给他看,这就是“读”数据的权限,你有读自己数据的权限而他没有,同样你也没有权限去读那个工作人员的数据,除非他出示给你看。这是一对一的情形,假如因为防疫工作需要,一个社区工作人员被授权时,就可以查看本社区居民的健康码状态,一目了然,同理,市防疫办工作人员可能可以看到全市的健康码状态。

下一个问题,你如果红码了,出行不方便,能不能自己修改一下,变成绿码呢?显然是不行的,因为你没有更改数据的权限。这就是“写”数据的权限。这时“写”数据不一定是直接去更改数据(当然直接更改也是一种方式),比如核酸检测人员他只是输入了某甲的检测结果是阳性,某乙的检测结果是阴性,最终显示红码或绿码,是软件经过运算后得出的结果。再如某外省市民因为河南传递来的数据被赋红码。这里要指出的是,和读数据类似,写数据更需要严格控制,需要得到授权,如果这个权限被滥用,后果可能比较严重。

就健康码这个软件而言,应该是每个市民都被授权读取自己的健康码数据,有一些工作人员被授权读取符合条件的某一些人群的健康码数据,一些工作人员被授权写入数据,直接或间接改变了健康码的数据信息。

用户角色的授权,是一项非常严肃的工作,一般又专门的部门或人员来完成,这些人,我们一般称为“管理员”。

河南红码事件的技术原因和管理原因

一个程序员或程序员团队,他们的初衷一定是交付满足用户需求的软件,但是因为各种因素,比如程序员个人的技术水平,对软件应用环境考虑不周全,可以说没有一个软件敢说是完美无缺的,即使世界上最顶尖的微软公司的程序员团队,也不定期公布Windows系统的补丁,也就是修改以外的错误。这是正常的事情,所以说早期曾经有个说法,红码事件是数据错乱造成的,从技术层面来说,不能排除这种可能性,但是随着更深入的报道,赋予红码可以说是精准的,那么我个人要为设计开发河南健康码软件的程序员团队说句话,至少这个事件,这些程序员没有责任。

管理方面,说白了就是软件使用的管理的事情了,有多少人被授权了更改数据的权限?是哪一个人还是哪一些人更改了这部分数据?从技术角度来看是非常简单的事情,被授权更改数据的部门或人员,一分钟就可以列个清单出来了。这部分数据分别是什么时间、哪台计算机、哪个操作员进行操作的,也是短时间可以列出清单的,除非最早用户需求中没有数据可追溯性的要求。

纪委已经介入了,相信很快就有结论了。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月20日
下一篇 2022年6月20日

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息