首页 > 代码库 > 代码夹带是洪水猛兽吗?

代码夹带是洪水猛兽吗?

什么是代码夹带

代码夹带是一个并不陌生的词组。一般的理解是在正常的代码中夹带入别有用心的其它代码。

通过网上搜索,得到如下:

其通常在计算机正常的程序传播当中将额外的一段代码夹带着,对计算机的网络安全造成破坏。从表面上看来,其不会对计算机进行主动攻击,但是只要安装了正常程序,而该程序...

知道任何保密条款也无法阻止员工夹带代码出去。您必须保证您是诚实的,稳定的;由于我们的程序非常复杂(仅PHP文本就3G),资深的程序员需要半年,才能了解代码的结构及..

但某些组织里还有另外一种情况也被称为代码夹带,这种情况是当前版本里多了当前版本不需要的代码,这些代码对当前版本没有任何用处,可能影响当前版本的功能和性能等,这种情况也被称为代码夹带。 发生这种代码夹带的典型场景是某些功能开发了一半,但是要发布了,这样未完成部分功能对应的代码就是夹带的代码。

为了避免这部分未完成代码的干扰,需要采取屏蔽手段,以让它们不干扰已经完成的部分。

显然这两种代码夹带是截然不同的。 前一种是恶意的,违反法律的;后一种几乎是软件开发中常见的现象。

所以,将后一种称之为“代码夹带”是过于危言耸听了。

如何称呼后一种代码夹带

首先,是不是修改掉这危言耸听的说法,比如冗余代码?  貌似也不合适,冗余代码往往是指留下来的包袱。   
待完成代码是不是更加合适?  这个说法更加正能量啊!

如何处理后一种代码夹带-待完成代码?  

当前常见的有如下几种方法:
1,多分支 , 给每块待做特性(新功能,优化等)单独拉出分支,当分支完成开发,再合并到主干。
2,特性开关,仍然在主干或者单分支上进行开发,利用特性开关来调试和发布,当需要发布,但某特性还没有完成时,把开关关闭;完成后打开。
     特性开关大而化之有2大类:1,编译前调节(加开关,或者注释掉调用入口)   2,编译后调节。    
     一般的采用编译后调节,典型的开源软件是Toggle,不少组织自行开发了自己的特性开关。 
3,结合灰度发布的特性开关, 这个就复杂了。各个不同beta版本给到特定范围的用户来用,灰度加特性开关一起用,一般组织玩不转。先玩好上面的再说吧!但移动互联网或者互联网2.0时代,这几乎已经是明朗的趋势。对一些组织而言,市场会逼着玩的,否则就玩完了。

小结

1,后一种代码夹带不是洪水猛兽,也许不必使用“代码夹带”这样吓人的说法。
2,后一种代码夹带不妨改称为含有待完成代码,值得积极的应对,而不是一杆子打死。
3,对待完成代码,已经有不少可供参考的方法,值得探索。





代码夹带是洪水猛兽吗?