发布时间:2022-11-17 12:00
《匠艺整洁之道》是鲍勃大叔的整洁系列新书。这本书主要从纪律、标准、操守三个方面阐述了软件从业者应该如何要求自己,提升研发质量、效率、道德水准,本文主要围绕《匠艺整洁之道》的第三部分 -- 操守,聊一聊我们程序员该如何自我约束、自我提升。
为什么程序员需要职业操守?
这个问题还得从软件行业的发展说起。软件行业从诞生(1935)至今(2022),已经八十多年的历史了。
在这期间,整个软件行业有了巨大的发展:
从业人员已经过亿
计算机/电子设备的数量超过人类数量
软件监控和协调着全社会的运转
大众对计算机及软件的认知,从早年的以机器为主,到现在以机器背后的程序员为主。早期《星际迷航》、《太空奥德赛》等以机器 / 计算机作为重要角色。而随着个人计算机的出现,《黑客帝国》、《战争游戏》等电影逐渐以程序员作为救世主,程序员正脱去神秘的面纱,被社会所了解和接纳。
作为程序员,我们虽然不是各种规则的制定者,但我们编写了运行这些规则的代码,并在全面监控和协调我们生活的机器中执行。换句话说:程序员们统治着这个世界。
我们编写的软件,记录着日程表、货物的运输、商品的交易,控制着汽车的方向盘、火箭卫星,甚至还能影响法律的颁布或执行。
因为软件出错而导致的惨剧,在各行各业都有案例:
科研:地面软件出错,使用了错误的单位,导致火星气候探测者号在火星大气层中下降太深,被撕成了碎片。
医疗:Therac-25 放射治疗机事故。由于进程冲突,Therac-25 用高能电子束导致 3 人丧生,还烧伤了另外 3 人。
商业:因为用错标识符,遗留在系统中的死代码被激活,导致骑士资本集团在 45 分钟内损失了 4.6 亿美元。
交通:丰田汽车的堆栈溢出漏洞,可能导致汽车加速失控,最终可能导致多达 89 人遇难。
当发生一些事情时,会有人需要为此负责,人们会要求程序员们说清楚如何防止这种错误再次发生。
因此,作为程序员的我们,亟需有明确的职业操守以进行自我约束,为的是让软件行业能有更大的发展,也为我们自己能有更好的职业发展。
思考:
你是否有出现过故障,造成的最坏影响是什么?是否对社会造成了影响?
什么是职业操守?
WIKI 里对职业操守的定义是 指人们在从事职业活动中必须遵从的最低道德底线和行业规范。
在职业活动中,有一些公认的职业操守,如:
诚信的价值观
诚实地制作工作报告
不要泄密给竞争对手
同时,各个行业也有各自细分的职业操守,如:
医生:救死扶伤,爱岗敬业
魔术师:不公开魔术的秘密
公安干警:重视调查研究,处理案件不捕风捉影,主观臆断
法律工作者:忠于宪法和法律,坚持以事实为根据
教师:为人师表,关爱学生
...
在 《匠艺整洁之道》 里,鲍勃大叔 提出了 10 条软件开发人员的职业操守。
以下摘自 《匠艺整洁之道》 :
为捍卫和维护计算机程序员职业的荣誉,我承诺,尽我的能力和判断力:
我不写有害的代码。
我生产的代码将永远是我最好的作品。我不会故意让那些在行为或结构上有缺陷的代码累积起来。
我将在每次发布时提供快速、确定和可重复的证据,证明代码的每个元素都能正常工作。
我将经常进行小规模的发布,不妨碍其他人的进展。
我将无畏地、毫不留情地利用一切机会改进我的创作。我绝不让它变更差。
我将尽我所能尽可能地提高自己和他人的生产力。我不会做任何降低生产力的事。
我将一直确保其他人能够补上我的位置,我也能够为其他人补位。
我将给出在数量级和精确度上都靠谱的预估。我不会做出没有把握的承诺。
如果我的程序员同事拥有足够的操守、标准、纪律和技能,就能赢得我的尊重。任何其他的属性或特征都不会成为我尊重程序员同事的因素。
我永远不会停止学习和改进我的技艺。
程序员的职业操守?
鲍勃大叔提出的这 10 条誓言可以分为三个类型:伤害、集成、团队合作,我们针对这三个类型分别展开聊聊。
我不写有害的代码。
我生产的代码将永远是我最好的作品。我不会故意让那些在行为或结构上有缺陷的代码累积起来。
我将在每次发布时提供快速、确定和可重复的证据,证明代码的每个元素都能正常工作。
Go语言异常处理(Panic和recovering)用法详解
MonoJSG:联合语义和几何代价函数的单目3D目标检测(CVPR2022)
ajax算是前端还是后端,javascript属于前端还是后端?
使用Vite快速构建前端Vue3项目,感受更轻更快的开发体验,前端最新技术尝试
【docker专栏2】CentOS操作系统安装DockerCE
arm linux 内核 c=,Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7)...
【云原生丨Docker系列3】Docker容器的基本操作方法