什么是代码夹带
代码夹带是一个并不陌生的词组。一般的理解是在正常的代码中夹带入别有用心的其它代码。
通过网上搜索,得到如下:
其通常在计算机正常的程序传播当中将额外的一段代码夹带着,对计算机的网络安全造成破坏。从表面上看来,其不会对计算机进行主动攻击,但是只要安装了正常程序,而该程序...
知道任何保密条款也无法阻止员工夹带代码出去。您必须保证您是诚实的,稳定的;由于我们的程序非常复杂(仅PHP文本就3G),资深的程序员需要半年,才能了解代码的结构及..
但某些组织里还有另外一种情况也被称为代码夹带,这种情况是当前版本里多了当前版本不需要的代码,这些代码对当前版本没有任何用处,可能影响当前版本的功能和性能等,这种情况也被称为代码夹带。 发生这种代码夹带的典型场景是某些功能开发了一半,但是要发布了,这样未完成部分功能对应的代码就是夹带的代码。
为了避免这部分未完成代码的干扰,需要采取屏蔽手段,以让它们不干扰已经完成的部分。
显然这两种代码夹带是截然不同的。 前一种是恶意的,违反法律的;后一种几乎是软件开发中常见的现象。
所以,将后一种称之为“代码夹带”是过于危言耸听了。
如何称呼后一种代码夹带
首先,是不是修改掉这危言耸听的说法,比如冗余代码? 貌似也不合适,冗余代码往往是指留下来的包袱。
待完成代码是不是更加合适? 这个说法更加正能量啊!
如何处理后一种代码夹带-待完成代码?
当前常见的有如下几种方法:
1,多分支 , 给每块待做特性(新功能,优化等)单独拉出分支,当分支完成开发,再合并到主干。
2,特性开关,仍然在主干或者单分支上进行开发,利用特性开关来调试和发布,当需要发布,但某特性还没有完成时,把开关关闭;完成后打开。
特性开关大而化之有2大类:1,编译前调节(加开关,或者注释掉调用入口) 2,编译后调节。
一般的采用编译后调节,典型的开源软件是Toggle,不少组织自行开发了自己的特性开关。
3,结合灰度发布的特性开关, 这个就复杂了。各个不同beta版本给到特定范围的用户来用,灰度加特性开关一起用,一般组织玩不转。先玩好上面的再说吧!但移动互联网或者互联网2.0时代,这几乎已经是明朗的趋势。对一些组织而言,市场会逼着玩的,否则就玩完了。
小结
1,后一种代码夹带不是洪水猛兽,也许不必使用“代码夹带”这样吓人的说法。
2,后一种代码夹带不妨改称为含有待完成代码,值得积极的应对,而不是一杆子打死。
3,对待完成代码,已经有不少可供参考的方法,值得探索。