螺旋槽編程入門?前段時間,有人發現著名遊戲“俠盜獵車手5”的程序中居然暗藏了一個“屎山”代碼,并且長達7年的時間沒人敢動,今天小編就來聊一聊關于螺旋槽編程入門?接下來我們就一起去研究一下吧!
前段時間,有人發現著名遊戲“俠盜獵車手5”的程序中居然暗藏了一個“屎山”代碼,并且長達7年的時間沒人敢動。
俠盜獵車手5是由Rockstar Games遊戲公司出版發行的一款圍繞犯罪為主題的開放式動作冒險遊戲。
從2013年誕生至今,一直廣受歡迎,僅2020年就賣了2000萬份,累計銷量更是達到1.4億份。
但是在2020年,無數玩家發現進入遊戲的時間十分漫長,少則5、6分鐘,多則20多分鐘,讓體驗感大打折扣。
然後就有玩家用逆編程器查看了這個遊戲的運行情況,發現遊戲程序在加載時,一個if竟然要循環19.8億次!
這一發現招來了網友的諸多不滿,紛紛表示,這個遊戲一年賺數億美元,卻不願意解決這樣的小問題,提升用戶體驗感。
但實際上,這種被業内稱為“屎山”的陳年老bug,改起來并不像想象中那麼容易。
在程序員之間,普遍存在這樣一個觀點:代碼能跑就不要動。
所謂牽一發而動全身,代碼動得不好,就是“屎崩山裂”。
之前某心高氣傲的程序員,因為動了公司的“祖傳屎山”,半年後還沒有改完,羞愧難當,在薅完最後一縷頭發後,怒而辭職。江湖至今還流傳着他的故事。
相信大部分程序員在接手一個新項目時,都是信心滿滿、幹勁十足的,但最終的代碼往往難逃“屎山”宿命,到底是為什麼呢?原因有三:
首先是項目周期長。一個項目如果叠代過多,在初期是很難考慮到後續版本需求的。因為需求是會發生變動的,而在後續的改動中,基本不會重新設計整個邏輯,而是想辦法改一改,以支持新的邏輯。長此以往,整個程序就是補丁堆補丁了。
其次是項目太趕。尤其是近幾年,事事要求敏捷,程序員為了在規定時間内完成任務,往往選擇“最短路徑”而不是“最優路徑”,不寫注釋,引入不靠譜的中間件······這些行為都在為“屎山”助力。
最後是項目被多人接手。公司人員變動是在所難免的,一個項目被多人接手也時有發生,而這正是“屎山代碼”形成的重要原因。每個程序員編程的方式和風格都有差異,面對前人留下的“屎山”,程序員能做的隻是繼續往上面糊屎,畢竟要改是不可能的。
就連亞馬遜的工程師都這樣形容他們的代碼:“一座很大的屎山,你見過的最大的山,每次你想修正一個bug,你的工作就是爬到屎山的正中心去”。
說了這麼多,“屎山代碼”當真無法避免嗎?
很明顯,隻要開發效率足夠高、代碼足夠簡潔、标準足夠統一,是可以很大程度規避“屎山代碼”的。
而這三點依賴人力是不可能辦到的,這個時候,隻能仰賴“開發神器”了。
前段時間在GTLC多次亮相的飛算SoFlu全自動軟件工程平台,就完美滿足以上條件,堪稱完美的“開發神器”。
在開發效率方面,飛算SoFlu宣稱“十人可抵百人用”,一個平台ID相當于一個十人科技團隊。肯定有人覺得是吹牛,開始我也不信,直到看到了這個實驗——一個普通程序員應用飛算SoFlu,僅用28分鐘,就完成了傳統開發模式下,三個資深工程師的工作量。事實面前,讓人不得不服。
在代碼簡潔方面。實際上,應用飛算SoFlu編程是不需要敲代碼的,隻要輸入流程圖,平台就能自動生成微服務應用,供企業部署,所以根本不存在代碼是否簡潔的問題。
在标準統一方面。畫流程圖其實就是拖動組件,平台的每一個組件都相當于一個代碼塊,是應用統一标準編寫的,在上線前也會經過嚴格的檢驗。如此一來,應用飛算SoFlu編寫的程序,标準都是由平台統一規範的,就算發生人員變動,也不會出現看不懂前人代碼,“屎山”不斷堆積的情況。
除此之外,圈子裡還流傳着一句話,“沒有經過測試的代碼都是一坨屎”。為了徹底鏟除“屎山”, 飛算SoFlu上線了自動測試平台,與開發平台聯動,開發完成後自動生成測試用例并完成測試,用例覆蓋率保證100%,且能實現精準回歸測試,據絕“屎”的産生。
沒了“代碼屎山”,程序員心情愉悅,才能更具創造性,充分發揮自身價值;對于企業來說,也能減少bug修複成本,提高工作效率,避免由于人員變動影響項目進程。
最後,希望大家都能寫出簡潔美觀的代碼,不再成為“屎”作俑者。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!