日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

“三行代码,确实需要耗上一整天!”

發布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “三行代码,确实需要耗上一整天!” 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


導讀:迭代時間短有多重要?

作者:Adam Berg,譯者:彎月

本文經授權轉自公眾號CSDN(ID:CSDNnews)

我先后曾在五家軟件公司工作,其中既有游戲開發、移動開發,也有 Web 開發。回顧以前的工作經歷,我認為有一個問題始終未能得到應有的重視,那就是:迭代時間。本來我打算寫一篇有關構建時間的文章,但我認為迭代時間能夠更準確地表達我的想法。

注:本文中的迭代時間指的是,看到修改后的代碼能夠按照預期工作所需的時間。

這篇文章的目的是幫助我們反思當前的開發流程。想一想,在你們的流程中,哪些環節占據的時間超出了實際的需要?我們都知道單元測試的好處,但因為前提的投入太大,所以很多人都不想做。

01 每次都需等待 15 秒,才能看到代碼錯在哪里

2014 年,我以一名實習生的身份加入了 FIFA 團隊,對于當時的我來說,3A 游戲開發完全是一個陌生的新世界。我記得當我看到我的電腦有 16 個 CPU 核心時,十分驚訝。我還記得,當時我按照說明進行了設置,并得知第一次構建需要 30 分鐘的準備時間。不過,據說之后的增量構建會快很多。

雖然增量構建確實快了許多,但每修改一行代碼仍然需要花費 10 秒來編譯。當時的我還是一名 C++ 開發新手,犯的語法錯誤數量很多。每次修改完代碼,都需要等待 15 秒,才能看到究竟哪里錯了。

02 修改三行代碼確實需要一整天的時間

我會在等待期間找一些別的事情做,比如上網查資料,修改其他代碼,或者檢查郵件等。因此,難免會分心,往往一個不小心就過了幾分鐘,才想起來檢查編譯狀態。

然而,編譯只是第一步。接下來,我還需要打包應用程序,并部署到我使用的游戲機。最初,我使用的是 PS Vita、Nintendo 3DS 和 Nintendo Wii,這就又需要花費半分多鐘才能完成游戲的加載。接著,我需要啟動游戲,找到我負責的游戲區域,然后才能看到代碼的修改結果。

當時我負責的是競技邏輯部分。為了測試前后變化,我需要在生涯模式中進行至少幾個賽季,才能測試自己的修改。

所以,不是開玩笑,修改三行代碼確實需要一整天的時間,才能知道是否可以正常工作。

03 調試工具

后來,我開始使用較新的游戲機,并開始接觸 testbed。這些 testbed 不過是一些精簡的游戲包,僅包含特定的代碼,目的是縮減迭代時間。在找到生涯模式的 testbed 后,我幾乎再也沒有運行過整個游戲。這個 testbed 可以在幾秒內構建完畢,而且還包含各類調試功能。testbed 可以在 PC 機上運行,因此可以大幅提高效率。

在發現這款工具后,我非常激動!但我發現周圍的很多人都不知道如何使用這個工具。他們只是按照原有的方式啟動完整的游戲,手動找到所需的位置,然后測試代碼的變更。很快,我就熟練地掌握了 testbed,并添加了很多新功能,大幅地減輕了開發新功能的負擔。

不過,偶爾我還是需要運行完整的游戲,但這個 testbed 提供了很多便利性,我能夠在 testbed 上快速實驗,然后看看代碼的運行。此外,我還能夠借助 testbed 快速解決實際的問題。

04 單元測試

后來,我又換了一個團隊。我發現,這個團隊已經全面實施了單元測試。雖然當時我有一些單元測試的經驗,但從未在游戲開發中使用過。

我簡單地學習了代碼、不同的測試,以及如何運行我們的游戲。我發現,實際上測試包只包含我們團隊負責的特定游戲部分。第一次構建大概需要 10 秒,之后的增量構建可能不到 1 秒。

這個數字對我的工作有非常重要的影響——因為編譯和測試能在不到 1 秒的時間內完成,所以我就可以專注于一項任務了。編譯和邏輯錯誤是不可避免的。但是,當我可以快速發現錯誤并重新編譯時,整個工作狀態就變得流暢起來,再也不會磕磕絆絆了。

我第一次享受到在工作中編寫代碼的樂趣:重構和移動大塊代碼非常簡單,修改別人的代碼也非常容易,并且我的修改不會導致整個游戲崩潰。因此,修改代碼的焦慮也就是消失了。

我著手重寫競技模式的邏輯,并添加了單元測試。單元測試基本可以覆蓋各種各樣的邊緣情況。在最終離開公司的時候,我感覺很放心,因為我的代碼擁有自己的檢查系統。原本我需要花費大量時間確認的錯誤如今已經被編寫到了測試規范中。

05 總結

回顧這段工作經歷,我心懷感激。在這個項目中,我親身感受到長期的工程計劃為開發人員的日常工作提供的便利。在某些時候,必須有人站出來說:“測試這些代碼變更需要花費很長時間,難道我們就沒有更好的方法了嗎?”這也是我們每天都應該思考的問題。

本文轉自公眾號“CSDN”,ID:CSDNnews

延伸閱讀👇

延伸閱讀《編程原則》

干貨直達👇

  • 終于有人把ROS機器人操作系統講明白了

  • 6個實例,8段代碼,詳解Python中的for循環

  • 這10本硬核技術書,帶你讀懂5G、物聯網和邊緣計算,玩轉元宇宙

  • 手把手教你獲取、編譯和調試Flink的源代碼

更多精彩👇

在公眾號對話框輸入以下關鍵詞

查看更多優質內容!

讀書?|?書單?|?干貨?|?講明白?|?神操作?|?手把手

大數據?|?云計算?|?數據庫?|?Python?|?爬蟲?|?可視化

AI?|?人工智能?|?機器學習?|?深度學習?|?NLP

5G?|?中臺?|?用戶畫像?|?數學?|?算法?|?數字孿生

據統計,99%的大咖都關注了這個公眾號

👇

總結

以上是生活随笔為你收集整理的“三行代码,确实需要耗上一整天!”的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。