老板:快下班了,这有个小bug修复完再走

149c9d958c2d33925d0f0850ec280047.gif

 图片动画自网络

1、这个小动画曾一度在研发圈里热传。它真实的展现了,现实中研发人员“苦逼”的一面。我们无奈地,苦苦地,一笑之后,思考一下这是为什么。

2、大多数程序员以战术编程的心态来进行软件开发,他们的主要重点目标是新功能的上线或者错误的修复。咋一看,这似乎是合理的,还有什么比快速编写有效的代码更重要的呢。这样的开发者,着眼于使功能尽快运行,而不是想拥有一个良好的设计。我们称为:战术龙卷风编程者。代码风格就是这个图片呈现的样子。

c42b3a820dd09d0007cb36e24e8241d8.png

 图片自网络

3、这样的思维一旦传播,就会形成一种风气。“团队新人不熟悉系统,为了急于上线一个特性,又不想影响到系统的其他部分,就会很自然地在某个地方加一个 flag,然后在所有需要改动的地方加 if 判断,而不是去调整系统设计以适应新的问题空间。”

4、曾经我带一位实习生,前来跟我抱怨,说这段代码实在是太恶心了,花了很长时间才看懂,并且代码非常僵硬,根本不能扩展,而正好这个需求需要改动到这里,代码真的就像“一坨屎”。我问他最后是怎么处理的,他说,我给它又加了“一坨屎”

5、难怪《代码整洁之道》的作者Bob大叔,在书中描述,”人们说脏话的频率是衡量代码质量的唯一标准。“

6、“几乎每个软件开发组织都有至少一个将战术编程发挥到极致的开发人员,而且常常被视为团队”英雄“,因为能“快速完成任务且高产。”

网上也流传着这样一首“诗歌”:

代码写得好,下班走的早。

领导瞧一瞧,绩效往下调。

代码写的烂,加班除炸弹。

领导看一看,提拔当骨干。

7、时间久了,用的人多了,后果也很大。战术编程的问题是它是短视的。你会心理上认为和告诉自己,可以增加一些僵化或者引入一两个小错误,如果这样可以使当前任务更快地完成,则可以。但,这就是系统变得复杂的方式,系统的复杂度是递增的,是数十个、数百个小事务的积累。结果,就是开头这个动画展示的样子。

8、有没有什么方法可以避免这样的一场浩劫呢。我们仔细回顾自己组织内的生产实际情况,便可以找到类似如下这样的因素。

想简单图省事,没有及时治理不合理的内容

缺少匠心追求,对肮脏代码视而不见

技术能力不够,无法应对复杂系统

交接过渡缺失,三无产品几乎无法维护

除了上述内容外,我们还可以想到很多种理由。但在这些理由之中,我们似乎发现它们都有一个共同的指向 - 软件开发工程师,似乎所有复杂的源头就是软件工程师的不合格导致,所以,其实一些“罪恶”的根因就是我们自己?

今年9月5日,我在QCon大会性能优化主题中,也讲到了关于代码腐化,及团队文化冲突的内容。如需完整PPT,请加微信:wangxindong2015,备注PPT。

文中部分内容素材取自网络。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值