箴言是用来表达在很短的和令人难忘的时尚普遍真理或生活的经验教训。我觉得他们是一个伟大的方式来对待事情,无论是在生活和工作。正因为如此,我已经组建了每一个开发者需要在他们的军火库10编程谚语。

1。目前无风不起浪

放松。它可能只是一个消防演习

设计糟糕的代码往往表现出来,通过一些常见的搬弄是非的标志。这些的例子有:

  • 巨人类和/或功能
  • 注释掉的代码块大
  • 重复的逻辑
  • 深层嵌套的if / else块

开发人员经常将其称为代码气味,但就个人而言,我认为术语“码烟”或“代码烟雾”是比较合适的,因为它意味着紧迫性更高的意识。如果不解决根本问题,它会回来给你烧稍后。

2。一盎司的预防胜过一磅的治疗

好吧,我相信

20世纪80年代的丰田的装配生产线是著名的高效率,由于其对缺陷预防革命性的方法。流水线的每个成员给予停止生产时,他们发现在他们的领域中的问题的能力。当时的想法是,这是更好的停止生产,并早在尽可能比继续生产故障的单位,这将是更强硬,更昂贵的修复/更换/召回后的解决这个问题。

开发者经常出现故障的假设,即生产力=快速制造出的代码。许多程序员潜水直入编码没有对设计第二个想法。不幸的是,这LEEROY詹金斯对软件开发方法往往会导致草率的,脆弱的代码,将需要不断监测和修补-甚至完全取代了线。最终,生产率必须不仅在多少时间花在写它衡量,也多少时间是花在调试它。的短期收益可能会被证明是一个长期的损失,如果一个不小心。

3。不要把所有的鸡蛋放在一个篮子里

软件团队的巴士系数被定义为“是谁,如果将丧失工作能力的关键开发者的总人数,由击中了一辆公交车,送项目到这样混乱,这将无法继续进行”。

换句话说,会发生什么,如果你突然失去了你的团队的主要成员?将业务如常或将它停顿下来?

不幸的是,大部分的软件团队属于后一类。这些都是把他们的程序员变成“领域专家”谁只处理那些落入他们的专业领域要求的队伍.. 起初,这似乎是一个相当合理的做法。它的工作原理为汽车制造组装线,为什么不为软件开发团队?毕竟,这是不合理的团队的每个成员非常熟悉每一个细微之处中的应用,对不对? 

问题是,开发人员不能容易地被取代的和取代。虽然皮江法孔方法效果相当好,当每个人都可以占,它很快分崩离析,当“领域专家”突然变得由于营业额,疾病,甚至是怪胎巴士意外不可用。至关重要的是,软件开发团队具有某种冗余内置代码审查,结对编程,和公共代码很长的路要走,以营造一个环境,让每个开发者至少是表面上熟悉该系统的部分之外自己的舒适区。

4。一分耕耘,得豆

语用程序员  有这样说的  破窗理论

不要让“破窗”(坏的设计,错误的决策,或不良代码)未修复。一旦它被发现解决每一个。如果没有足够的时间来正确地解决它,然后登上它。也许你可以注释掉的代码,或显示“未实现”消息,或替代虚拟数据代替。采取一些行动,以防止进一步的损害,并表明你对形势顶部。

我们已经看到了干净,功能系统恶化很快,一旦窗口开始破裂。有迹象表明,可以促进软件腐烂等因素,我们将谈谈其中的一些其他地方,而忽略加速腐烂比任何其他因素更快。

简而言之,好的代码由此引发良好的代码和糟糕的代码由此引发错误的代码。不要低估惯性的力量。没有人想成为谁有权清理马虎的代码之一,但也没有人想成为那个能够使一个烂摊子出漂亮的代码。写它的权利,你的代码将有一个更好的机会在站在了时间的考验。

5。大欲速不很大的浪费

经理,客户和程序员越来越由天更不耐烦了。一切需要做的事情,它需要做的事情现在正因为如此,扔在一起黑客和快速修复的诱惑变得非常艰难抵抗。

没有时间好好单元测试一项新功能?   哦,它的工作原理进行了一个测试来看,你把它通过。您可以随时回来,以后!

神秘的对象引用错误,当您尝试访问属性Y?  不管,只是把周围的代码中的try / catch块。我们有更大的鱼要炸!

听起来很熟悉?这是因为我们都及时在某些时候这样做。而在某些情况下,它是合理的。毕竟,我们有最后期限,以满足和客户/经理来满足。但这样做太频繁,你很快就会发现自己有一个非常不稳定的代码库满修补程序,重复的逻辑,未经测试的解决方案,以及多孔的错误处理。最后,你有罢工做事情和做事情之间的平衡权利

6。三思而后行

术语“ 敏捷开发 “的使用和经常滥用的这些天,常常作为一种手段,程序员的理由无视软件开发可怕的规划/设计阶段。我们是创造者,正因为如此,我们从中获得乐趣看向成品制造实际进展。出人意料的是,UML图用例分析只是似乎并不满足这一愿望。因此,我们开发人员经常开始编码没有我们在做什么,或我们要去的地方的任何想法。这就像往出去吃晚饭的时候你还没有决定在哪里你想去的地方。你饿了,这样你就不想浪费时间寻找餐厅和预订表格。相反,你只是跳在你的车和图你会想到一路上的东西。只是,它最终带你不再因为你必须做出一堆掉头并停在餐厅,最终有太长的等待。诚然,你可能会发现自己的方式最终食物,但你可能并没有结束,你想吃饭,它可能花了很多时间和麻烦比它有你刚才打电话订了预订一餐厅你想去。

7。当你拥有的唯一工具是一把锤子,一切看起来都像钉子

看到了吗?*我告诉你*活动记录将努力为这个项目!

程序员有一种倾向,让视野狭窄,当涉及到他们的工具。一旦东西“只是工作”对我们在一个项目中,我们往往会坚持使用它的每一个项目以确定。它可以是一个痛苦的学习新的东西,有时,高度不安。我们正在考虑在整个时间“这本来就容易有我只是做了它的老办法!”。够了这些时刻,我们将简单地与我们所知道的去,即使它不是一个完美的适合的任务。

这很容易坚持你所知道的,但是从长远来看,它更容易挑选适合这份工作的合适的工具。否则,你将装修方钉成圆形孔为你的职业生涯的其余部分。

8。沉默被解释为批准

 

我看到什么!努赫东西!

这种关系在与破碎的窗户和编程惯性理论,只有在更大的规模。   
编程社区就是这样,一个社区。每个程序员是工艺的反映。被释放到野外的更坏的代码,它越变得现状。如果不作出努力,写出好的,干净的,固体的代码,你会发现自己不得不在某一天到一天的基础上与它合作。

同样,如果你看到别人写的设计不当的代码,你应该作出努力,以与创造者要拿出来。我要指出,然而,圆通应该在这种情况下被聘用。一般情况下,程序员都愿意承认他们不知道一切有了解软件的开发,并会欣赏的姿态。我们都受益,当我们互相帮助。视而不见的问题只延续了他们。

9。在丛林中一鸟在手胜过二

有一个时间和地点讨论系统架构和重构的机会,一时间只是把事情做好。重要的是要权衡改造一些已经工作只是为了使它更清洁的优点和缺点是很重要的。这是一个令人钦佩的目标,当然,但总是会有的代码要重组。编程世界只是改变过于频繁的代码没有得到过时。但在某些时候,你必须提供价值给客户。简单的事实是:你不能同时做两件事情。更多的时间,你花重构旧代码,在更短的时间你花费创建新的代码。寻求平衡是提高以及维护你的应用程序及时至关重要。  

10。随着大国意味着巨大的责任

软件无疑已经成为我们生活中不可或缺的重要组成部分。正因为如此,实行良好的软件开发比以往任何时候都更加重要。这是一件事有一个错误在游戏傍的,它的另一个有一个在航天飞机或空中交通管制系统的制导系统。  Slashdot的最近发布的文章描述了如何在一个小故障谷歌新闻单枪匹马蒸发$ 1.14十亿在股东财富。此类事件证明我们多大的权力执掌。这是一个有点吓人认为你今天写的,不管你想让它还是不是代码,有朝一日可能会被回收并依赖于关键任务的应用程序。相应地写。