考虑到这一技术的重要性,和其他职业拥有的一样,Uncle Bob向软件程序员提议了一种宣言。
一年前,Robert C. Martin,也就是Uncle Bob意识到软件程序员的重要性,他写道:
我们统治了世界。…
没有一件发生在我们社会当中的事情离得开软件。没有…
如果没有了软件:不响。汽车不启动。飞机不起飞。炸弹不爆炸。烤箱不烤食物。车库门不开。钱不转手。电不产生。并且我们找不到去商店的路。…
Martin继续观察到,在社会作出重大贡献的程序员应负责和遵循职业道德,来为了社会的美好而运用他们所拥有的权力。程序员应该决定什么是他们的责任,并且这些责任政府或雇主不应该强加给他们。另外他受Order of the Engineer的启发而勾勒出一套职业道德的蓝图。一年后,Martin重写了道德的问题,这一次他写了更多关于代码的质量,提出了每一个成员都应该采用来“保护和维护这个行业的荣誉”的The Programmer’s Oath程序员宣言:
我将不会生成有害的代码。
我生成的代码将会永远是我?好的作品。我将不会故意发布在行为或结构上有缺陷的代码。
伴随每一次发布,我会生成一个、肯定以及可重复的证据让代码的每个元素都按它应该的方式工作。
我将做到经常、微小地发布,这样就不妨碍别人的进步。
我将勇敢地和不懈地完善代码,不放过任何机会。我将永远不会让代码变得更糟。
我将尽我所能来保持自己的生产率,和其他人相比尽可能的高。我将不会做任何会降低生产率的事。
我将时刻确保别人能代替我,并且我能代替他们。
我将生成的判断在幅度和精度上是可信的。我不会在不确定的时候作出承诺。
我将永远不会停止学习及改进我的技术。
Martin的提议在Twitter上得到了各式各样的反响,从:
?@klenkes74:我的假设是如果我严格根据那些规定生活,我的雇主会解雇我。
?@QuiteVague:大多数程序员不能够对此作出承诺——质量和业务需求之间的平衡并不掌握在他们的手上。…我已经把这些人中的每一个都提升到了各种各样的管理者当中。然后,正如我所说的,你赢得了一些,你失去了一些。
@DamienPetrilli: 非常的不切实际,完全不适用于现实世界中的大多数
@asthasr: #9是唯?有效的。其他的都是不可能实现的(“证据”)或者依靠我们不能控制的外部因素。
@sleepyfox: 由于天生的不确定性,我认为#8是不可能维持的。一个判断?好是一个猜测而不是一个承诺。
到:
@brianvhughes:在?好的情况下,#5 是有希望的。#8 是不可行的。 但是,这也不全是不好的。
@simonbrown: “我将永远不会停止学习及改进我的技术。”<- 对!
@Khris_Fernandez: 我会乐意从现在开始我们在我从事的每一个项目上都签下这个!可悲的是,有些事永远不会做。不管怎样,谢谢Bob。
@GGrell:我笑了,我哭了,我欢喜。这就是我每天争取写软件的一部分真实写照。
应答那些不赞同宣誓需求的人,Martin认为软件工程师应具备道德责任,并且像医生、律师和工程师一样,他们应该拥有一条宣言,这条宣言是“教条一般的定义”。
在相同的笔记上,Rugged Software的创始人已经写了几年The Rugged Manifesto,一系列程序员被邀请来遵守的原则:
我很坚固,更重要的是,我的代码很坚固。
我知道软件已经成为当今世界的重要基石。
我知道这种基石角色随之而来的就是重大的责任。
我知道我的代码会以我没有预期到的方式使用,会以与其当初设计目标不同的方式使用,使用期限也会超出初预期。
我知道我的代码会被充满才华而有毅力的敌对者攻击,他们会威胁我们的物质世界、经济运行和安全。
我知道这些事实,因此我选择变得坚固。
我很坚固,因为我拒绝成为漏洞和弱点的来源。
我很坚固,因为我的代码能够面对这些挑战,并不受它们的影响而继续运行。
我很坚固,不是因为这样做简单,而是因为这是必然之选,而且我已准备好面临挑战。
随着起誓与否,是否遵从宣言的每句话,可能每个人都同意软件工程师旨在编写出好的软件。那意味着什么以及如何实现它则是另一个故事。
请联系网站,了解详细的课程信息~
优质、便捷、省心