你是否需要GitHub?
github有哪些東西?其實是很多東西。我不認為你必須使用它,但是它的確彙集了世界上的優秀程式設計師和工程師,彙集了有開源精神和情懷的一幫人,彙集了各種開源技術!
你是否需要GitHub?
要了解Github,我們首先要知道Git,Git是管理程式碼的工具,寫程式碼不是件輕鬆的事兒,一個人寫的時候已經不輕鬆了,一群人寫就更不輕鬆 了,但這世界上很多事都是怎麼不輕鬆怎麼來的,大部分人都會和別人一起寫程式碼,問題在於,這麼多人寫一個東西,你今天寫一點,我明天寫一點,然後發現你寫 錯了,又影響到了我前天寫的,最後彙總的時候怎麼查詢錯誤?又在什麼時候彙總?這些問題太多了,想想就覺得還是食物美好。為了讓寫程式碼這件事兒美好一點, 我們有了一種名叫程式碼管理的東西,Git正是其中之一,我使用過的還有SVN,但是今天我們只講Git。
Git的核心思想是『分散式』,我們在伺服器上面有一個『主倉庫』,這裡放的是拿得出檯面的程式碼,我們也可以在自己的電腦上建立分支,這些分支由 『主倉庫』克隆而來,然後我們就可以愉快的在自己的電腦上寫程式碼了,寫完程式碼可以同步在自己電腦的分支裡面,當你覺得自己的程式碼拿得出檯面,我們可以申請 把自己的程式碼更新到『主倉庫』裡面,一旦通過這樣的稽核,我們就對『主倉庫』做了某種貢獻,世界各地的傑出程式設計師不斷的為一個專案的『主倉庫』做貢獻,讓 這個專案變得越來越完善。
Github是運用Git思想來工作的一個商業網站,所有開發者都可以在Github上面為自己的專案建立一個『主倉庫』,好的專案就像狼群中的小鮮肉一樣,大量的開發者會把這個主倉庫中的程式碼克隆到自己的『分倉庫』去,用更性感的話來說,就是『Fork』。
Git的方式的確很優雅,但問題在於,會有人願意把自己辛辛苦苦的程式碼拿出來公佈,並且讓人Fork麼?
會,不僅會,而且很多,Github有超過140萬使用者,你可能會撇撇嘴說那個啥啥社交軟體都有2000萬使用者,區區140萬算個啥。可是這140 萬使用者幾乎涵蓋了這個世界上最優秀的開發者,我相信,你那個有2000W使用者的社交軟體的工程師,肯定也是用Github的。任何專案,在Github上 面獲得fork或star,都意味著其它工程師對這個專案的認可,這比100個QQ空間的贊更有價值。
為什麼這些優秀的工程師會開源自己的專案?
因為開源是一種精神。
無數的軟體開發者苦心積慮保護自己的程式碼不被破解,而還是被聰明絕頂的指令碼小子破解了,但破解無數軟體的指令碼小子在接下來的破解中卻傻眼了,因為這是開源的,不用破解也就破解了破解。
閉源意味著封閉,而開源則意味著開放,封閉很難進步,開放才會進步。開放讓人類的智慧有聚集的可能,人類的智慧聚集起來不再是1+1=2,這是開源 的力量。閉源是一種排斥,而開源是包容,閉源是單打獨鬥,開源是同仇敵愾,閉源是敝帚自珍,開源是無私奉獻,閉源是小富即安,開源是世界大同,閉源是資本 主義,開源是共產主義。
所以我一直想不通為啥Github會被牆。
閉源讓微軟成帝國,讓蘋果成神話,但是,這是商業,如果沒有技術的開源,這些商業的閉源也基本是無米之炊。商業需要閉源,而技術需要開源,利益需要閉源,而情懷需要開源。
開源是技術的『本善』。
我不排斥閉源,但是我讚美開源,就像我我忍受黑暗,但卻心存光明一樣,就像我頓頓吃素,卻依然熱愛肉食一樣。
當然,我沒有頓頓吃素。
相關文章
- GitHub Copilot:你需要知道的一切 - RawatGithub
- adpatch 時是否需要停應用,opatch是否需要停資料庫資料庫
- 前端開發越發複雜,你是否需要低程式碼平臺?前端
- 一個故事告訴你,學習程式設計是否需要天賦?程式設計
- 值物件是否需要持久化物件持久化
- 是否需要漢語程式語言
- 你是否真的需要64位的JDK呢?你是根據什麼來判斷與決定呢?JDK
- 探究是否需要@autoreleasepool優化迴圈優化
- Java是否需要內聯型別? -DukesletterJava型別
- 客戶端的socket是否需要bind?客戶端
- 你不需要 jQuery,但你需要一個 DOM 庫jQuery
- 微服務是否真的需要服務網格?微服務
- 在遊戲中,我們是否需要彈幕?遊戲
- 遊戲出海是否需要設立境外公司?遊戲
- SpringMVC一例 是否需要重定向SpringMVC
- 你是否浪費了你手中的資料?
- 滲透測試是否需要學習LinuxLinux
- BI預測分析,是否需要那麼精準?
- 監視index的使用看看是否需要重建!Index
- 分散式事務–我們是否真的需要薦分散式
- 測試是否需要一票否決權
- 你不需要VuexVue
- GitHub 上需要關注的 10 大 React 庫GithubReact
- 你必須『收藏』的Github技巧Github
- 你必須收藏的Github技巧Github
- 你有用過 Github 的 Gist 嗎?Github
- 長沙牽引力詳解UI設計師需要學什麼?你是否具備這些技能?UI
- 利用Node Github Profile Summary來生成你的Github簡歷吧Github
- Spark優化之小檔案是否需要合併?Spark優化
- 打造個人IP,是否需要付費報名學習?
- 判斷資料庫是否需要例項恢復資料庫
- 是否需要追逐潮流!基於Hadoop的感想薦Hadoop
- 請問session.invalidate()前是否需要removeAttribute()SessionREM
- 關於是否需要同步的一個問題?
- 你需要知道的kafkaKafka
- 你不需要微服務微服務
- 你需要知道的SymbolsSymbol
- 你需要了解API介面API