服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

世界上最完美的两个软件,太厉害了!

日期: 来源:码农翻身收集编辑:码农翻身刘欣

今天给大家介绍两个软件,一个体现了人类在软件开发流程上的极致,另外一个则体现了程序员个体能力的巅峰



01
航天飞机飞控软件


先来说第一个,航天飞机飞行控制软件,就是下图这个大家伙。



航天飞机重达120吨,还携带着2000吨的燃料。


它有四台硬件相同,软件也相同的计算机对发射过程进行精准控制,从几千个传感器中提取信息,每秒做出几百个决定,并且对每个决定进行投票。


第五台计算机,则运行着不同的软件,随时待命,准备替换其他发生故障的计算机。


这些计算机要确定什么时候对主发动机点火,什么时候下令固体火箭助推器点火,火箭姿态控制....


每次发射,软件都控制着价值40亿美元的设备,六名航天员的生命,以及国家的梦想。


这个软件不能崩溃,不能重启,最小的误差都不允许:一个三分之二秒的计时错误就会使航天飞机偏离航线近5公里。


洛克希德马丁公司的航天飞机小组实现了目标:软件几乎没有错误,接近完美。


软件的最后三个版本,每个版本(42万行代码)只有一个Bug。


最后的11个版本一共有17个错误,同等复杂度的商业程序有5000个。


这样的软件是如何炼成的呢?


答案是极为苛刻软件流程。


洛克希德马丁公司的航天飞机软件小组有260名员工,这些人创造了一种完全不同的开发文化。


没有超级明星程序员,开发软件的整个流程都是有意设计的,不依赖任何特定的人。


这个流程使得他们过上正常的生活,满足最后期限,交付完全符合其承诺的软件。


这个流程包含几个要点:


1. 软件的质量取决于软件的计划


在航天飞机软件开发小组,软件开发周期中有三分之一的时间不写代码,而是和NASA一起用来讨论需求:软件应该做什么事情。


即使是最微小的细节也要达成一致。不是口头达成一致,而是写下来,文档化,形成规范,非常专业和精确。


未经双方的同意,规范中的任何内容都不会更改。


没有良好定义的规范,程序员不会改任何一行代码。


例如让航天飞机使用GPS导航,这一变化仅涉及6366行代码,占程序总量的1.5%, 但是相关的文档长达2500页,涵盖了各种各样的条件,分支,几乎就是伪代码了。


而航天飞机系统的软件,总文档足足有30卷,40000页!


2. 两个百科全书式的数据库


一个是代码历史的数据库,每一行代码都有注释,显示每次的更改时间,更改原因,更改目的,有哪些文档详细说明了更改。


对于代码发生的一切都记录在这里,每一行代码的“祖谱”都可以立刻提供给每个人。


第二个是错误数据库,记录了软件在编写和运行时发生的每一个错误,可以追溯到近20年前。


每个错误都会记录下它被发现的时间,是谁发现了它,当时正在发生什么活动(测试,训练,飞行),错误是如何引入的,为什么逃过了设计阶段,开发阶段,测试阶段的严格审查.....


由于积累了如此多的数据,以至于他们开发了一个代码模型,能预测某个版本中可能有多少错误。


如果开发人员和测试人员发现的Bug太少,大家会重复流程,努力使得现实和预测相匹配。


3.不止要修复错误,要修复任何引入错误的东西


如果软件存在缺陷,那么编写它的方式一定存在问题。


在计划阶段没有发现的Bug,是如何逃过检查的?检查流程是否出了问题,是不是要在checklist上增加一项检查?


重要的是,不要将错误归咎于个人。流程要承担责任---启动一个分析的流程来发现Bug的原因。


航天飞机软件开发小组的流程是如此强大,不仅仅通过了SEI CMM5的认证,而且SEI的不少标准就来自于这个小组的各种实践。


洛克希德马丁开发了近乎完美的软件,大家肯定会想到一个问题:这种开发方式会不会扼杀创造力?


他们的回答是:会,因为大家必须按照手册上规定的流程去做,并且时时刻刻都有人在背后监督。


人们必须将创造力用于改变流程,而不是改变软件。



02
排版软件TEX


经典巨著《计算机程序设计的艺术》在程序员界可谓是无人不知,无人不晓了。



1973年,这部刚出到第三卷的书(计划写七卷)已被计算机界视为“神作”, 1974年美国计算机学会就“迫不及待”的把计算机界的最高奖图灵奖授予高德纳。


此时高德纳仅仅36岁 !只靠一套还没有完成的书就获得ACM图灵奖,不但是前无古人,估计也后无来者了。


然而令人大跌眼镜的是, 拿到图灵奖以后, 高德纳宣布暂停写作, 理由竟然是现有的计算机排版系统太差,破坏了书的美感 !然后单枪匹马开发出了革命性的排版系统TEX , TEX至今仍是全球学术排版的不二之选。


TEX功能强大,几乎无懈可击,其版本号也很有意思,不是数字(3.0, 3.1, 3.2....) 也不是年份(Windows 95, 98, 2000...),而是不断逼近的圆周率 (3.1415926...) ,这从侧面反映了软件几近完美,不需要做改进了。


高德纳曾表示“最后一次升级是(于我过世后)将版本数改为 π,那时任何余下的漏洞将被看作程序的功能!


有趣的是高纳德为此还设置了奖金,谁能从TEX 发现第一个Bug ,奖励2.56美元,然后每年翻一倍,5.12,10.24......


作为算法的大师,不可能不知道指数增长的可怕性,但高德纳对自己的代码质量非常有信心,事实上,当奖金达到327.68美元以后,基本上就没什么Bug报出来了。 


那些找到Bug 的人收到高德纳签名的支票以后也不去兑换, 而是作为珍品收藏了 :-)


高德纳编程能力之强可以说是碾压硅谷的所有程序员,面向对象的发明人Alan Kay(2003年图灵奖)这么说过:


60年代末,当我在斯坦福从事AI项目时,每个感恩节我们都会和硅谷的编程高手们举行编程竞赛,McCarthy(人工智能之父,1971年获图灵奖)出题, 奖品是好像是一只火鸡。


高德纳参与的那一年,把我们都给虐了, 他的代码无论是程序执行和算法执行都是最快的,并且他用的是一台最慢的批处理机器!


我们问高德纳:“你是怎么做到的?”


他说:“当我学习编程时,如果每天有五分钟的时间使用机器,就高兴得不得了, 所以必须要让程序一次运行成功,没有错误,算法设计达到最佳。”


(完)


相关阅读

  • 2023年十大开源软件风险

  • 现代软件几乎80%的代码都是开源代码,开源软件已经成为现代软件开发的基石,但同时也是软件供应链中最薄弱的环节。根据应用安全公司Synopsys的调研,84%的商业和专有代码库中至少
  • 最好的工业化就是去工业化

  • 声明 | 本文不含商业合作整理 | 鳗鱼2月14日,2022年度中国游戏产业年会在广州召开。在国际观察——游戏制作工业化升级趋势主题论坛上,腾讯光子TA pipeline负责人刘纯一、字节
  • “再见了,b站!!”

  • 最近后台总有朋友私信我:“想学做视频,能不能分享一些软件和教程啊?”今天给大家推荐一波很实用的生产力工具!【影视后期入门学习资料】这些资料能干什么呢?——任何跟视频有关的
  • 12年!他领鹰飞长空

  • 12年,他用心血托举“雏鹰”高飞在清华大学2022年软件学院的毕业典礼上,软件学院副教授、软件2018级班主任刘玉身作为教师代表发言。在回顾了与八字班同学们一起经历的许多场景
  • 从现在开始,跨设备互传文件又多了个新选择!

  • 正如标题所言,今天世超又双叒叕来给大家推荐文件传输软件了。说起来,关于局域网内跨设备互传文件这事儿,我之前其实已经写过好几篇文章给大家分享过好几种方法,这些方法总结起
  • 五款小工具!功能啥的就不多说了,懂得都懂

  • 前言最近考研成绩陆续都公布出来了,省考也陆陆续续结束,不少人应该开始准备教师考试了吧,为了让大家在娱乐放松之余不忘记学习的重要任务,今天这一期,给大家带来几个好玩、实用的
  • Zlibrary 用不了,我们还有 Ylibrary!

  • 前言自从Zlibrary出现各种问题之后,广大网友也都贡献出自己的一份力,开发了不少替代品,上回我们给大家介绍了几款平替。今天正好也有一个类似的工具,实现电子书自由。除了查询电

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 世界上最完美的两个软件,太厉害了!

  • 今天给大家介绍两个软件,一个体现了人类在软件开发流程上的极致,另外一个则体现了程序员个体能力的巅峰。01航天飞机飞控软件先来说第一个,航天飞机飞行控制软件,就是下图这个大
  • 定了:终于来了!LOL玩家们狂喜吧!

  • 明人不说暗话今天就是来给各位同学送福利的想画老婆、萌妹、御姐等随意拿捏,各种设定由你掌控~看这里↓↓↓整理了一套免费的,全视频讲解的关于插画、漫画、原画等一系列绘画
  • 德州首个志愿服务联合会在庆云成立

  • 免费剪发、义诊体验、文化传承……3月3日,庆云成立全市首个志愿服务联合会,并组织21个特色项目开展雷锋志愿服务集中展示活动。现场,活动各具特色,志愿者热情服务,体验的群众络绎
  • 党委书记李兴伟为研究生讲授“开学第一课”

  • 2月27日是学校新学期开课第一天,教学秩序井然有序,全校师生均以饱满的热情投入到学习工作中。27日下午,学校党委书记李兴伟走进崂山校区第二报告厅,为2022级研究生讲授丰富生动
  • 收藏|三月境内外刷卡活动,看这篇就够了。

  • 到了 3 月,春的气息更加浓郁,草木复苏、花儿绽放,大自然温暖的生机,总让人不自觉地想出去走走。不仅城里的公园和郊区的绿地都是游客,境外出行也进一步复苏。据统计,3 月 1 日国际