用代码玩剧本杀?第3届83行代码大赛剧情官方解析
前言
代码挑战赛、剧本杀、元宇宙,这些词可能单独列出来你都认识,但是放到一起可能就会有点疑惑:这三有啥关系?为了使83行代码挑战赛更加有趣,我们史无前例地将剧本杀元素、元宇宙科幻元素与代码挑战赛结合,打造了一场别开生面的代码剧本杀。
既然是剧本杀,那么自然就要有线索。玩家每次通关,都能够获取code83的定制线索,其中不仅包含了关键的剧情信息,还有决赛出题人担心题目太难,特意留下的提示,最重要的是,参与的玩家还可以通过获取的线索换取云效83行代码xCHERRY定制机械键盘等豪华大礼。
下面,我们来揭秘一下这场代码剧本杀,看看你是否破获了真相。
线索设计
这次线索的设计的时候,每一条线索都包含了决赛题目相关的提示和剧情相关的提示,先给大家解释一下决赛题目相关的线索是怎么设计的,看大家有没有错过一些提示。
"NPE:No People Emo":这个就是很直接地提示决赛里有NPE类型的问题,当决赛答题的时候,需要多关注一下有没有什么地方可能会是null,触发NPE。
"不是什么都会等你,很多事情都是一次性的":这个是提示可能是有一些“一次性”类型的bug,如果经验比较丰富的话,可能就能意识到这个是指流类型一次性读取的问题。
"我们通常以为admin就是admin":这其实是在提示决赛中admin可能不是admin,那可能是什么呢?可能是ADMIN,或者admin123这种,具体的大家在决赛题目中就会了解到。
"大家都喜欢全局视角,但全局视角也有它的问题":其实是在提醒你全局类型的变量可能有问题,你可能需要把全局变量换成局部类型的变量。
"好的单元测试 => 你看懂了单元测试 = 你看懂了代码":决赛题目中大部分的bug都是在单元测试调用的函数中,如果能聚焦地分析单元测试调用到的函数,就能把大部分的bug解决掉。
"有的bug之所以难找,就是因为它只在运行时出现":这个是在提示有一些bug可能是无法直接看代码就能分析到的,需要结合运行时的调试和诊断,才能发现这些bug。
"别得意忘形了,快收好你的尾巴!":这个是在提示正则匹配读取尾巴的问题。
"贪多嚼不烂":这个是在提示正则匹配的贪婪模式的问题。
"断点调试是万能的吗?不影响应用本身的观测或许才是更优选择":这个是在提示本次决赛的场景是无法正常使用断点调试的,所以可能需要使用应用观测的能力。
剧情设计
下面我们进行一下剧情向的解析。最开始我们收到的是这样的邀请函:

你是一个程序猿 -> 收到邀请函,进入宇宙基地 -> 进入第一扇门,存在缝隙,暗手会偷走宝贵的东西 -> 进入第二扇门,百万人名涌动,根据关键词找到对应人名 -> 进入第三扇门,重塑人生 -> 进入第四扇门,发现了自己的人生被代码定义。
怎么创造生命的价值?这三个问题就留给大家思考了。
结语
2021年第3届83行代码挑战赛已经正式收官。你参加的,到底是一场代码挑战赛,还是一场剧本杀,亦或是?你看清真相了吗?
大赛目前全部关卡开放体验,域名地址:https://code83.ide.aliyun.com/,欢迎你来。
