图片动画自网络
1、这个小动画曾一度在研发圈里热传。它真实的展现了,现实中研发人员“苦逼”的一面。我们无奈地,苦苦地,一笑之后,思考一下这是为什么。
2、大多数程序员以战术编程的心态来进行软件开发,他们的主要重点目标是新功能的上线或者错误的修复。咋一看,这似乎是合理的,还有什么比快速编写有效的代码更重要的呢。这样的开发者,着眼于使功能尽快运行,而不是想拥有一个良好的设计。我们称为:战术龙卷风编程者。代码风格就是这个图片呈现的样子。
图片自网络
3、这样的思维一旦传播,就会形成一种风气。“团队新人不熟悉系统,为了急于上线一个特性,又不想影响到系统的其他部分,就会很自然地在某个地方加一个 flag,然后在所有需要改动的地方加 if 判断,而不是去调整系统设计以适应新的问题空间。”
4、曾经我带一位实习生,前来跟我抱怨,说这段代码实在是太恶心了,花了很长时间才看懂,并且代码非常僵硬,根本不能扩展,而正好这个需求需要改动到这里,代码真的就像“一坨屎”。我问他最后是怎么处理的,他说,我给它又加了“一坨屎”。
5、难怪《代码整洁之道》的作者Bob大叔,在书中描述,”人们说脏话的频率是衡量代码质量的唯一标准。“
6、“几乎每个软件开发组织都有至少一个将战术编程发挥到极致的开发人员,而且常常被视为团队”英雄“,因为能“快速完成任务且高产。”
网上也流传着这样一首“诗歌”:
代码写得好,下班走的早。
领导瞧一瞧,绩效往下调。
代码写的烂,加班除炸弹。
领导看一看,提拔当骨干。
7、时间久了,用的人多了,后果也很大。战术编程的问题是它是短视的。你会心理上认为和告诉自己,可以增加一些僵化或者引入一两个小错误,如果这样可以使当前任务更快地完成,则可以。但,这就是系统变得复杂的方式,系统的复杂度是递增的,是数十个、数百个小事务的积累。结果,就是开头这个动画展示的样子。
8、有没有什么方法可以避免这样的一场浩劫呢。我们仔细回顾自己组织内的生产实际情况,便可以找到类似如下这样的因素。
想简单图省事,没有及时治理不合理的内容
缺少匠心追求,对肮脏代码视而不见
技术能力不够,无法应对复杂系统
交接过渡缺失,三无产品几乎无法维护