代码夹带是洪水猛兽吗?

什么是代码夹带

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

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

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

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

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

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

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

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

如何称呼后一种代码夹带

首先,是不是修改掉这危言耸听的说法,比如冗余代码?  貌似也不合适,冗余代码往往是指留下来的包袱。

待完成代码是不是更加合适?  这个说法更加正能量啊!

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

当前常见的有如下几种方法:

1,多分支 , 给每块待做特性(新功能,优化等)单独拉出分支,当分支完成开发,再合并到主干。

2,特性开关,仍然在主干或者单分支上进行开发,利用特性开关来调试和发布,当需要发布,但某特性还没有完成时,把开关关闭;完成后打开。

特性开关大而化之有2大类:1,编译前调节(加开关,或者注释掉调用入口)   2,编译后调节。

一般的采用编译后调节,典型的开源软件是Toggle,不少组织自行开发了自己的特性开关。

3,结合灰度发布的特性开关, 这个就复杂了。各个不同beta版本给到特定范围的用户来用,灰度加特性开关一起用,一般组织玩不转。先玩好上面的再说吧!但移动互联网或者互联网2.0时代,这几乎已经是明朗的趋势。对一些组织而言,市场会逼着玩的,否则就玩完了。

小结

1,后一种代码夹带不是洪水猛兽,也许不必使用“代码夹带”这样吓人的说法。

2,后一种代码夹带不妨改称为含有待完成代码,值得积极的应对,而不是一杆子打死。

3,对待完成代码,已经有不少可供参考的方法,值得探索。

时间: 2024-10-17 04:05:11

代码夹带是洪水猛兽吗?的相关文章

错误和问题解决的成本

问题描写叙述 错误 数据收集 根本原因 版本号   组件:数据修复           在一个实际成本组织中,(平均,先进先出,后进先出) 一个或更 多的下面情况可能发生: 1.导航到物料成本历史表单上的数量信息,与现有量表单的数量不匹配的记录 2. 一些物料前期已计成本的数量与前面的事务处理历史表单的数量不匹配 3. 全部的库存值报表与事务处理值报表不匹配 4. 存货层次成本更新表单的总数量与现有量数量表单不匹配(只在先进先出/后进先出) 5.这些症状的不论什么一个意味着 MMT-CQL不匹配

技术团队代码管理和部署

主流公司使用svn和git作为代码版本管理,当然也不排除直接copy或者ftp.公司经历了的svn到git的变迁,也深刻体会到不同的版本管理服务,使得技术团队的协作方式变得更为流畅. 简单介绍下背景,有一个项目V5,从版本V1一直演变到现在V5,可见历史之久,想从svn切换到git,其中的代码管理和上线部署迁移,都会是经历很长一段时间的不稳定,尤其是一些开发同学对新的版本管理和部署理解不透彻,很容易引发事故. 在svn的主干开发流程 开发同学更新主干代码,提交代码 部署测试环境 检查每一个要上线

代码最佳实践

1:对于不可以为空的对象,尽早返回,且打出错误日志. a:直观,易读,容易查找错误 b:不会往下执行 能节约很多时间性能上的消耗 c:不会引起一些未知性异常 2:对于接口返回 ,还是需要返回原生对象,而不是跟某个协议耦合. a:按照之前的逻辑使用PB返回,那么dubbo使用不了,其他的框架也是使用不了的 b:如果把PB传到service里面,就会引起了很多跟业务逻辑不相关的一些代码,比如PB的封装.就会造成很混乱 c:好处就是PB比较轻,但是因为 我们的service和web几乎都是局域网 ,所

HTTP 请求夹带(smuggling)攻击

什么是HTTP请求夹带(smuggling)攻击HTTP请求走私是一种干扰网站处理从一个或多个用户接收的HTTP请求序列的方式的技术. 请求夹带漏洞危害,允许攻击者绕过安全控制,获取对敏感数据的未授权访问,并直接危及其他应用程序用户. HTTP请求夹带攻击是怎么发生的? 今天的Web应用程序经常在用户和最终应用程序逻辑之间使用HTTP服务器链. 用户将请求发送到前端服务器(有时称为负载平衡器或反向代理),此服务器将请求转发给一个或多个后端服务器. 在现代基于云的应用程序中,这种类型的体系结构越来

Xcode 快速开发 代码块 快捷键

Xcode的代码片段(Code Snippets)创建自定义的代码片段,当你重用这些代码片段时,会给你带来很大的方便. 常用的: 1.strong:@property (nonatomic,strong) <#Class#> *<#object#>;2.weak:@property (nonatomic,weak) <#Class#> *<#object#>;3.copy:@property (nonatomic,copy) NSString *<#s

solr分布式索引【实战一、分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例】

1 private static Properties prop = new Properties(); 2 3 private static String confFilePath = "conf" + File.separator + "config.properties";// 配置文件目录 4 static { 5 // 加载properties 6 InputStream is = null; 7 InputStreamReader isr = null;

微信支付PHP SDK —— 公众号支付代码详解

在微信支付 开发者文档页面 下载最新的 php SDK http://mch.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 这里假设你已经申请完微信支付 1. 微信后台配置  如图 我们先进行测试,所以先把测试授权目录和 测试白名单添加上.测试授权目录是你要发起微信请求的哪个文件所在的目录. 例如jsapi 发起请求一般是jsapi.php所在目录 为测试目录,测试白名单即开发人员的微信号. 正式的支付授权目录不能和测试的一样否则会报错.不填

如何上传代码到github?

如何上传代码到github? 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可: https://git-for-windows.github.io/ 1.进入Github首页,点击New repository新建一个项目  2.填写相应信息后点击create即可 Repository name: 仓库名称 Description(可选): 仓库描述介绍 Public,

自己写的代码会写了,还是太渣,复杂度什么的直接报表

原题目是这样子的,本人按照一贯的作风想得很简单 #include<iostream> using namespace std; void H(int n) { while (n > 1) { if (n % 2 == 0) //这一步把取余和除法弄混淆. { cout << n << " "; n = n / 2; } else { cout << n << " "; n = 3 * n + 1; }