溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

每一位程序員都應(yīng)該學(xué)習(xí)的優(yōu)秀代碼有哪些

發(fā)布時(shí)間:2021-10-18 17:28:29 來源:億速云 閱讀:156 作者:iii 欄目:web開發(fā)

本篇內(nèi)容主要講解“每一位程序員都應(yīng)該學(xué)習(xí)的優(yōu)秀代碼有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“每一位程序員都應(yīng)該學(xué)習(xí)的優(yōu)秀代碼有哪些”吧!

幾年前,我查看 Python 語言代碼時(shí),突然發(fā)現(xiàn)了一些 C 語言編寫的源文件,并檢查了 GNU C 編譯器集合的實(shí)現(xiàn)。我發(fā)現(xiàn)這個(gè)先進(jìn)的 C  語言編譯器就是用 C  語言編寫的。學(xué)習(xí)事物的內(nèi)部結(jié)構(gòu)并深入了解,可以顛覆我們的認(rèn)知并學(xué)到豐富的知識(shí)。過去的開發(fā)人員通過自己的辛勤工作,為現(xiàn)代開發(fā)人員創(chuàng)造了一個(gè)太平的世界。作為現(xiàn)代開發(fā)人員,我們應(yīng)該感謝他們的出色工作。

當(dāng)我瀏覽 Github 代碼庫時(shí),我注意到各地的開發(fā)人員完成了以下的杰作。

阿波羅 11 號(hào)導(dǎo)航計(jì)算機(jī)(AGC)

阿波羅 11 號(hào)使人類第一次成功地登上了月球。只有 4KB  物理內(nèi)存的阿波羅導(dǎo)航計(jì)算機(jī)(AGC)完成了對(duì)航天器的控制。AGC 的軟件以 AGC  匯編語言編寫,并存儲(chǔ)在稱為磁心線儲(chǔ)存器(ropememory)的特殊只讀存儲(chǔ)器中。之前有人將源代碼的掃描副本上傳到了  Internet。然后,這幾個(gè)模塊被轉(zhuǎn)換為文本文件,并上傳到了 Github 代碼庫。

每一位程序員都應(yīng)該學(xué)習(xí)的優(yōu)秀代碼有哪些

AGC 登月模塊中的代碼片段,作者截圖

阿波羅(Apollo)工程團(tuán)隊(duì)付出了巨大的努力,編寫大量的匯編代碼來取得如此驚人的成就。在 1960  年代,編程可比現(xiàn)在困難多了。因?yàn)樵谀菚r(shí),編程語言多為低級(jí)語言,需要直接操作硬件。所以,程序員必須編寫精心優(yōu)化的代碼來提高硬件使用效率。

雷神之錘 III 競(jìng)技場(chǎng)

雷聲之錘 III——競(jìng)技場(chǎng)是由 id Software 開發(fā)的第一人稱射擊游戲。它開發(fā)于上世紀(jì) 90 年代,當(dāng)時(shí)由于 id  Tech4 等游戲引擎的技術(shù)的出現(xiàn),3D  游戲行業(yè)開始興起。不像現(xiàn)在,那時(shí)候硬件資源非常有限。因此,游戲開發(fā)人員必須編寫精心優(yōu)化的代碼以實(shí)現(xiàn)圖形元素的渲染。許多游戲編程都需要實(shí)現(xiàn)矢量歸一化,這提出了對(duì)平方根倒數(shù)運(yùn)算的需求。如前所述,開發(fā)人員必須為這些與圖形計(jì)算相關(guān)的工作選擇最有效的算法。因此,雷聲之錘  III——競(jìng)技場(chǎng)開發(fā)團(tuán)隊(duì)使用一種非常聰明的方法進(jìn)行平方根倒數(shù)運(yùn)算,比如下面這樣使用位級(jí)計(jì)算。

每一位程序員都應(yīng)該學(xué)習(xí)的優(yōu)秀代碼有哪些

雷神之錘 III 競(jìng)技場(chǎng)中的平方根倒數(shù)快速算法,作者截圖

這段代碼的優(yōu)化水平以及在 90  年代就能開發(fā)出如此出色的計(jì)算機(jī)游戲這一事實(shí),真的很讓人驚訝。如今,游戲開發(fā)通常不需要處理這一級(jí)別的計(jì)算,因?yàn)槲锢砗瘮?shù)已經(jīng)由游戲引擎實(shí)現(xiàn)。

GNU 編譯器代碼集

C 語言是高級(jí)編程語言的鼻祖,因?yàn)樗确浅?拷布帜芴峁┝己玫目勺x性。作為 C 語言的編譯器,GNU  是自引導(dǎo)的。換句話說,它是應(yīng)用編譯器引導(dǎo)概念的 C 語言程序。Github 上的 GNU 編譯器代碼庫中的這個(gè)文件是我見過的最長的 C  語言源文件(可能有比這更長的 C 語言源文件,但是我沒見過)。

每一位程序員都應(yīng)該學(xué)習(xí)的優(yōu)秀代碼有哪些

GNU C 編譯器中的解析器的源文件有 2 萬多行代碼,作者截圖

Chromium

流行的 Web 瀏覽器(例如 Google Chrome,Microsoft Edge 和 Opera)很多是基于 Chromium  開源項(xiàng)目,該項(xiàng)目有兩個(gè)主要依賴:1)Blink 渲染引擎。它是 WebCore 庫的一個(gè)分支,該庫由 Webkit 團(tuán)隊(duì)基于 KHTML/KJS  進(jìn)行開發(fā);2)v8 JavaScript 引擎。該引擎由 Chromium 團(tuán)隊(duì)開發(fā)。毫無疑問,Chromium 代碼庫非常大,并且依賴很多第三方模塊,例如  gRPC 和 Skia。但是,Chromium  團(tuán)隊(duì)以一種非常優(yōu)雅的結(jié)構(gòu)來組織所有組件。他們非常明智地將用戶界面和內(nèi)部函數(shù)分開,以提高整個(gè)工程的可維護(hù)性。

每一位程序員都應(yīng)該學(xué)習(xí)的優(yōu)秀代碼有哪些

劃分良好的 ChromiumUI 組件抽象層的目錄結(jié)構(gòu),作者截圖

此外,此代碼庫還包含 Chromium Android 和 iOS  手機(jī)端程序的源代碼。大規(guī)模的跨平臺(tái)應(yīng)用程序目錄結(jié)構(gòu)的劃分可能會(huì)有些復(fù)雜。但是,Chromium 對(duì) Linux,Windows 和 Mac  不同平臺(tái)代碼目錄結(jié)構(gòu)的劃分做的非常棒。

Gitk

如今,基本上每一個(gè)軟件開發(fā)團(tuán)隊(duì)都會(huì)使用 Git 來進(jìn)行代碼歷史和版本的管理。Git 最初由 Linux 內(nèi)核的創(chuàng)始人 LinusTorvalds  開發(fā)。確實(shí),Gitk 的源文件的 Git 代碼中一個(gè)神奇的模塊。Gitk 是一個(gè) GUI 應(yīng)用程序,可以讓我們以可視化方式瀏覽歷史提交記錄。我們可以使用以下的  CLI 命令來比較兩次提交之間的差異。

$ git diff <commithash> <commithash>

但是,借助 Gitk 的可視化展示方式,我們可以更快速地明白不同提交之間的差異。Gitk 的整個(gè)源代碼只有一個(gè)文件。它是使用 Tk UI 工具包(Tcl  的擴(kuò)展程序)以 Tcl 腳本語言編寫的。它僅僅通過一個(gè)源文件就實(shí)現(xiàn)了整個(gè) GUI 應(yīng)用程序,還選擇了一種動(dòng)態(tài)編程語言來大大加快 GUI  應(yīng)用程序的開發(fā)速度。

每一位程序員都應(yīng)該學(xué)習(xí)的優(yōu)秀代碼有哪些

Gitk 由約 1 萬 2 千行代碼的單個(gè)源文件來實(shí)現(xiàn)

到此,相信大家對(duì)“每一位程序員都應(yīng)該學(xué)習(xí)的優(yōu)秀代碼有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI