偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

值得每個(gè)碼農(nóng)去學(xué)習(xí)的優(yōu)秀開源代碼

開發(fā) 前端
當(dāng)我瀏覽Github存儲(chǔ)庫(kù)時(shí),我注意到世界各地的開發(fā)人員已經(jīng)完成了以下令人印象深刻的工作。

我通常會(huì)在有空的時(shí)候?yàn)g覽Github存儲(chǔ)庫(kù)。 另外,當(dāng)我開始使用新的計(jì)算機(jī)軟件,工具或?qū)嵱贸绦驎r(shí),我喜歡查看特定軟件的工作方式。 大多數(shù)時(shí)候,我看一下它的代碼庫(kù),以了解事物如何與內(nèi)部模塊和外部依賴項(xiàng)完全配合。

[[347935]]

幾年前,我正在檢查Python語(yǔ)言實(shí)現(xiàn)的源代碼。 此后,我注意到了幾個(gè)C源文件,并突然檢查了GNU C編譯器集合的實(shí)現(xiàn)。 我發(fā)現(xiàn)這個(gè)現(xiàn)代的C編譯器是用C本身編寫的。 學(xué)習(xí)事物的內(nèi)部結(jié)構(gòu)并進(jìn)一步深入,可以為我們帶來(lái)驚人的感覺和豐富的知識(shí)。 過去的開發(fā)人員已經(jīng)做出了巨大的努力,為現(xiàn)代開發(fā)人員創(chuàng)造了一個(gè)和平的世界。 但是,作為現(xiàn)代開發(fā)人員,我們應(yīng)該感謝他們的出色工作。

當(dāng)我瀏覽Github存儲(chǔ)庫(kù)時(shí),我注意到世界各地的開發(fā)人員已經(jīng)完成了以下令人印象深刻的工作。

阿波羅11號(hào)制導(dǎo)計(jì)劃

阿波羅11號(hào)是第一個(gè)成功的使人類登月的任務(wù)。 只有4 KB物理內(nèi)存的阿波羅制導(dǎo)計(jì)算機(jī)(AGC)為控制航天器提供了支持。 AGC的軟件以AGC匯編語(yǔ)言編寫,并存儲(chǔ)在稱為繩索存儲(chǔ)器的特殊只讀存儲(chǔ)器中。 一段時(shí)間之前,已掃描了源代碼的掃描副本,這些副本已上傳到Internet。 此后,有人將幾個(gè)模塊轉(zhuǎn)換為文本文件,然后將其上傳到Github存儲(chǔ)庫(kù)。

> Piece of code from the Lunar module of AGC, screenshot by the author

阿波羅(Apollo)工程團(tuán)隊(duì)付出了巨大的努力,通過用匯編語(yǔ)言編寫了許多代碼行,以取得如此驚人的成就。 在1960年代,編程比現(xiàn)在更加困難。 因?yàn)樵谀菚r(shí),編程語(yǔ)言的抽象級(jí)別較低。 此外,程序員必須編寫超級(jí)優(yōu)化的代碼才能有效地使用硬件。

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

Quake III Arena是由id Software開發(fā)的第一人稱射擊游戲。 它是在90年代開發(fā)的,當(dāng)時(shí)3D游戲行業(yè)剛剛開始使用id Tech 3游戲引擎進(jìn)行開發(fā)。 當(dāng)時(shí),硬件資源非常有限。 因此,游戲開發(fā)人員必須編寫精心優(yōu)化的代碼以呈現(xiàn)圖形元素。 許多游戲編程計(jì)算都需要向量歸一化概念,這提出了平方根反比計(jì)算的要求。 如前所述,開發(fā)人員必須為這些與計(jì)算機(jī)圖形學(xué)相關(guān)的工作選擇最有效的算法。 因此,Quake III Arena團(tuán)隊(duì)使用一種非常聰明的方法進(jìn)行快速反平方根計(jì)算,如下所示,使用位級(jí)計(jì)算。

> Fast inverse square root function in Quake III Arena, screenshot by the author

這段代碼中使用的優(yōu)化水平以及為在90年代實(shí)現(xiàn)如此出色的計(jì)算機(jī)游戲而編寫的整個(gè)代碼顯然令人驚訝。 如今,游戲開發(fā)通常不處理這一級(jí)別的計(jì)算,因?yàn)槲锢砉δ芤呀?jīng)由游戲引擎實(shí)現(xiàn)。

GNU編譯器集合

C編程語(yǔ)言就像現(xiàn)代計(jì)算之父一樣,因?yàn)樗ㄟ^提供良好的人類可讀的抽象級(jí)別而與硬件之間的距離非常近。 確實(shí),GNU C編譯器已啟動(dòng)。 換句話說,它是使用編譯器自舉概念以C編程語(yǔ)言編寫的。 我注意到我從Github上的GNU編譯器集合的代碼庫(kù)中看到了最長(zhǎng)的C源文件(可以有比這更長(zhǎng)的C源文件,但這是我看到的)。

> GNU C Compiler's C parser source file has more than 20k lines, screenshot by the author

Google Chrome

流行的Web瀏覽器(例如Google Chrome,Microsoft Edge和Opera)基于Chromium開源項(xiàng)目,該項(xiàng)目具有兩個(gè)主要依賴項(xiàng):Blink呈現(xiàn)引擎(是由Webkit團(tuán)隊(duì)開發(fā)的WebCore庫(kù)的一個(gè)分支),以及v8 JavaScript引擎, 由Chromium項(xiàng)目團(tuán)隊(duì)開發(fā)。 毫無(wú)疑問,Chromium代碼庫(kù)非常大,并且具有許多第三方模塊,例如gRPC和Skia。 但是,Chromium團(tuán)隊(duì)以很好的方式構(gòu)造了所有組件。 他們明智地分離了用戶界面相關(guān)的邏輯和內(nèi)部功能邏輯,以在整個(gè)項(xiàng)目中實(shí)現(xiàn)非常好的可維護(hù)性因素。

> Well-organized abstract UI controls of Chromium, screenshot by the author

此外,此代碼庫(kù)還包含Chromium Android和iOS應(yīng)用程序的源代碼。 構(gòu)建大規(guī)模的跨平臺(tái)應(yīng)用程序可能會(huì)有些復(fù)雜。 但是,Chromium對(duì)Linux,Windows和Mac的平臺(tái)特定代碼有令人印象深刻的分離。

Git

如今,Git幫助幾乎每個(gè)軟件開發(fā)團(tuán)隊(duì)管理編碼歷史和版本。 Git最初由Linux內(nèi)核的創(chuàng)始人Linus Torvalds制作。 確實(shí),Git的代碼庫(kù)包含一項(xiàng)神奇的工作,這是Gitk的源文件。 Gitk是一個(gè)GUI應(yīng)用程序,可以幫助我們直觀地瀏覽提交。 我們可以使用以下CLI命令來(lái)檢查兩次提交之間的差異。

  1. $ git diff <commit hash> <commit hash> 

但是,由于它是視覺工具,因此Gitk允許我們這么快地看到修改。 Gitk的整個(gè)源代碼只是一個(gè)文件。 它是使用Tk UI工具包(是Tcl的擴(kuò)展)以Tcl腳本語(yǔ)言編寫的。 他們通過僅用一個(gè)源文件實(shí)現(xiàn)整個(gè)GUI應(yīng)用程序,也通過選擇動(dòng)態(tài)編程語(yǔ)言以加快GUI應(yīng)用程序開發(fā)來(lái)完成了出色的工作。

> Gitk was implemented as a single source file with around 12k lines, screenshot by the author

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2015-01-12 10:06:02

在線客服

2020-05-26 21:09:16

碼農(nóng)插件開源

2013-03-12 10:00:29

HaskellHaskell語(yǔ)言編程語(yǔ)言

2019-09-30 09:00:00

開發(fā)者技能工具

2018-01-10 08:45:57

編程語(yǔ)言PythonKotlin

2020-09-10 10:16:09

開源代碼安全性漏洞惡意組件

2014-12-04 10:02:55

2025-05-26 09:20:00

2025-03-10 11:30:00

開源前端開發(fā)

2022-11-28 08:02:17

DNSIP計(jì)算機(jī)

2022-11-30 14:57:39

產(chǎn)業(yè)互聯(lián)網(wǎng)

2021-06-17 09:00:00

人工智能機(jī)器學(xué)習(xí)開源

2013-11-14 13:58:06

硅谷碼農(nóng)

2014-10-23 08:56:42

開源項(xiàng)目C

2015-05-12 10:15:15

程序員

2023-07-16 22:34:55

2020-09-30 11:14:24

AI碼農(nóng)架構(gòu)

2019-09-08 18:24:53

代碼程序員技術(shù)

2021-07-16 09:00:00

深度學(xué)習(xí)機(jī)器學(xué)習(xí)開發(fā)

2021-01-01 14:59:51

Python機(jī)器學(xué)習(xí)算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)