专栏首页linux、Python学习程序员垃圾代码分类指南

程序员垃圾代码分类指南

来源:纯洁的微笑

ID:keeppuresmile

作者:微笑很纯洁

上一篇文章《程序员垃圾分类图鉴》和大家聊了聊程序员的垃圾分类,有的程序员直呼太真实,有的程序员觉得太讽刺,不应该给程序员进行这样的分类。

其实每个行业都会存在各种各样糟糕的情况,娱乐性的分类会将问题放大,让我们能站出来用另一个视角来看看,什么类型的程序员是我们应该避免的。

做为一名老程序员,谁还没有写过几行垃圾代码,我到现在还记得在第二家公司离职时,写的那段超过 600 行一个方法的代码,可以想象后面接手我工作的同事,看到那段代码是什么样的感受。

那段代码已经过去了6年多,我现在仍然记得,可见有多痛。那 600 行代码真的巨复杂,嵌套了至少四个 for 循环,处理了思科 IP 话机最复杂的话费解析功能。为什么会出现这样的情况,因为时间!

那是我快离职的时候,领导仍然坚持让我工作到最后一分钟,就是写这段逻辑,害怕我走了之后,短期内没人搞的懂这块逻辑,所以只留了够写代码的时间,优化估计没考虑。

在距离拿到离职证明还剩最后一个小时,我还改了最后一个 bug,其实那家公司和领导真的很不错,只是离职交接这件事情,确实搞的有点小匆忙。

我一直都认为:好的代码是不断优化出来的,而不是一次敲出来的。正常情况下代码编写应该只占用30% 的工作,后面 70% 的工作就是不断的去优化它。

可惜的是,在中国互联网目前的情况下,后面 70% 的时间被不断压缩到了极致。很多程序员写完代码的时候,工期就到了,急匆匆的提交测试、上线投产。

在这样的情况下,代码质量完美、生产不出问题那就是世界第九大奇迹。中国很多互联网公司老板都相信这种奇迹,这个事情本身也挺奇迹的。

有什么的环境,就会产生什么样的产物,有时候这也是一种现实。

所以工作中有一些垃圾代码也是正常的,但出现”虎躯一震“的代码就比较少见了,对”虎躯一震“的代码进行分类那就更有趣了。

有人说,垃圾代码也是有价值的,当然这个观点我是认可的,因为你的排泄物也是有价值的,只是这个价值用在哪里。

还有补充一句,文中案例均为虚构,如有巧合,请来打赏!

1

干垃圾 | 虎躯一震代码

虎躯一震?被吓一跳算不算?反正我再看到那段代码,我的表情大概是这样的:

有一次我开了一个网站,网页半天没有反应,页面的右下面有一个”清理缓存“的超链接,于是就好奇的点了一下,没想到它立刻就弹出了清理完成!

作为一名老司机,习惯性的按下了:Ctrl+Shit+I 快捷键,就发现了下面这段牛X的代码。

<a href="javascript:alert('清理完成!')">清理缓存</a>

仔细查看了代码还发现有这样一个函数,del_yeye(); 一时看不出来这是要干嘛,跟着代码查过去发现是:

parent().parent().remove(); 

合着是要删除爷爷,方法命名很形象、很具体,给五星好评!心中升起一片由衷的佩服,果然乃我辈之将才!

当然我们后端程序员也不能示弱,就比如下面这段示例,代码简洁,命名规范,没个三五年经验写不出来这种代码。

这是一名资深程序员的素养。

当我在知乎看到这个分享,才明白我国的编程大任,已经顺利的传递到了祖国的花朵。以下是小咔的经历:

我曾经在我们学校办公室里看见一个六年级小学生熟练的在文本文档里敲出三行

:start
start cmd
goto start

我当时就震惊了

然后再看他熟练的放到c盘里,改后缀为bat,然后在桌面上新建个快捷方式,更改图标,重命名为“六年级教案大全”?!

当我下次再见到他时,他竟然带着两个人一起把整个办公室的电脑都创建了这个鬼东西???

可以想象的是,这位小朋友前途一片光明。

干代码建议处理措施:不建议、不倡导,但可以在自己家的电脑试用!

2

湿垃圾 | 风骚代码

写这么骚的代码,你们领导知道吗?

比如这个程序员,写了一段自动呼叫电话的程序,是这样的:

char a;
printf (“请输入您要呼叫的号码\n”);
scanf(“%char”,&a);
printf(“error!\n”);
printf (“系统异常,自动转呼!\n”);
printf (“正在拨号:110”);

不知道用户看到这段提示的时候,内心是不是这样:

当然在我们这行,没有最骚只有更骚,据说下面这段代码是 AI 最核心的代码,价值1个亿!!

其实我只想拿它试试能不能拿它融到一个小目标!

湿代码建议处理措施:发扬光大!

3

有害垃圾 | 毁灭性代码

三行代码教你做人:

drop database
rm -rf /
shutdown -h now

竟然有程序员找到了更牛逼的玩法,比如

sudo chmod -R 000 /

这些代码看了不止会虎躯一震,心里还会一揪,这是在诱导犯罪呀。

网上流传着一段【C++党】变量定义

#define int double
#define true false
#define max min
#define min max

果然是奇才,这种牛逼的方案完全可以推广到 Python ,Java ,PHP ,Golang...,并且把它打成组件包的时候,不知道会发生什么。

真正的程序员都是要给自己留后路的,比如上线后甲方突然说程序运行效率太低了,突然要求项目响应速度提升十倍!作为一名年轻的程序员,可会能哭晕在甲方爸爸的办公室。

但是对于一个资深的程序员来讲,这个都不是事儿!一行代码搞定所有性能优化问题,并且可以按照百分比进行定制!

这就是一名资深程序员的价值!

有害代码建议处理措施:建议启动垃圾回收机制!

4

可回收垃圾 | 可回收代码

一个关于for循环的凄美爱情故事

男孩

for(;;)printf("I LOVE YOU\n");

女孩回复

for(;;)printf("I LOVE YOU\n");

个人觉得,循环一百次的时候,应该一个 Thread.sleep() 或者 break,不然看着好像有点累。

还有一名网友的经历:

我原话和他说,你判断一下这些参数是否为空,不为空,就存库,懂吗?

他答,懂。

后来,我转过来看他代码

String A = parm.get("A");
String B = parm.get("B");

上头是我接的参数(不是源码)

以下是他写的,除了参数名不一样,完全没改

if('A'=='空'){
}else{
 System.out.println("存入A");
}
if('B'=='空'){
}else{
 System.out.println("存入B");
}

我看完愣了一下,问,写完了么?

他说,差不多了。。。

然后我啥也没说,默默接过来,把代码写完,然后给头说了

第二天,这小伙就接到HR通知,明天不用来了。

其实这个程序员还是可以在培养的,也就错了两个地方而已,这个老程序员太认真了。

可回收垃圾建议处理措施:回收加工再利用。

5

牛逼的代码

其实人生中最牛逼的代码是:

public class Test{
public static void main(String[] args){
System.out.println(“Hello World”);
}
}

当输出了 Hello World 的时候,18岁的我感觉到了自己与同龄人的不同,那种自豪感,那种快乐油然而生。仿佛那不是一段冷冷的代码,而是我人生的方向标。至此,纪念我程序生涯的开始。

在我 22 岁的时候,又通过一段代码,成功脱单........,代码运行后的效果图如下:

当然为了大家的单身事业,我在网上寻找了很久,找到一份成品,需要的朋友可以在公号内回复:表白,即可获取。

6

结束语

其实各个公司都存在一定的祖传代码,这些代码就是一个垃圾宝库,有时候你根本不知道它是在干嘛,甚至觉得它几百年可能都没有使用过,但最关键是不敢动!

别问我怎么知道的!

自此以后,遇到一些看着很奇怪的代码压根儿碰都不敢碰。

有时候心血来潮改点东西……代码从头错到尾……

有时候当你只删了一行代码时,可能会发生下面这种情况

你说哪家公司完全没有垃圾代码,我是不信的!如果有,那就是刚成立的。

警告:文中所有代码均收集于网络,文中故事皆为虚构,如果雷同,请来赞赏

请勿将文中代码应用于任何场景中,个人娱乐谨慎尝试!!

参考链接:

https://www.zhihu.com/question/287421003

https://www.zhihu.com/question/20402322

原文链接:https://www.zhihu.com/question/287421003

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 程序员垃圾代码分类指南

    上一篇文章《程序员垃圾分类图鉴》和大家聊了聊程序员的垃圾分类,有的程序员直呼太真实,有的程序员觉得太讽刺,不应该给程序员进行这样的分类。

    纯洁的微笑
  • 让你虎躯一震的垃圾代码分类指南

    其实每个行业都会存在各种各样糟糕的情况,娱乐性的分类会将问题放大,让我们能站出来用另一个视角来看看,什么类型的程序员是我们应该避免的。

    帅地
  • 程序员如何不被垃圾分类逼疯?

    今天是《上海市生活垃圾管理条例》施行的第2天,这场被称为“史上最严”垃圾分类多次成功占据热搜头条。

    养码场
  • Java垃圾回收的工作原理和最佳做法

    Java垃圾回收是Java程序执行自动内存管理的过程。Java程序编译为字节码,可以在Java虚拟机(简称JVM)上运行。当Java程序在JVM上运行时,将在堆...

    陈哈哈
  • 是谁,在“死磕”垃圾分类?

    “你是什么垃圾?”上海人的问候语,现在成了全国46个重点城市的“通行”语言。 ? 垃圾分类,你怕了吗? ? 上海人或许能喘口气了。现在,微信城市服务上海全新...

    腾讯大讲堂
  • Java 10 新特性解密,引入类型推断机制,将于 2018 年 3 月 20 日发布

    JDK 10 是 Java 10 标准版的部分实现,将于 2018 年 3 月 20 日发布,改进的关键点包括一个本地类型推断、一个垃圾回收的“干净”接口。

    搜云库
  • 【程序源代码】垃圾识别小程序(源码)

    前端:微信小程序采用 uni-app 开发框架,uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Andro...

    程序源代码
  • 【Node.js丨主题周】Chrome V8 与 Node.js

    Chrome V8 简称 V8,是由谷歌开源的一个高性能 JavaScript 引擎。该引擎采用 C++ 编写,Google Chrome 浏览器用的就是这个引...

    博文视点Broadview
  • Java 10 新特性解密

    随着Java开发工具包(JDK)9的发布,大量的注意力都集中在Java的最新特性上,包括引入模块(通过集成项目Jigsaw)。尽管最近的很多关注都集中在这些强大...

    程序员宝库
  • Java 10新特性解密

    请注意,本文中所包含的信息在写本文时是准确的。但是到发布时,JDK 10特性组预计将会增加。

    华章科技
  • Java 10新特性解密

    随着Java开发工具包(JDK)9的发布,大量的注意力都集中在Java的最新特性上,包括引入模块(通过集成项目Jigsaw)。尽管最近的很多关注都集中在这些强大...

    CSDN技术头条
  • Java平台,标准版Oracle JDK 9中的新功能

    Java Platform,Standard Edition 9是一个主要的功能版本。以下总结了Java SE 9和JDK 9的特点和增强功能,Oracle 对...

    gemron的空间
  • 背着“垃圾”去上市

    “一个城市发展的好坏,不光看高楼大厦,还要看隐性的基础设施,水的处理是怎样的,垃圾回收是怎样的。未来,垃圾分类会成为城市配套的一部分,这个行业会更加体面,垃圾分...

    华章科技
  • 空中加油: Harbor 2.1的非阻塞垃圾回收

    本文介绍 Harbor 2.1 的非阻塞镜像垃圾回收功能,可以一边进行正常的镜像管理任务,一边默默地执行垃圾回收任务,如同飞机的空中加油,无需中断飞行。部分内容...

    Henry Zhang
  • 袭击GA数据的新型引荐垃圾

    余霞,iCDO翻译志愿者 若你看到你的数据里有很多引荐流量,别惊讶,你只是其中的一个。本文的作者Jonathan Hochman将给我们解释那些引荐垃圾是怎么发...

    iCDO互联网数据官
  • 这 10 条河,「贡献」了全球 95% 的海洋塑料污染

    内容概要:海洋,占据了地球上 70% 的面积,它可以沉静,可以欢腾,也可以暴怒,在浩瀚的海洋世界中,一些外来物严重威胁到了海洋生物的生存。

    HyperAI超神经
  • 躺枪预警:你的 2019 年,一定有这些表情包

    让人又爱又恨的 2019 年就要过去了, 2020 年已经到来。 准备好面对父母的魔法攻击了吗? 想好如何回应亲戚们的连环发问了吗? 微信时刻联合搜一搜, 为...

    腾讯大讲堂
  • JavaScript中的垃圾回收和内存泄漏

    程序的运行需要内存。只要程序提出要求,操作系统或者运行时就必须供给内存。所谓的内存泄漏简单来说是不再用到的内存,没有及时释放。为了更好避免内存泄漏,我们先介绍J...

    Fundebug
  • Android内存管理(一)官方文档介绍

    https://developer.android.com/topic/performance/memory-overview?hl=zh-cn

    Anymarvel

扫码关注云+社区

领取腾讯云代金券