[閒聊]遊戲開發者抱怨現在程式碼誇張膨脹「可能有99%的內容都是垃

看板C_Chat (希洽)作者 (pl132)時間2年前 (2022/07/03 16:39), 編輯推噓247(26518413)
留言696則, 248人參與, 2年前最新討論串1/1
遊戲開發者Cliffski抱怨現在程式碼誇張膨脹「可能有99%的內容都是垃圾」 https://tinyurl.com/229o8zbm 作為一名從事獨立遊戲設計和程式業務的開發者,克裡夫斯基(Cliffski)在一篇文章中 吐槽道 —— 這年頭的「程式碼膨脹」,已經到了令人髮指的地步。 他以自己常使用的一個雲端備份服務為例來說明,這個由某個大公司提供的雲端備份工具 ,基本上提供的服務就是指向本地端硬碟上的一個資料夾,然後把內容複製到一個遠端伺 服器上。而上傳到伺服器時,大公司可能需要做一些與資料庫管理有關的事情,例如給這 一堆上傳的檔案分配一個名稱,並驗證誰下載了它。 「這是一家大公司,所以他們有大的程式,而且可能經常被駭客攻擊,所以需要一些安全 保障,也需要一些驗證,以確保在我上傳和他們接收檔之間沒有被篡改過。我明白這一點 。」他表示。「但基本上這個程度的目的就是列舉一些文件,讀取它們,上傳它們,然後 關閉連接,並提供一個日誌檔,說明是否成功,如果不成功,出了什麼問題。事實上,我 自己也從頭開始寫過這樣的程式碼,使用wininet API和伺服器上的php與MySQL資料庫對 話。與企業級的東西相比,我的東西可能沒有那麼強大,但它確實可以做到。」 不過他表示,今天他所使用的這個大公司提供的上傳工具,檔案大小共有230MB,裡頭有 2700個不同的檔案,就為了管理這個過程。 他表示這說明了現在的應用程式,已經超越了「臃腫」可以形容的程度,程式檔案的膨脹 已經變成「完全的、徹底的、明顯的荒謬和瘋狂」。 一個普通的程式設計師都可以編寫一個同樣功能的程式,它的程式碼量小到只有這個應用 程式的 1/20,足以將文件安全、快速地上傳到伺服器。甚至可以是一個單獨的 .exe 可 執行文件,無需成百上千的動態鏈接庫(DLL)。 不僅可行,而且簡單、可靠、高效、易於調試。只需稍微努力那麼一下,它就會起到切實 的作用。 那麼,現在的程式碼為什麼會變得這麼大而臃腫呢? 「我見過不少程式員在幹這種爛活,我知曉這種情況是怎麼發生的。」他表示,越來越多 程式設計師不去研究通過底層的高效程式碼來完成工作,且許多人甚至從未寫過所謂的好 程式碼。很多人往往就是引用DLL函示庫,需要什麼就去找什麼。 「我可以斷言,在你的電腦中許多應用程式,99.9%的程式碼是絕對無用的,甚至從來沒 有被執行過。它只是在那裡,在一套多達65個檔案的DLL函示庫中,這只是因為某個程式 設計師想做一些微不足道的事情,比如保存一個點陣圖,但他們不想從底層來寫這個程式 ,所以他們導入了一整桶臃腫的垃圾來實現它。」 舉個例子,當年一個僅 64Kb 的《Elite》遊戲,就包含了龐大的星系、3D 太空戰鬥、職 業發展系統、交易、以及數千顆可供探索的行星。 誠然,現如今電腦速度已經快到可以忽略程式的臃腫。但是在你使用電腦時,正在懷疑自 己到底有沒有點下去按鈕的這半秒鐘時間裡,頻率動輒數 GHz 的處理器世界裡,早已過 去了數十億年。我們浪費了個人計算機 99% 的算力和能耗,就為了這些垃圾程式。 想像一下,在你急著想要在檔案總管中快速搜尋某個檔案的時候,工作管理員卻在那搞一 堆廢話,如果你查一下後台,竟有102 個程序在忙碌著,天知道他們在幹什麼! 或許正因如此,我們才在幾乎沒有幹任何事情的情況下,你發現你去年才買的機器,今年 就「老了」。 你甚至需要每年都換一部新手機、新電視,以執行那些臃腫不堪的串流媒體 App —— 只 因為它們依賴執行的程式碼是如此糟糕! 他表示他非常懷唸過去程式的黃金時代,程式員們對記憶體和 CPU 的限制瞭如指掌。如 今,我們已經被迫生活在了一個效率極其低下、但浪費又如此誇張的泥潭裡。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.1.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1656837555.A.3FF.html

07/03 16:40, 2年前 , 1F
確實
07/03 16:40, 1F

07/03 16:40, 2年前 , 2F
確實
07/03 16:40, 2F

07/03 16:41, 2年前 , 3F
給錢啊 時限跟薪水就訂在那邊 幹嘛自己寫底層
07/03 16:41, 3F

07/03 16:41, 2年前 , 4F
要有以前那種超多限制的環境才有研究這些程式的必要阿
07/03 16:41, 4F

07/03 16:41, 2年前 , 5F
所以你敢刪掉99%的代碼嗎
07/03 16:41, 5F

07/03 16:41, 2年前 , 6F
確實
07/03 16:41, 6F

07/03 16:42, 2年前 , 7F
他去大公司工作就知道了,獨立開發都把事情想得很簡單
07/03 16:42, 7F

07/03 16:42, 2年前 , 8F
確實 你行你上
07/03 16:42, 8F

07/03 16:43, 2年前 , 9F
幹嘛自己造已經有的輪子....
07/03 16:43, 9F

07/03 16:43, 2年前 , 10F
對 我就廢 寫個小程式要引用幾百M的.NET框架
07/03 16:43, 10F

07/03 16:43, 2年前 , 11F
不用自己造輪子 但是使用輪子也該用得更聰明一點吧
07/03 16:43, 11F

07/03 16:43, 2年前 , 12F
可能還是要踏出門一下
07/03 16:43, 12F

07/03 16:43, 2年前 , 13F
那麼肝 自己重寫又沒比較多薪水 幹嘛自找麻煩
07/03 16:43, 13F

07/03 16:44, 2年前 , 14F
嫌肝太新鮮?
07/03 16:44, 14F

07/03 16:44, 2年前 , 15F
如果是接手前人的會留一堆垃圾很正常 因為根本看不懂
07/03 16:44, 15F

07/03 16:44, 2年前 , 16F
包括那個寫的人...
07/03 16:44, 16F

07/03 16:44, 2年前 , 17F
無解啦,就問你接手上一個的碼,你願意全部重寫只為
07/03 16:44, 17F

07/03 16:44, 2年前 , 18F
加一個功能,還是直接外掛一個省事?
07/03 16:44, 18F

07/03 16:45, 2年前 , 19F
不知道寫程式的AI會不會執著於#magic
07/03 16:45, 19F

07/03 16:45, 2年前 , 20F
這就是最典型的沒事幹嘛去造輪子的問題
07/03 16:45, 20F

07/03 16:46, 2年前 , 21F
輪子別人造的 隨便改以後維護很麻煩 但裡面又塞了一堆
07/03 16:46, 21F

07/03 16:46, 2年前 , 22F
如果他是工程師寫了三十年程式 那我可以理解他說的 但現在高
07/03 16:46, 22F

07/03 16:46, 2年前 , 23F
硬體夠強軟體就隨便寫,功能對就可以了
07/03 16:46, 23F

07/03 16:46, 2年前 , 24F
階語言就是叫你直接用別人的輪子 就算那輪子很胖
07/03 16:46, 24F

07/03 16:47, 2年前 , 25F
一部分是空間成本低 所以膨脹頂多讓玩家增加下載時間
07/03 16:47, 25F

07/03 16:47, 2年前 , 26F
一個爛的工程師可以製造三個工作機會.jpg
07/03 16:47, 26F

07/03 16:47, 2年前 , 27F
好像js也是這樣欸
07/03 16:47, 27F

07/03 16:47, 2年前 , 28F
而大公司可能有自己常用的輪子組
07/03 16:47, 28F

07/03 16:47, 2年前 , 29F
07/03 16:47, 29F

07/03 16:47, 2年前 , 30F
我覺得這個人真的把問題想得太簡單 一堆DLL放在那邊就
07/03 16:47, 30F

07/03 16:48, 2年前 , 31F
是為了相容性跟可攜性
07/03 16:48, 31F

07/03 16:48, 2年前 , 32F
你哪天灌個東西就因為少個DLL或是兩個互相衝突 結果導
07/03 16:48, 32F

07/03 16:48, 2年前 , 33F
東西穩穩能動就好 重造出事還要扛責任
07/03 16:48, 33F

07/03 16:49, 2年前 , 34F
致你要花幾天的時間在那邊Debug 最後解法還超級簡單
07/03 16:49, 34F

07/03 16:49, 2年前 , 35F
"與企業級的東西相比,我的東西可能沒有那麼強大,
07/03 16:49, 35F

07/03 16:49, 2年前 , 36F
那你就會寧願留多一點空間放這些DLL了
07/03 16:49, 36F

07/03 16:49, 2年前 , 37F
但它確實可以做到。" <--- 所以他想表達啥?
07/03 16:49, 37F

07/03 16:49, 2年前 , 38F
Techbang呵呵連程式設計師的名字都寫錯
07/03 16:49, 38F

07/03 16:50, 2年前 , 39F
如果目標平台有足夠空間 當然是開發效率>>>程式精簡
07/03 16:50, 39F
還有 617 則推文
07/03 23:50, 2年前 , 657F
己想看看重要不就很清楚了
07/03 23:50, 657F

07/04 00:10, 2年前 , 658F
確實coder氾濫卻沒什麼programmer
07/04 00:10, 658F

07/04 00:12, 2年前 , 659F
確實 但你能怎麼改變?
07/04 00:12, 659F

07/04 00:18, 2年前 , 660F
只會說嘴,付錢優化啊
07/04 00:18, 660F

07/04 00:29, 2年前 , 661F
以前就是都在自幹才會程式一堆bug 又容易掛掉呀
07/04 00:29, 661F

07/04 00:35, 2年前 , 662F
07/04 00:35, 662F

07/04 00:47, 2年前 , 663F
確實
07/04 00:47, 663F

07/04 01:29, 2年前 , 664F
大公司開發的產品系統架構要有彈性阿 通通寫死當然可以
07/04 01:29, 664F

07/04 01:29, 2年前 , 665F
很小但不易擴充阿 不過架構怎麼寫都是case by case啦沒
07/04 01:29, 665F

07/04 01:29, 2年前 , 666F
有一定
07/04 01:29, 666F

07/04 01:41, 2年前 , 667F
笑死 這是真的
07/04 01:41, 667F

07/04 02:06, 2年前 , 668F
錢 屁話
07/04 02:06, 668F

07/04 02:11, 2年前 , 669F
正常啊,WINDOWS 的更新也是這樣
07/04 02:11, 669F

07/04 02:14, 2年前 , 670F
行政程序也差不多是類似的設計
07/04 02:14, 670F

07/04 03:06, 2年前 , 671F
工程師花一堆時間精簡了程式碼會加薪嗎?
07/04 03:06, 671F

07/04 04:02, 2年前 , 672F
二八法則同樣適用
07/04 04:02, 672F

07/04 04:12, 2年前 , 673F
讓我想到 photoshop 早期用 HDD 跑到現在用 SSD 跑開啟
07/04 04:12, 673F

07/04 04:12, 2年前 , 674F
都一定要等快十秒
07/04 04:12, 674F

07/04 07:02, 2年前 , 675F
雀食 問題我是程式逃兵 現在逍遙自在
07/04 07:02, 675F

07/04 07:08, 2年前 , 676F
為了快那不到半秒的時間重寫一個 到底是高效率還是低效率
07/04 07:08, 676F

07/04 07:32, 2年前 , 677F
幹誰要寫底層,老人臭語言
07/04 07:32, 677F

07/04 07:47, 2年前 , 678F
我連dll都要看半天了還去寫lib 有人也還沒出來腦子要先溢
07/04 07:47, 678F

07/04 07:47, 2年前 , 679F
血了
07/04 07:47, 679F

07/04 09:03, 2年前 , 680F
啊就拿多少錢辦多少事啊
07/04 09:03, 680F

07/04 09:37, 2年前 , 681F
現實中在一堆人輪流接手狀態下,重寫根本不可能
07/04 09:37, 681F

07/04 09:37, 2年前 , 682F
要花的心力遠大於效力,把問題推給用戶端讓他們用
07/04 09:37, 682F

07/04 09:37, 2年前 , 683F
自己的設備客服就好
07/04 09:37, 683F

07/04 09:55, 2年前 , 684F
因為這樣最省時
07/04 09:55, 684F

07/04 10:05, 2年前 , 685F
確實 但是調整成本過高 效益又很差 最後就是繼續放在那
07/04 10:05, 685F

07/04 10:09, 2年前 , 686F

07/04 10:44, 2年前 , 687F
有函式庫了 除非很追求執行效率,還要自己造輪子嗎
07/04 10:44, 687F

07/04 10:47, 2年前 , 688F
這完全是菜鳥發言
07/04 10:47, 688F

07/04 10:52, 2年前 , 689F
遵循框架是為了統一開發語言降低溝通成本,功能與
07/04 10:52, 689F

07/04 10:52, 2年前 , 690F
安全是需求,別混為一談,而需求會決定採用什麼框
07/04 10:52, 690F

07/04 10:52, 2年前 , 691F
架來解決問題,獨立開發者我好棒,我能寫高效代碼
07/04 10:52, 691F

07/04 10:52, 2年前 , 692F
但別人看不懂的思維,才是一直重造輪子的原因
07/04 10:52, 692F

07/04 11:35, 2年前 , 693F
大家都會抱怨動態連結垃圾庫,就算放手也沒人願意改XD
07/04 11:35, 693F

07/04 13:21, 2年前 , 694F
確實
07/04 13:21, 694F

07/05 12:58, 2年前 , 695F
1開發時間,2測試問題
07/05 12:58, 695F

07/05 13:00, 2年前 , 696F
你用現成的庫既省時間而且測試人員也不用再重新驗證
07/05 13:00, 696F
文章代碼(AID): #1YmLMpF_ (C_Chat)
文章代碼(AID): #1YmLMpF_ (C_Chat)