用代码玩剧本杀?第3届83行代码大赛剧情官方解析
簡介:?由阿里云云效主辦的2021年第3屆83行代碼挑戰賽已經收官。超2萬人圍觀,近4000人參賽,85個團隊組團來戰。大賽采用游戲闖關玩兒法,融合元宇宙科幻和劇本殺元素,讓一眾開發者玩得不亦樂乎。
說到劇本殺,很多人很好奇,代碼大賽究竟是如何與劇本殺元素結合的?在關卡里面收集到的線索,到底如何串聯起來?我們請來了本次代碼劇本殺的主要設計者陳少濱(阿里云云效代碼平臺)來具體講講。
前言
代碼挑戰賽、劇本殺、元宇宙,這些詞可能單獨列出來你都認識,但是放到一起可能就會有點疑惑:這三有啥關系?為了使83行代碼挑戰賽更加有趣,我們史無前例地將劇本殺元素、元宇宙科幻元素與代碼挑戰賽結合,打造了一場別開生面的代碼劇本殺。
既然是劇本殺,那么自然就要有線索。玩家每次通關,都能夠獲取code83的定制線索,其中不僅包含了關鍵的劇情信息,還有決賽出題人擔心題目太難,特意留下的提示,最重要的是,參與的玩家還可以通過獲取的線索換取云效83行代碼xCHERRY定制機械鍵盤等豪華大禮。
下面,我們來揭秘一下這場代碼劇本殺,看看你是否破獲了真相。
線索設計
這次線索的設計的時候,每一條線索都包含了決賽題目相關的提示和劇情相關的提示,先給大家解釋一下決賽題目相關的線索是怎么設計的,看大家有沒有錯過一些提示。
"<(?.*)> 可以表示什么呢?":第一條線索是提示決賽有正則類型的bug,由于?這種用法不是特別常用,所以在線索里提前給出提示。
"NPE:No People Emo":這個就是很直接地提示決賽里有NPE類型的問題,當決賽答題的時候,需要多關注一下有沒有什么地方可能會是null,觸發NPE。
"不是什么都會等你,很多事情都是一次性的":這個是提示可能是有一些“一次性”類型的bug,如果經驗比較豐富的話,可能就能意識到這個是指流類型一次性讀取的問題。
"我們通常以為admin就是admin":這其實是在提示決賽中admin可能不是admin,那可能是什么呢?可能是ADMIN,或者admin123這種,具體的大家在決賽題目中就會了解到。
"大家都喜歡全局視角,但全局視角也有它的問題":其實是在提醒你全局類型的變量可能有問題,你可能需要把全局變量換成局部類型的變量。
"好的單元測試 => 你看懂了單元測試 = 你看懂了代碼":決賽題目中大部分的bug都是在單元測試調用的函數中,如果能聚焦地分析單元測試調用到的函數,就能把大部分的bug解決掉。
"有的bug之所以難找,就是因為它只在運行時出現":這個是在提示有一些bug可能是無法直接看代碼就能分析到的,需要結合運行時的調試和診斷,才能發現這些bug。
"別得意忘形了,快收好你的尾巴!":這個是在提示正則匹配讀取尾巴的問題。
"貪多嚼不爛":這個是在提示正則匹配的貪婪模式的問題。
"斷點調試是萬能的嗎?不影響應用本身的觀測或許才是更優選擇":這個是在提示本次決賽的場景是無法正常使用斷點調試的,所以可能需要使用應用觀測的能力。
劇情設計
下面我們進行一下劇情向的解析。最開始我們收到的是這樣的邀請函:
你收到了這封邀請函,但只有一個 YES 選擇鍵,沒辦法拒絕,只能接受。接受了之后,你就進入了我們的故事線。在我們的故事線中,當前的時間線是這樣的:
你是一個程序猿 -> 收到邀請函,進入宇宙基地 -> 進入第一扇門,存在縫隙,暗手會偷走寶貴的東西 -> 進入第二扇門,百萬人名涌動,根據關鍵詞找到對應人名 -> 進入第三扇門,重塑人生 -> 進入第四扇門,發現了自己的人生被代碼定義。
這部分的劇情內容是通過 WebIDE 的劇情對話給出的,而劇情線索中,會給出過往的時間線:
高考過后,走上程序猿道路 -> 電腦中存在后門,導致公司機密泄漏,被開除 -> 接觸到云曉(阿里云云效),了解云端開發 -> 開除后成為數學老師,懷念柯西(Cosy)帶來的高效和充滿技術感的生活 -> 疫情來臨,釘釘助力在線教育 -> 意識覺醒,想用技術創造價值。
在了解了所有劇情之后,就需要回答三個問題,分別是:你來自什么宇宙、你的真實身份是什么、怎么創造生命的意義。
你來自什么宇宙,其實是在問你從哪里來;你的真實身份是什么,其實在問你是誰;怎么創造生命的意義,其實是問你要做什么,你要到哪里去。這是三個經典的人生問題。
那么具體怎么回答這三個問題呢?想要解決這三個問題,需要先將決賽關卡的bug解決完之后,會發現client的會返回一些字符串,這些字符串有三個開頭(三個通道),如果根據這三個通道進行篩選,就會發現其實是這三段代碼:
通過閱讀這三段代碼,會發現其實這三段代碼正好就是過往時間線里面的三個階段。
所以從劇情上的話,可以理解到“你”的人生其實早就被代碼定義了。
第一個問題:你來自什么宇宙?當然毫無疑問就是在代碼宇宙中。另外,從代碼的包名也可以看出:
com.code.universe。
第二個問題:你的真實身份是什么呢?從代碼中也很明確了,就是programmer(程序猿)。當然,了解完全部劇情之后,更準確的答案應該是一段代碼(code)或者說一段程序(program)。
最后一個問題:怎么創造生命的意義?這個其實是稍微有一點難的,不像前兩題這么直觀,需要看完整個劇情,就會發現劇情里主要強調一點是技術的力量,第三段代碼中也明確提到了在經歷了人生的大轉折之后,向往Technology的力量,學習了DevStudio的知識,Yunxiao的知識,Devops的知識,Cosy的知識,思考生命的價值。所以這一題的答案是技術(Technology),或者DevStudio、Yunxiao、Devops、Cosy都是可以的。
上述就是本次比賽的完整劇情了,最后還有一個附加題:
之前提到了故事線中的時間線,我們再來對比一下現實的時間線:
故事的時間線:
你是一個程序猿 -> 收到邀請函,進入宇宙基地 -> 進入第一扇門,存在縫隙,暗手會偷走寶貴的東西 -> 進入第二扇門,百萬人名涌動,根據關鍵詞找到對應人名 -> 進入第三扇門,重塑人生,最終人生(職業)未改變,過程更加豐富 -> 進入第四扇門,發現了自己的人生被代碼定義 -> 發現真相,阿里云云效邀請你一起用技術創造生命的價值
現實的時間線:
你是一個程序猿 -> 你收到開賽邀請,參與83行代碼大賽 -> 開啟第一關,解決會造成漏洞的安全問題 -> 開啟第二關,從百萬級別類名中,尋找指定前綴的類名 -> 開啟第三關,重構代碼,最終業務邏輯不變,代碼質量更好 -> 開啟第四關,解決bug,解鎖真相 -> 揭曉結局,阿里云云效邀請你一起用技術創造生命的價值
當我們看完這時間線之后,最后我們可以再回過來看這三個問題:你來自什么宇宙?你的真實身份是什么?
怎么創造生命的價值?這三個問題就留給大家思考了。
結語
2021年第3屆83行代碼挑戰賽已經正式收官。你參加的,到底是一場代碼挑戰賽,還是一場劇本殺,亦或是?你看清真相了嗎?
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的用代码玩剧本杀?第3届83行代码大赛剧情官方解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【CDS技术揭秘系列 总篇】阿里云的云定
- 下一篇: ubuntu软件安装 caffe相关软件