头:“他在代码里面 '下毒' 了”

1,567 阅读3分钟

本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

橡皮擦,一个逗趣的互联网高级网虫。

纵横 IT 职场十年,我终于掌握了代码下毒的精髓,这些高级技巧的背后,都是最朴实无华的基础知识。

文中涉及代码采用 Python 编写

低毒

通过异常返回信息,直接给用户抛出解决方案,即提高的了编码速度,也对用户有个交代,代码响应速度还快。 例如,客服系统中,当接到用户投诉时,你可以这样下毒。

# 客户反馈函数
def feedback():
	return "您的投诉已经收到,感谢您的建议,我们认真整改!"

投诉是您的事,代码我说了算。

但是,我们的目的可不是给用户下毒,而是给代码下毒。

那将上述场景,复制到合作研发项目中。 甲乙两个部门合作开发,乙部门研发人员,当程序异常时可以直接返回一段文本,例如:联系老孟(甲方公司研发人员)

# 调用乙方某函数
def call_func():
	# do something
	# 此处省略 100 行代码 ……
	#
	try:
    	# do something
	except:
	    raise "如出现异常,请联系老孟(XXX公司)"

如果你觉得上述代码,下毒点太容易发现了,肉眼可见,那没啥问题,修改成如下代码即可。

try:
   	# do something
except:
    raise "\u5982\u51fa\u73b0\u5f02\u5e38\uff0c\u8bf7\u8054\u7cfb\u8001\u5b5f\uff08\u0058\u0058\u0058\u516c\u53f8\uff09"

使用 Unicode 编码转换,朴实的技巧往往隐藏在基础知识中。

中等毒

变量中下毒技术,成本极低,效果极好。

for _ in range(10):
	for __ in range(20):
	    print(_,__)

上述代码只是一个小 Tops,掌握该技术之后,你写的代码自带加密效果。

summer = "tianqi change"
sumner = "tianqi no change"
sunmer = "tianqi no no change"

这种变量的精细化区分,让别人阅读代码的时候,可以不断锻炼注意细节的能力,有助于其快速提高其眼镜度数

高毒

熟练的使用 Python 里面的列表生成器,例如下面的代码,毒性十分霸道。

shuiguos = ["苹果", "橘子", "香蕉", "梨子"]
xuhaos = [1, 2, 3, 4]
jiages = [12.0, 7.0, 9.0, 10.0]
my_list = [(x, s, j) for s in shuiguos for x in xuhaos for j in jiages if j < 10]
print(my_list)

变量使用汉语拼音 + 英文复数。

生成器直接循环三层以上,建议无限制的叠加,使用后,保证阅读者连连惊叹,嘴里迸发出高低不平的叠词词: “卧(4 声)X”, “卧(4 声)X”, “卧(2 声)X”, “卧(2 声)X(3 声)?” 上面的变量 X 表示一种植物。

不应该,不应该,写文章激动了,敬业、诚信、友善。

剧毒

如果上述的技巧无法满足你,那只能拿出神器 eval 函数了,掌握它,你可以玩转 Python 。

name = "橡皮擦"
s = "name"
name = eval(s)
print(name)

一段简简单单的代码,但你要将其放到功能里面,效果棒极了。 这就是,最平常的代码,最能产生巨坑的操作,如果字符串满足不了你,可以修改成下面的样子呀。

x = "橡"
y = "皮"
z = "擦"
s = '[x,y,z]'
# 此处有几十行代码
print(eval(s))

毒性还不够强?继续修改,基础越好、代码越(),结合高毒写法,得到下述代码。

shuiguos = ["苹果", "橘子", "香蕉", "梨子"]
xuhaos = [1, 2, 3, 4]
jiages = [12.0, 7.0, 9.0, 10.0]
bat = eval(
    "[(x, s, j) for s in shuiguos for x in xuhaos for j in jiages if j < 10]")
print(bat)

运行之后,我在电脑前就听到了还不够的声音,那下面的呢?

shuiguos = ["苹果", "橘子", "香蕉", "梨子"]
xuhaos = [1, 2, 3, 4]
jiages = [12.0, 7.0, 9.0, 10.0]
bat = eval("[(x, s, j) for s in shuiguos for x in xuhaos for j in jiages if j < 10]", {
    "xuhaos": [5, 6, 7, 8],  "jiages": [12.0, 7.0, 9.0, 10.0]}, locals())
print(bat)

无形之毒

最高级的下毒技巧是什么?那必然是自己都不知道自己在下毒。

很多时候,你并不想在代码里面下毒,但是因为菜(挨打脸)莫名下毒,这就是最高级的技巧,心中无招,手中无招。

  1. 不小心,重载系统函数,让队友莫名其妙;
  2. 不小心,重载操作符,让队友抓紧吃药;
  3. 不小心,用了全局变量,让队友直呼挖草;
  4. skr~

我是橡皮擦,一个逗趣的互联网高级网虫。 关注我,边学技术,边开心一笑。

评论区说出你的独门秘籍,或者中毒经历吧

爱护同事,莫下毒