10

报告总监,他...在代码里面 “下毒” 了

 3 years ago
source link: https://blog.csdn.net/hihell/article/details/114991239
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

报告总监,他...在代码里面 “下毒” 了

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

纵横 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. 不小心,用了全局变量,让队友直呼挖草;

我是橡皮擦,一个逗趣的互联网高级网虫。
关注我,边学技术,边开心一笑。
评论区说出你的独门秘籍,或者中毒经历吧

爱护同事,莫下毒

相关阅读


今天是持续写作的第 114 / 200 天。
如果你想跟博主建立亲密关系,可以关注同名公众号 梦想橡皮擦,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家点赞、评论、收藏。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK