成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

每一位程序員都應該學習的優秀代碼

開發 前端
有時,開發人員編寫的代碼對硬件的利用能達到讓人驚嘆的地步,并給整個世界留下深刻的印象。

當我閑暇時,我會瀏覽 Github 的代碼庫。使用新的計算機軟件、工具或實用程序時,我也喜歡琢磨下它的運行機制。通常情況,我會研究它的代碼庫,以了解其內部模塊和外部依賴是如何有機結合來完成工作。

[[382376]]

幾年前,我查看 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 Tech3 等游戲引擎的技術的出現,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 命令來比較兩次提交之間的差異。

  1. $ git diff <commithash> <commithash> 

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

Gitk 由約 1 萬 2 千行代碼的單個源文件來實現,作者截圖

 

責任編輯:趙寧寧 來源: 前端之巔
相關推薦

2015-07-02 11:20:17

程序員代碼

2019-11-13 17:36:32

工程師人生第一份工作算法

2012-02-28 10:52:13

2018-03-07 12:57:53

2011-07-25 10:09:57

Python

2015-04-16 10:26:51

程序員 Python Ruby

2024-04-10 12:36:41

硬件代碼

2014-12-26 10:19:14

程序員

2021-08-19 15:14:29

程序員電子表格Airtable

2011-06-16 08:58:57

軟考程序員

2017-09-07 15:12:42

程序員

2016-06-03 15:18:45

程序員

2014-07-16 09:34:44

2017-04-07 10:40:48

程序員學習命令行

2014-08-04 10:43:47

程序員

2020-12-07 14:58:50

程序員開源開發者

2012-10-11 10:32:48

Linux命令程序員

2023-01-31 15:43:47

2021-12-17 10:58:07

Shell腳本語言

2021-10-20 06:05:01

編程語言開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 青娱乐一区二区 | 亚洲精品乱码久久久久久黑人 | 天天干夜夜操 | 日韩有码一区 | 51ⅴ精品国产91久久久久久 | 久久福利| 农夫在线精品视频免费观看 | 免费在线一区二区三区 | 色频| 国产精品美女在线观看 | 欧美日韩国产高清 | 亚洲视频二区 | 一区二区三区四区国产 | 久久精品欧美一区二区三区不卡 | 精品自拍视频 | 久久久美女 | 久久午夜视频 | 国产精品久久精品 | 激情在线视频 | 一区二区在线 | 欧美一级欧美三级在线观看 | 精品熟人一区二区三区四区 | www.久久艹 | 一区中文 | 亚洲精品欧美精品 | 国产精品综合色区在线观看 | 国产高清精品在线 | 欧美黑人一区二区三区 | 91精品久久久久久久久久入口 | 狼色网 | 中文字幕综合在线 | 精品国产一区二区三区久久狼黑人 | 午夜视频在线观看一区二区 | 久久精品久久久久久 | 欧美在线视频网 | 欧美亚洲激情 | 亚洲成人一区二区三区 | 中文字幕在线视频精品 | 亚洲最大看片网站 | av网站在线播放 | 久久男人 |