那些年,我们见到过的最操蛋的代码

继上次那篇《维护一个烂系统是怎样一种体验?》,今天小近又来代码领域找乐了。

 

这次要说的是:那些年我们在公司项目见过的最操蛋的代码。(以下由知乎网友提供)

 

那些年,我们见到过的最操蛋的代码_第1张图片

不知道谁写的,总之我都看哭了

 

看枚举名字不知道五行(hang)是什么鬼,看了枚举内容恍然大雾,原来是五行(xing)……

 

看见这段代码的时候,我拍了很久的掌。

 

那些年,我们见到过的最操蛋的代码_第2张图片

......

 

 

 

很久以前我遇到一个做ANDROID的同事,写前端界面的时候肯定会有不少按钮之类的要声明,有些界面上的控件比较多,可是他不喜欢声明变量,对 不只是懒得起变量名,连声明都懒得写。所以他直接用数组。。。。 

所以他的代码里会出现很多类似这种: btns[0] list[1] 控件对象的引用方式,多么考验记忆力的编程方式啊,全宇宙只有他自己能维护这份代码了!!! 
这种写法完全解决了他懒得声明的问题啊,Button[] btns=new Button[10]; 只需一行代码,就有十个按钮可以用了!!!多么方便啊!!!只要自己一辈子都记住 0是确定按钮 1 是取消 2 是xxxx


“以前所在公司做激光雕刻软件,客户对雕刻速度有要求,于是乎大神把显示在客户端的所需时间乘上4/5。后来软件交给我维护,重写了界面,新版本到了客户手里雕刻速度变慢了,无论怎么优化雕刻算法,都不能达到原来的雕刻速度。 

后来忘记是怎么看到那个* 4/5了,真是买了表的


“我软有不少代码看上去挺好的但是会被标识成操蛋,这都归功于各种静态检查工具。

在我软代码里面起个变量名叫WhiteList都会被自动发bug,因为用White来表示允许就属于种族歧视,一定要改成AllowList。我会告诉你我们因此还真的改了服务接口而且还要做向下兼容吗?

还有变量名叫country也会被查,因为正确的说法是country and region。

我不是说public的类成员哦,private的都不行。

另外kill,dead之类的字眼都是有问题的。

当然你真的一定要用这些词你就得说明理由,然后加supression。

要像 @vczh 那样变量起名bitch什么的那是要死一百遍啊。

所以你现在知道写点代码有多难了吧。


“一个交易种类有两种类型,然后他用true和false各代表一种类型。从头到尾都用bool类型判断。然后现在需要添加第三种类型。

呵呵呵呵呵呵呵呵。。。。。。。。。。。


“哎。。。跟你们说个奇葩的事情吧。。。
背景:做手持设备的公司,你们可以理解成手机一样的东西。

第一家公司有个大神。写驱动的。
不知道怎么写并发的代码。。。

如果出现问题,就直接sleep。并且创造了自己的一套调试理论。

于是在代码里面就会看到各种莫名其妙的sleep(xxx)。
而且很多都还是神奇数字。不按那个休眠,并发就会出问题...

由于大神杰出的工作,让代码出问题的概率降到了8小时一次。

又特么由于猪队友的硬件设计,我们那里的机器电池在连续使用6小时之后就没电了,于是客户相当于每6小时就要重启一次机器...

嗯...于是,相安无事。

 

 


“我司新招进来的人分配在我的项目组,真是个人才,看看下面他写的代码,想死的心都有了。

saveUser(password);
savePassword(user);

有一段代码这样写:
if(isBind){
xxx(true);
} else{
xxx(false);
}
我review了之后说直接将isBind当参数传进行去了,结果人家改成这样:
if(isBind){
xxx(isBind);
} else{
xxx(isBind);
}

有个变量,用完了再初始化:
Callback mCallback;
sendRequest(mCallback);
mCallback=new Callback();

好多,无法一一列举了。直接把他踢出我们项目组,去祸害别的组吧。

 


“有次看一项目源码,注释里有个warning。 

// warning: Do not make any changes here.
// I got confused why it can run successfully. PLEASE Do not make any changes before you figure it out.

 

 

在深圳实习的时候,一个甲方那边来的家伙写的代码大概是这样的:
<script>
function xiugaidingdan() {
......
}
function caonimama(){
...
}
</script>
<div id="dingdan1">.....</div>
<div id="dingdan2">.....</div>
对,你没有看错,那个方法名就叫“caonimama”,这绝对不是段子,他就是这么写的。
我问他为啥取这样的名字,他说被甲方派过来心里很不爽....


“//Debug
System.out.println("你麻痹到底运没运行???");

      System.out.println("他妈的终于成功了!!!");

 

 

“从长度上来说,下面这个完爆

if(m_Str2.Find("'")>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find(':')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('/')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}

if(m_Str2.Find('!')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('@')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('#')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('$')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('[[[[[[[[[[[%]]]]]]]]]]]')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('&')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('^')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('*')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('(')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find(')')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('/')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('|')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find(':')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('[')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find(']')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('{')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}
if(m_Str2.Find('}')>=0)
{
AfxMessageBox("您输入的包含非法字符");
m_Str2="";
UpdateData(FALSE);
return;
}

哪怕不知道 RE,也该知道 FindOneOf 啊?!!!!
就是再不济,也写个循环吧。
谨遵 DRY 原则的程序员看到这段代码受到了 1024 Kg 的伤害。

当然,还有什么:
一个线程回调函数函数写了 700 多行的事情咱就不说了。
一个小小的项目专门定义了名叫 Global.h/cpp 的文件来放置全局变量咱也不说了。一个小小的项目中一二百个全局变量咱也不说了,这些全局变量中大部分还是指针变量咱也甭说了!!!
我去哭一会去。

 

那些年,我们见到过的最操蛋的代码_第3张图片

 

本文来自社区开源软件近乎微信公众号“jinhusns”。

 

你可能感兴趣的:(那些年,我们见到过的最操蛋的代码)