github做爲全球最大的開源軟件託管平臺,自2008年上線以來,一直吸引了無數的程序開發者在上面開源分享本身的項目代碼。尤爲是在微軟收購github以後,更是吸引了不少非程序開發者將本身的知識和經驗經過平臺分享出來,能夠說github是一個蘊藏了無數價值和寶藏的大寶庫。然而,對於這樣一個極具價值的平臺,你真的會使用嗎?git
github極具價值,下面我簡單列舉幾點:github
託管本身的項目代碼和文件設計模式
解決實際工做中遇到的問題微信
借鑑別人的知識和經驗,提高自個人能力架構
提供學習交流的場所學習
搭建本身的博客優化
提高自身行業的影響力和地位.net
在繼續往下閱讀以前,請確保你不是所謂的"伸手黨",由於如下的內容,可能對這部分的人羣毫無價值,讀了也是浪費時間。設計
1.首先,你得明確須要上傳github的項目內容。這裏我要特別提醒,你可別提交與公司相關的內容,你但是簽過保密協議的,提交的內容要慎重,儘可能避開與公司相關的內容。即便你想提交,也務必本身重寫一個,固然公司核心的內容你就別提交了,重寫也不行,違規的事情咱不能作。代碼規範
2.在提交項目前,你得先了解git
指令,由於在github上的全部操做都是經過git
指令完成的,這裏我有一篇Git 經常使用命令可供參考。
3.瞭解完git
指令後,下面就是開始上傳項目代碼了,這裏我有一篇如何使用Git命令提交項目代碼可供參考。
4.對於項目的管理操做,能夠借鑑一下網上的GitHub項目管理基本操做.這裏,你須要瞭解的內容包括:
1.先肯定問題涉及技術的關鍵詞。
2.使用github的搜索功能進行搜索。對結果咱們能夠經過語言(Languages)和收藏數(Most stars)進行排序篩選,以下圖所示:
3.選擇目標參考的項目。選擇開源項目通常有如下幾點考量因素:
以下圖所示,標紅的咱們都須要關注:
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腳本上傳代碼倉庫
放棄該項目,找一個更適合本身的項目。
正如Linux之父的那句"Talk is cheap. Show me the code.",我一直奉行源碼是最好的老師,看別人吹的技術文章千遍,也不如本身真刀實槍地擼一遍源碼來得有效果。事實上,我也正是經過不斷地閱讀好的開源項目的源碼,吸收他們其中好的設計和精髓,一步一步成長過來的,而這些好的開源項目正託管在github上,待你去發現。
1.尋找好的開源項目。搜尋好的github開源項目有兩種途徑:
2.找到你想要學習的開源項目後,下面介紹個人學習思路供你們參考:
(1) 首先,clone項目源碼到本地,本身試着跑一邊源碼,體驗一下項目運行的效果。
(2) 接着,大致上瞭解一下項目的組成結構,粗略閱讀一下項目的源碼,瞭解項目大致上的設計思路和主體架構。這一步對咱們閱讀源碼的能力有必定的要求。
(3) 而後,本身也新建一個項目,從0開始,一步一步嘗試着模仿項目的實現思路,本身也跟着寫一套。這一步對咱們的自學能力有很大的要求,由於這中間你會遇到各類各樣的問題,並且都很是困難,這就須要經過蒐集大量的資料去了解和學習各類新的知識。也正是這樣,你才能不斷提高本身的技術水平和解決問題的能力。等你本身的項目可以運行出開源項目同樣效果的時候,你就基本上得到了該開源項目80%的價值了。
(4) 最後,光是單純模仿別人的開源項目是遠遠不夠的,由於別人的永遠是別人的,並非靠你去模仿就屬於你的了。這裏咱們還須要觸類旁通的能力,可以從別人開源項目中汲取其中的精華來運用到本身的項目中。那麼咱們該怎麼作呢?下面我將介紹兩種途徑:
項目改進。在你模仿的過程當中,你必定會發現項目中有一些不合理的設計或者先天的設計缺陷,改進他們,拓展和豐富項目的功能,並將其引入到實際的開發工做中去不斷檢驗本身的改進,進行持續性的優化和改進。
從新設計和實現屬於本身的開源項目。這對你自身的學習動手能力和設計能力有很高的要求。首先你要有明確的項目實現目標和設計思路,其次你須要將以前模仿過程當中汲取到的精華與自身的項目經驗結合以及設計思路結合起來,最終設計和實現一個有使用價值的開源項目,並運用到實際的開發工做中去不斷檢驗項目的價值,進行持續性的優化和改進。
這裏我就很少講了,網上有不少相關的教程,百度搜索"使用github搭建博客"
,能搜索到不少結果。這裏我推薦一個比較靠譜的文章Github搭建我的博客供參考。
提高自身行業的影響力和地位,並非一味地去加各類羣去推銷本身的開源項目或者相互star,從而騙取較高的star量。咱們真正須要作的就是不斷地去寫開源項目,不斷地提高開源項目的質量,這樣star量和影響力也就天然水到渠成了。那麼如何才能提高開源項目的質量呢?下面我將一一講解。
1.優秀的設計思路。優質的開源項目必定是擁有好的設計思路。這裏就須要咱們對設計模式的七大原則有深入的瞭解。這裏我推薦個人博客專題Java設計模式在Android中的實踐供你們參考。
2.完備的文檔介紹。文檔纔是別人瞭解你項目的第一手資料。這裏包括項目的主頁、README.md、wiki和issue模版等內容。項目的文檔除了內容上要豐富以外,還須要不斷地隨着項目的迭代進行文檔的更新。
3.良好的代碼規範。開源的項目,良好的代碼規範是必須的,不然別人閱讀你的代碼將會很是難受,可能閱讀一半就放棄你的項目了。這裏推薦阿里巴巴的代碼規範利器
4.有效的溝通交流渠道。這裏推薦使用QQ羣。固然,若是你不怕騷擾的話,也能夠放上你的qq號和郵箱。
5.豐富的使用案例。這點要求可能比較高了,通常我的開源者不多會去收集項目的使用案例。即便這樣,我依然鼓勵你們多多收集本身項目的使用案例,由於這會減小不少保守開發者採用本開源項目的顧慮。