天天看點

你真的會使用github嗎?

github作為全球最大的開源軟體托管平台,自2008年上線以來,一直吸引了無數的程式開發者在上面開源分享自己的項目代碼。尤其是在微軟收購github之後,更是吸引了很多非程式開發者将自己的知識和經驗通過平台分享出來,可以說github是一個蘊藏了無數價值和寶藏的大寶庫。然而,對于這樣一個極具價值的平台,你真的會使用嗎?

github的價值

github極具價值,下面我簡單列舉幾點:

  • 托管自己的項目代碼和檔案
  • 解決實際工作中遇到的問題
  • 借鑒别人的知識和經驗,提升自我的能力
  • 提供學習交流的場所
  • 搭建自己的部落格
  • 提升自身行業的影響力和地位

如何使用github

在繼續往下閱讀之前,請確定你不是所謂的"伸手黨",因為以下的内容,可能對這部分的人群毫無價值,讀了也是浪費時間。

一、如何使用github進行項目管理

1.首先,你得明确需要上傳github的項目内容。這裡我要特别提醒,你可别送出與公司相關的内容,你可是簽過保密協定的,送出的内容要慎重,盡量避開與公司相關的内容。即使你想送出,也務必自己重寫一個,當然公司核心的内容你就别送出了,重寫也不行,違規的事情咱不能做。

2.在送出項目前,你得先了解

git

指令,因為在github上的所有操作都是通過

git

指令完成的,這裡我有一篇Git 常用指令可供參考。

3.了解完

git

指令後,下面就是開始上傳項目代碼了,這裡我有一篇如何使用Git指令送出項目代碼可供參考。

4.對于項目的管理操作,可以借鑒一下網上的GitHub項目管理基本操作.這裡,你需要了解的内容包括:

  • 主幹(master)和分支(branch)
  • 合并請求(Pull Request和Merge)
  • 打标簽(tag)和釋出(release)
  • 項目介紹(README.md)
  • 知識庫(wiki)
  • 問題建議(issues)
  • 項目計劃(projects).

二、如何通過github解決實際工作中遇到的問題

1.先确定問題涉及技術的關鍵詞。

2.使用github的搜尋功能進行搜尋。對結果我們可以通過語言(Languages)和收藏數(Most stars)進行排序篩選,如下圖所示:

你真的會使用github嗎?

3.選擇目标參考的項目。選擇開源項目一般有以下幾點考量因素:

  • 項目的star量:越多越好。
  • 項目的活躍度:這裡考量的因素包含issue的總體數量、open issue和closed issue的數量、issue回複和解決的速度、項目最後一次送出的時間。
  • 文檔是否齊全:是否有wiki或者README.md
  • 項目代碼的品質:設計是否合理,是否符合設計模式原則,考慮項目的可擴充性、便利性和穩定性。
  • 開源作者的水準:作者其他項目的star量和行業影響力。
  • 注意開源協定,以免不必要的麻煩。

如下圖所示,标紅的我們都需要關注:

你真的會使用github嗎?

4.确定了參考的項目後,下面就是如何使用别人的開源項目。

(1)先仔細閱讀項目介紹(README.md),大體上了解項目的内容。

(2)了解如何引用和使用。你可以通過閱讀項目介紹(README.md)或者wiki獲得。

(3)如果項目比較大的話,建議參考項目的demo源碼。

5.出問題了如何解決。【這步很關鍵】

使用别人的開源項目,難免需求會有些出入,當然也會遇到一些未知的bug,這很正常。下面我将介紹一個最優的解決路線。

(1) 再回頭仔細閱讀README.md和wiki,確定自己沒有誤使用。

(2) 如果項目有【常見問題】這一項,先看一下能否解決自己的問題。

(3) 提取問題的關鍵字,在項目的issue中進行搜尋,檢視有無可解決的方案,這一點很重要,開源者一般都很讨厭别人提一些重複性的issue。

(4) 確定你出現的問題,别人都沒有提過的情況下,嘗試提issue。這裡注意将issue的内容描述清楚,如果項目提供issue模闆的話就按要求認真填寫,開源者沒時間在那裡揣測你的想法,這樣能解決大家的時間。

(5) 如果你提的issue作者一直不回複的話,這時候有三條路給你選擇:

  • 看項目README.md最後有沒有交流群或者作者的聯系方式,加入後直接反應問題。
  • fork項目,直接修改源碼,自己解決問題。如果你想将自己修改後的代碼上傳代碼倉庫的話,這裡有一篇文章可供參考:手把手教你使用Gradle腳本上傳代碼倉庫
  • 放棄該項目,找一個更适合自己的項目。

三、如何通過github借鑒别人的知識和經驗,提升自我的能力

正如Linux之父的那句"Talk is cheap. Show me the code.",我一直奉行源碼是最好的老師,看别人吹的技術文章千遍,也不如自己真刀實槍地撸一遍源碼來得有效果。事實上,我也正是通過不斷地閱讀好的開源項目的源碼,吸取他們其中好的設計和精髓,一步一步成長過來的,而這些好的開源項目正托管在github上,待你去發現。

1.尋找好的開源項目。搜尋好的github開源項目有兩種途徑:

  • github的搜尋功能:如果你對學習的内容有明确的方法,使用這種。
  • github的每日趨勢:如果你對最新的技術熱點感興趣的話,使用這種。

2.找到你想要學習的開源項目後,下面介紹我的學習思路供大家參考:

(1) 首先,clone項目源碼到本地,自己試着跑一邊源碼,體驗一下項目運作的效果。

(2) 接着,大體上了解一下項目的組成結構,粗略閱讀一下項目的源碼,了解項目大體上的設計思路和主體架構。這一步對我們閱讀源碼的能力有一定的要求。

(3) 然後,自己也建立一個項目,從0開始,一步一步嘗試着模仿項目的實作思路,自己也跟着寫一套。這一步對我們的自學能力有很大的要求,因為這中間你會遇到各種各樣的問題,而且都非常困難,這就需要通過搜集大量的資料去了解和學習各種新的知識。也正是這樣,你才能不斷提升自己的技術水準和解決問題的能力。等你自己的項目能夠運作出開源項目一樣效果的時候,你就基本上獲得了該開源項目80%的價值了。

(4) 最後,光是單純模仿别人的開源項目是遠遠不夠的,因為别人的永遠是别人的,并不是靠你去模仿就屬于你的了。這裡我們還需要舉一反三的能力,能夠從别人開源項目中汲取其中的精華來運用到自己的項目中。那麼我們該怎麼做呢?下面我将介紹兩種途徑:

  • 項目改進。在你模仿的過程中,你一定會發現項目中有一些不合理的設計或者先天的設計缺陷,改進他們,拓展和豐富項目的功能,并将其引入到實際的開發工作中去不斷檢驗自己的改進,進行持續性的優化和改進。
  • 重新設計和實作屬于自己的開源項目。這對你自身的學習動手能力和設計能力有很高的要求。首先你要有明确的項目實作目标和設計思路,其次你需要将之前模仿過程中汲取到的精華與自身的項目經驗結合以及設計思路結合起來,最終設計和實作一個有使用價值的開源項目,并運用到實際的開發工作中去不斷檢驗項目的價值,進行持續性的優化和改進。

四、如何通過github搭建自己的部落格

這裡我就不多講了,網上有很多相關的教程,百度搜尋

"使用github搭建部落格"

,能搜尋到很多結果。這裡我推薦一個比較靠譜的文章Github搭建個人部落格供參考。

五、如何通過github提升自身行業的影響力和地位

提升自身行業的影響力和地位,并不是一味地去加各種群去推銷自己的開源項目或者互相star,進而騙取較高的star量。我們真正需要做的就是不斷地去寫開源項目,不斷地提升開源項目的品質,這樣star量和影響力也就自然水到渠成了。那麼如何才能提升開源項目的品質呢?下面我将一一講解。

1.優秀的設計思路。優質的開源項目一定是擁有好的設計思路。這裡就需要我們對設計模式的七大原則有深刻的了解。這裡我推薦我的部落格專題Java設計模式在Android中的實踐供大家參考。

2.完備的文檔介紹。文檔才是别人了解你項目的第一手資料。這裡包括項目的首頁、README.md、wiki和issue模版等内容。項目的文檔除了内容上要豐富之外,還需要不斷地随着項目的疊代進行文檔的更新。

3.良好的代碼規範。開源的項目,良好的代碼規範是必須的,否則别人閱讀你的代碼将會非常難受,可能閱讀一半就放棄你的項目了。這裡推薦阿裡巴巴的代碼規範利器

4.有效的溝通交流管道。這裡推薦使用QQ群。當然,如果你不怕騷擾的話,也可以放上你的qq号和郵箱。

微信公衆号