《代码整洁之道:程序员的职业素养》一一

简介:

前言

代码整洁之道:程序员的职业素养
image

1986年1月28日,美国东部时间上午11:39,“挑战者”号航天飞机在发射仅73.124秒后,因右侧固体火箭推进器的故障,在1.5万米的高空化成碎片。7名航天勇士魂断苍穹,其中包括高中教师克丽斯塔·麦考利芙。麦考利芙的母亲亲眼目睹女儿在1.5万米高空中不幸罹难,当时她脸上的表情,至今印刻在我的心头无法拂去。

挑战者号之所以解体,是由于高热气体从出现故障的固体火箭推进器的外壳接缝处泄露出来,喷到外部燃料舱体上。主液氢燃料舱底部发生爆炸,液氢被点燃,并将液氢燃料推入上方的液氧燃料舱中。与此同时,固体火箭推进器脱离了下支架,开始绕上支架滚动。推进器的机头捅破了液氧舱。异位滚动的推进器导致整个飞行器逆向气流旋转,但同时仍然以1.5马赫的速度飞行。在巨大的过载下,挑战者号迅速被撕成碎片。

在火箭推进器的圆形接缝处,有两个由合成橡胶制成的同心密封圈。当壳体通过螺栓连接在一起时,密封圈被压缩,起到密封作用,确保气体不会从接缝处逸出。

但在发射前夜,发射台气温降到了-8℃,比密封圈的最低承限温度低了13℃,比以往发射气温低了18℃。这个气温下的密封圈已经硬得失去了弹性,无法很好地密封高热气体。推进器点火后,高热气体迅速累积,对壳腔形成了压力脉冲。助推器壳体向外膨胀开来,密封圈受到的压力变小。但是硬化的密封圈缺乏弹性无法保持密封,一些高热气体就泄漏出来,并且将密封圈上超过1/6的部分都气化了。

设计推进器的莫顿·赛奥科公司的工程师事前已经知道密封圈有问题,并早在7年前就已经将这些问题报告给莫顿·赛奥科公司和美国宇航局的管理人员。事实上,在以前的发射中,密封圈就曾出现过类似的损坏,只是没有引发灾难而已。发射气温越低,后果就越严重。工程师们已经针对该问题设计了修复方案,但修复方案却迟迟未得以实施。

工程师们知道密封圈在低温的时候会硬化。也知道挑战者号发射时的气温比以往任何一次发射时的都要低,远低于红色警戒线。简而言之,这次发射的风险太高了,他们不能对危险视而不见。于是他们写了备忘录,发出高危预警信号。他们强烈要求赛奥科公司和美国宇航局的管理人员们取消此次发射任务。在临发射数小时前所开的紧急会议上,这些工程师展示了最有说服力的数据。他们摆事实、讲道理,软硬兼施,拒绝执行这次发射任务。但最后,管理人员们却对此无动于衷。

发射时,一些工程师不忍观看现场直播,因为他们担心发射台上会发生爆炸惨剧。但是,随着挑战者号优雅升空,他们开始有点安心了。就在挑战者号解体前的瞬间,看着飞行器已经迈过1马赫的关口时,一位工程师还说他们已经“躲过一劫”。

管理人员们听不进去工程师们的抗议,也不看备忘录,更没有命悬一线的危急感。他们认为自己更了解情况,认为工程师们小题大做了,他们不相信工程师们的数据和结论。他们之所以进行这次发射任务,是因为面临着很大的财务和政治压力。他们对此心存侥幸,希望一切都能平安无事。

这些管理人员不只是愚蠢至极,他们是在草菅人命。他们以为自己才是专家,他们的恐惧、希望和直觉才是准的。恰恰是因为他们的自以为是,七名优秀宇航员的生命以及一代人对太空旅行的梦想,都在那个寒冷的早晨一起灰飞烟灭了。他们篡夺了真正了解情况的工程师们的权力。

而那些工程师呢?当然,工程师做了他们应该做的事情。他们通知了管理人员,并且极力捍卫自身立场。他们经由适当的渠道,调用了所有合适的沟通协议。他们做了在体系内力所能及的事情,只是最后不得不听从领导的决定。因此,看起来工程师可以问心无愧了。

但是,我不知道那些工程师之中,是否有人会躺在床上夜不能寐,眼前浮现克丽斯塔·麦考利芙母亲脸上的惨痛表情,为之前没有给丹·拉瑟[1]打电话而悔恨不已。

目录

第1章 专业主义

**1.1 清楚你要什么
1.2 担当责任
1.3 首先,不行损害之事
1.4 职业道德
1.5 参考文献**

相关文章
|
jenkins Java Devops
【DevOps】Idea 集成 jenkins 插件
【DevOps】Idea 集成 jenkins 插件
2027 0
【DevOps】Idea 集成 jenkins 插件
|
网络协议 域名解析 网络架构
DNS详解: A记录,子域名,CNAME别名,PTR,MX,TXT,SRV,TTL
DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务)。域名系统为Internet上的主机分配域名地址和IP地址。由于网络中的计算机都必须有个IP地址,来识别, 互相之间才能通信,但让我们记住一大串的IP地址来访问网站显然是不可能的,所以用户使用域名地址,而DNS系统的功能就是自动把域名地址翻译为IP地址。
20231 0
|
SQL 存储 缓存
日志服务 SQL 引擎全新升级
SQL 作为 SLS 基础功能,每天承载了用户大量日志数据的分析请求,既有小数据量的快速查询(如告警、即席查询等);也有上万亿数据规模的报表级分析。SLS 作为 Serverless 服务,除了要满足不同用户的各类需求,还要兼顾性能、隔离性、稳定性等要求。过去一年多的时间,SLS SQL 团队做了大量的工作,对 SQL 引擎进行了全新升级,SQL 的执行性能、隔离性等方面都有了大幅的提升。
487 98
|
Python
Django 框架的路由系统
Django 框架的路由系统
338 63
|
搜索推荐 数据挖掘 API
制造业CRM解决方案:管理升级之道
制造业面临订单价值大、交货周期长、客户开发难等挑战。CRM 系统通过全面管理客户信息、精准营销、改善服务质量和订单管理,有效解决了这些问题。成功案例显示,CRM 系统能显著提高销售转化率和客户满意度。推荐的 CRM 系统包括销售易、SalesForce、神州云动 Cloud CC、用友 CRM、金蝶 CRM 和 Zoho CRM。选择合适的 CRM 系统对制造业的数字化转型和可持续发展至关重要。
|
人工智能 弹性计算 运维
触手可及:阿里云函数计算助力AI大模型的评测
阿里云推出的面向AI服务器的功能计算(Functional Computing, FC),专为AI应用提供弹性计算资源。该服务支持无服务器部署、自动资源管理和多语言支持,极大简化了AI应用的开发和维护。本文全面评测了FC for AI Server的功能特性、使用体验和成本效益,展示了其在高效部署、成本控制和安全性方面的优势,并通过具体应用案例和改进建议,展望了其未来发展方向。
531 4
|
Python
python解包字典到函数参数
【7月更文挑战第5天】
212 2
|
JavaScript 前端开发 数据格式
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
933 0
|
搜索推荐 数据可视化 BI
ECharts 蓝色系-荧光图标折线图01案例
ECharts 案例展示了一周内各路线数据的蓝色荧光折线图,揭示流量趋势。预览包括静态图片和动态GIF。使用ECharts 5.2.0配置图表,包含背景、网格、图例及数据。代码示例初始化图表、定义X轴类别和Y轴值,以及系列颜色。完整案例可在链接中下载。案例结合动态效果与个性化设计,增强数据可视化的吸引力。
403 0
ECharts 蓝色系-荧光图标折线图01案例
|
监控 数据可视化 测试技术
集成阿里云 RPA 与现有系统
随着企业对自动化和数字化转型的需求不断增长,阿里云 RPA(机器人流程自动化)技术成为了提升业务效率和减少人工操作的重要工具。本文将介绍如何集成阿里云 RPA 与现有系统,以实现更高效的业务流程自动化。