您好,登錄后才能下訂單哦!
本篇內容主要講解“每一位程序員都應該學習的優秀代碼有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“每一位程序員都應該學習的優秀代碼有哪些”吧!
幾年前,我查看 Python 語言代碼時,突然發現了一些 C 語言編寫的源文件,并檢查了 GNU C 編譯器集合的實現。我發現這個先進的 C 語言編譯器就是用 C 語言編寫的。學習事物的內部結構并深入了解,可以顛覆我們的認知并學到豐富的知識。過去的開發人員通過自己的辛勤工作,為現代開發人員創造了一個太平的世界。作為現代開發人員,我們應該感謝他們的出色工作。
當我瀏覽 Github 代碼庫時,我注意到各地的開發人員完成了以下的杰作。
阿波羅 11 號導航計算機(AGC)
阿波羅 11 號使人類第一次成功地登上了月球。只有 4KB 物理內存的阿波羅導航計算機(AGC)完成了對航天器的控制。AGC 的軟件以 AGC 匯編語言編寫,并存儲在稱為磁心線儲存器(ropememory)的特殊只讀存儲器中。之前有人將源代碼的掃描副本上傳到了 Internet。然后,這幾個模塊被轉換為文本文件,并上傳到了 Github 代碼庫。
AGC 登月模塊中的代碼片段,作者截圖
阿波羅(Apollo)工程團隊付出了巨大的努力,編寫大量的匯編代碼來取得如此驚人的成就。在 1960 年代,編程可比現在困難多了。因為在那時,編程語言多為低級語言,需要直接操作硬件。所以,程序員必須編寫精心優化的代碼來提高硬件使用效率。
雷神之錘 III 競技場
雷聲之錘 III——競技場是由 id Software 開發的第一人稱射擊游戲。它開發于上世紀 90 年代,當時由于 id Tech4 等游戲引擎的技術的出現,3D 游戲行業開始興起。不像現在,那時候硬件資源非常有限。因此,游戲開發人員必須編寫精心優化的代碼以實現圖形元素的渲染。許多游戲編程都需要實現矢量歸一化,這提出了對平方根倒數運算的需求。如前所述,開發人員必須為這些與圖形計算相關的工作選擇最有效的算法。因此,雷聲之錘 III——競技場開發團隊使用一種非常聰明的方法進行平方根倒數運算,比如下面這樣使用位級計算。
雷神之錘 III 競技場中的平方根倒數快速算法,作者截圖
這段代碼的優化水平以及在 90 年代就能開發出如此出色的計算機游戲這一事實,真的很讓人驚訝。如今,游戲開發通常不需要處理這一級別的計算,因為物理函數已經由游戲引擎實現。
GNU 編譯器代碼集
C 語言是高級編程語言的鼻祖,因為它既非常靠近硬件又能提供良好的可讀性。作為 C 語言的編譯器,GNU 是自引導的。換句話說,它是應用編譯器引導概念的 C 語言程序。Github 上的 GNU 編譯器代碼庫中的這個文件是我見過的最長的 C 語言源文件(可能有比這更長的 C 語言源文件,但是我沒見過)。
GNU C 編譯器中的解析器的源文件有 2 萬多行代碼,作者截圖
Chromium
流行的 Web 瀏覽器(例如 Google Chrome,Microsoft Edge 和 Opera)很多是基于 Chromium 開源項目,該項目有兩個主要依賴:1)Blink 渲染引擎。它是 WebCore 庫的一個分支,該庫由 Webkit 團隊基于 KHTML/KJS 進行開發;2)v8 JavaScript 引擎。該引擎由 Chromium 團隊開發。毫無疑問,Chromium 代碼庫非常大,并且依賴很多第三方模塊,例如 gRPC 和 Skia。但是,Chromium 團隊以一種非常優雅的結構來組織所有組件。他們非常明智地將用戶界面和內部函數分開,以提高整個工程的可維護性。
劃分良好的 ChromiumUI 組件抽象層的目錄結構,作者截圖
此外,此代碼庫還包含 Chromium Android 和 iOS 手機端程序的源代碼。大規模的跨平臺應用程序目錄結構的劃分可能會有些復雜。但是,Chromium 對 Linux,Windows 和 Mac 不同平臺代碼目錄結構的劃分做的非常棒。
Gitk
如今,基本上每一個軟件開發團隊都會使用 Git 來進行代碼歷史和版本的管理。Git 最初由 Linux 內核的創始人 LinusTorvalds 開發。確實,Gitk 的源文件的 Git 代碼中一個神奇的模塊。Gitk 是一個 GUI 應用程序,可以讓我們以可視化方式瀏覽歷史提交記錄。我們可以使用以下的 CLI 命令來比較兩次提交之間的差異。
$ git diff <commithash> <commithash>
但是,借助 Gitk 的可視化展示方式,我們可以更快速地明白不同提交之間的差異。Gitk 的整個源代碼只有一個文件。它是使用 Tk UI 工具包(Tcl 的擴展程序)以 Tcl 腳本語言編寫的。它僅僅通過一個源文件就實現了整個 GUI 應用程序,還選擇了一種動態編程語言來大大加快 GUI 應用程序的開發速度。
Gitk 由約 1 萬 2 千行代碼的單個源文件來實現
到此,相信大家對“每一位程序員都應該學習的優秀代碼有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。