自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

世界上最流行的軟件,拋棄了Git!

開發(fā) 架構(gòu)
Richard對(duì)Git的吐槽有為自己產(chǎn)品宣傳的成分(至少這篇文章在HackerNews中引發(fā)了三次大討論,賺足了眼球,吸盡了流量),但也真的是自己使用覺得覺得不爽的地方。

世界上使用最流行的軟件是什么?

Windows ? Android?  Office ?

都不對(duì)!

答案是 SQLite !一個(gè)嵌入式數(shù)據(jù)庫。

你可能沒聽說過它,但是它就在你身邊的:

每一臺(tái)智能手機(jī)中(Android 和iOS),Mac電腦,Windows 10電腦。

每一個(gè)主要的瀏覽器中(Chrome, Firefox, Safari)

大部分的機(jī)頂盒當(dāng)中

每個(gè)PHP和Python安裝目錄中

很多流行的桌面應(yīng)用(微信、QQ、 DropBox、 Skype、 iMessage、WhatsApp、 Adobe Acrobat Reader....)

......

不信的話可以在電腦中搜索一下 “*.db”,看看能發(fā)現(xiàn)多少個(gè)。

SQLite的發(fā)明人是Richard Hipp。

圖片圖片

Richard不但寫了SQLite,他還寫了另外一個(gè)版本控制軟件Fossil。

圖片圖片

有趣的是SQLite項(xiàng)目使用Fossil來做版本控制。

而Fossil又使用SQLite來存儲(chǔ)內(nèi)容。

有點(diǎn)兒雞生蛋,蛋生雞的感覺。

我們不僅要問:現(xiàn)在Git已經(jīng)是源碼管理系統(tǒng)中最流行的軟件,SQLite為什么不使用Git,而要另起爐灶呢?

Richard寫了一篇文章《Why SQLite Does Not Use Git》,解釋了其中的原因,幾個(gè)要點(diǎn)如下:

1. Git的思維模型過于復(fù)雜

Git的復(fù)雜性分散了人們對(duì)于正在開發(fā)軟件的注意力,Git用戶需要牢記一下所有內(nèi)容

(1)The working directory

(2)The "index" or staging area

(3)The local head

(4)The local copy of the remote head

(5)The actual remote head

Git提供了很多命令和選項(xiàng)在所有這些位置之間進(jìn)行文件移動(dòng)和比較。

相比而言,F(xiàn)ossil只需要考慮他們的工作目錄和正在處理的check-in,干擾減少了60%,每個(gè)開發(fā)人員的大腦周期是有限的,F(xiàn)ossil需要的大腦周期更少,從而可以釋放智力資源來專注正在開發(fā)的軟件。

正如一個(gè)使用過Git和Fossil的用戶在HackerNews上縮寫的:

Fossil讓我安心,因?yàn)槲覔碛幸磺?.....通過一個(gè)命令同步到服務(wù)器...... 我從來沒有通過Git獲得過這種安心。 

2. Git沒有提供良好的態(tài)勢感知能力

當(dāng)Richard想看看SQLite最近發(fā)生了什么情況時(shí),他可以使用Fossil的Timeline功能,在一個(gè)屏幕上看到所有更改的摘要,只需幾下點(diǎn)擊,就可以看到細(xì)節(jié)信息,甚至用手機(jī)也可以,非常方便。

GitHub和GitLab沒有提供類似的功能,最接近的是“Network graph”,但是它渲染起來很慢(除非事先有緩存),并且不提供那么多的細(xì)節(jié),移動(dòng)設(shè)備上效果更不好。

GitHub的commit視圖不錯(cuò),有詳細(xì)信息,速度快,可是每次只能提供顯示一個(gè)分支,無法輕松知道所有最近的更改。 

很多Git用戶會(huì)使用第三方的Git圖形查看器,它們需要單獨(dú)安裝和管理,并且很多是特定平臺(tái)的(例如僅適用于Mac的GitUp),想用這些圖形查看器,首先還得同步本地存儲(chǔ)庫,很麻煩。 

3. Git 不跟蹤歷史分支名稱

Git保留了commit序列完整的DAG,但branch tag是本地信息,它不會(huì)同步,不會(huì)保留,這使得查看歷史分支變得非常乏味。

Richard用一個(gè)分支的例子對(duì)比了Git和Fossil,F(xiàn)ossil可以清楚地顯示Branch開始的位置,什么時(shí)候合并回主干,GitHub則不行,除非使用第三方的工具。

圖片圖片

4. Git需要更多的管理支持

Git是個(gè)復(fù)雜的軟件,建立Git服務(wù)器并不容易,所以大多數(shù)開發(fā)人員使用第三方服務(wù)如GitHub和GitLab,從而引入額外的依賴項(xiàng)。

相比之下,F(xiàn)ossil是個(gè)獨(dú)立的二進(jìn)制軟件,包含GitHub,GitLab的核心功能,建立一個(gè)服務(wù)器非常高效,只需幾分鐘時(shí)間就擁有一個(gè)帶有wiki、錯(cuò)誤跟蹤和論壇的社區(qū)服務(wù)器,為用戶提供打包下載,登錄管理等功能。

Fossil對(duì)硬件要求很低,可以在 5 美元/月的 VPS 或 Raspberry Pi 上正常運(yùn)行。

5.Git提供了糟糕的用戶體驗(yàn)

下面這個(gè)xkcd 的漫畫雖然夸張,但是卻切中要害。

圖片圖片

說實(shí)話,很少人質(zhì)疑Git提供的用戶界面不理想,很多底層的實(shí)現(xiàn)都展示在了和用戶交互的接口中,交互接口設(shè)計(jì)很糟糕,有個(gè)網(wǎng)站甚至專門生成假的Git幫助手冊:https://git-man-page-generator.lokaltog.net/#ZWR1Y2F0ZSQkaGVhZA==

Richard的吐槽挺犀利的,但我能感同身受的只有第一點(diǎn)和最后一點(diǎn):模型復(fù)雜,用戶體驗(yàn)差。 

我剛開始接觸Git時(shí)也有很強(qiáng)的抵觸情緒:項(xiàng)目組就這么幾個(gè)人,為什么要用分布式的系統(tǒng)?搞什么本地倉庫,遠(yuǎn)程倉庫,還得記住各種各樣煩人的命令...... 

集中式管理SVN它不香嗎? 

用得多了,發(fā)現(xiàn)有兩個(gè)好處:

(1) 在本地有個(gè)副本,可以自由地修改,并且能提交到本地的代碼倉庫中,先把版本管理起來,這是很爽的一件事情。等到合適的時(shí)候再push,什么事情都不耽誤。

(2) Git的分支實(shí)在是強(qiáng),創(chuàng)建分支不像SVN那樣得復(fù)制目錄,很輕量級(jí),新特性開發(fā)都可以用分支來搞。

當(dāng)然,代價(jià)就是記住,用熟那些復(fù)雜的命令。

Richard是個(gè)挺有意思的人,他很喜歡造自己的小工具,喜歡自給自足。

除了SQLite和Fossil之外,他還開發(fā)了一個(gè)Web服務(wù)器althttpd,這是個(gè)小巧,簡單,安全,低資源占用的Web服務(wù)器,現(xiàn)在sqlite.org網(wǎng)站就架在它之上,每天處理50萬個(gè)Http請(qǐng)求,傳輸200G的數(shù)據(jù)。

Richard還開發(fā)過一個(gè)叫CVSTrac的Bug跟蹤系統(tǒng),也是使用SQLite來存儲(chǔ)相關(guān)數(shù)據(jù)。 

所以,Richard對(duì)Git的吐槽有為自己產(chǎn)品宣傳的成分(至少這篇文章在HackerNews中引發(fā)了三次大討論,賺足了眼球,吸盡了流量),但也真的是自己使用覺得覺得不爽的地方。

SQLite選擇了Fossil,那是因?yàn)閷?duì)Richard來說,F(xiàn)ossil足夠了,并且在某些功能上更好,更能滿足自己的需求。 

就像他使用自家的Althttpd,而不是Apache一樣。

但是對(duì)于更多的程序員來說,Git和GitHub的生態(tài)系統(tǒng)更有效。

這個(gè)世界應(yīng)該是百花齊放的。

責(zé)任編輯:武曉燕 來源: 碼農(nóng)翻身
相關(guān)推薦

2023-07-31 08:59:46

軟件FossilSQLite

2024-10-14 10:58:13

2025-03-13 00:35:00

2013-04-24 09:57:08

Excel微軟

2024-05-28 09:17:57

2018-11-06 12:22:18

排序算法代碼

2024-01-11 09:11:08

數(shù)據(jù)庫SQLite管理

2014-09-05 09:08:58

2010-09-02 13:21:46

2013-06-09 08:52:50

哈希表

2024-04-28 09:14:05

2025-01-09 11:10:15

2023-02-28 08:59:47

PythonJavaJavaScript

2015-11-25 09:41:05

數(shù)據(jù)中心

2021-11-30 14:06:37

排序算法代碼

2014-02-11 09:58:19

環(huán)保數(shù)據(jù)中心泰坦

2019-07-21 07:37:20

APT惡意軟件網(wǎng)絡(luò)安全

2013-07-09 10:11:41

程序設(shè)計(jì)大賽程序員

2024-07-10 10:25:15

2024-07-15 09:06:51

點(diǎn)贊
收藏

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