github作為全球最大的開源軟件托管平臺,自2008年上線以來斗埂,一直吸引了無數(shù)的程序開發(fā)者在上面開源分享自己的項目代碼符糊。尤其是在微軟收購github之后,更是吸引了很多非程序開發(fā)者將自己的知識和經(jīng)驗通過平臺分享出來呛凶,可以說github是一個蘊藏了無數(shù)價值和寶藏的大寶庫男娄。然而,對于這樣一個極具價值的平臺漾稀,你真的會使用嗎模闲?
github的價值
github極具價值,下面我簡單列舉幾點:
托管自己的項目代碼和文件
解決實際工作中遇到的問題
借鑒別人的知識和經(jīng)驗崭捍,提升自我的能力
提供學(xué)習(xí)交流的場所
搭建自己的博客
提升自身行業(yè)的影響力和地位
如何使用github
在繼續(xù)往下閱讀之前围橡,請確保你不是所謂的"伸手黨",因為以下的內(nèi)容缕贡,可能對這部分的人群毫無價值翁授,讀了也是浪費時間。
一晾咪、如何使用github進行項目管理
1.首先收擦,你得明確需要上傳github的項目內(nèi)容。這里我要特別提醒谍倦,你可別提交與公司相關(guān)的內(nèi)容塞赂,你可是簽過保密協(xié)議的,提交的內(nèi)容要慎重昼蛀,盡量避開與公司相關(guān)的內(nèi)容宴猾。即使你想提交,也務(wù)必自己重寫一個叼旋,當然公司核心的內(nèi)容你就別提交了仇哆,重寫也不行,違規(guī)的事情咱不能做夫植。
2.在提交項目前讹剔,你得先了解git
指令,因為在github上的所有操作都是通過git
指令完成的详民,這里我有一篇Git 常用命令可供參考延欠。
3.了解完git
指令后,下面就是開始上傳項目代碼了沈跨,這里我有一篇如何使用Git命令提交項目代碼可供參考由捎。
4.對于項目的管理操作,可以借鑒一下網(wǎng)上的GitHub項目管理基本操作.這里饿凛,你需要了解的內(nèi)容包括:
- 主干(master)和分支(branch)
- 合并請求(Pull Request和Merge)
- 打標簽(tag)和發(fā)布(release)
- 項目介紹(README.md)
- 知識庫(wiki)
- 問題建議(issues)
- 項目計劃(projects).
二狞玛、如何通過github解決實際工作中遇到的問題
1.先確定問題涉及技術(shù)的關(guān)鍵詞邻奠。
2.使用github的搜索功能進行搜索。對結(jié)果我們可以通過語言(Languages)和收藏數(shù)(Most stars)進行排序篩選,如下圖所示:
3.選擇目標參考的項目为居。選擇開源項目一般有以下幾點考量因素:
- 項目的star量:越多越好碌宴。
- 項目的活躍度:這里考量的因素包含issue的總體數(shù)量、open issue和closed issue的數(shù)量蒙畴、issue回復(fù)和解決的速度贰镣、項目最后一次提交的時間。
- 文檔是否齊全:是否有wiki或者README.md
- 項目代碼的質(zhì)量:設(shè)計是否合理膳凝,是否符合設(shè)計模式原則碑隆,考慮項目的可擴展性、便利性和穩(wěn)定性蹬音。
- 開源作者的水平:作者其他項目的star量和行業(yè)影響力上煤。
- 注意開源協(xié)議,以免不必要的麻煩著淆。
如下圖所示劫狠,標紅的我們都需要關(guān)注:
4.確定了參考的項目后,下面就是如何使用別人的開源項目永部。
(1)先仔細閱讀項目介紹(README.md)独泞,大體上了解項目的內(nèi)容。
(2)了解如何引用和使用苔埋。你可以通過閱讀項目介紹(README.md)或者wiki獲得懦砂。
(3)如果項目比較大的話,建議參考項目的demo源碼组橄。
5.出問題了如何解決荞膘。【這步很關(guān)鍵】
使用別人的開源項目玉工,難免需求會有些出入羽资,當然也會遇到一些未知的bug,這很正常瓮栗。下面我將介紹一個最優(yōu)的解決路線削罩。
(1) 再回頭仔細閱讀README.md和wiki,確保自己沒有誤使用费奸。
(2) 如果項目有【常見問題】這一項,先看一下能否解決自己的問題进陡。
(3) 提取問題的關(guān)鍵字愿阐,在項目的issue中進行搜索,查看有無可解決的方案趾疚,這一點很重要缨历,開源者一般都很討厭別人提一些重復(fù)性的issue以蕴。
(4) 確保你出現(xiàn)的問題,別人都沒有提過的情況下辛孵,嘗試提issue丛肮。這里注意將issue的內(nèi)容描述清楚,如果項目提供issue模板的話就按要求認真填寫魄缚,開源者沒時間在那里揣測你的想法宝与,這樣能解決大家的時間。
(5) 如果你提的issue作者一直不回復(fù)的話冶匹,這時候有三條路給你選擇:
看項目README.md最后有沒有交流群或者作者的聯(lián)系方式习劫,加入后直接反應(yīng)問題。
fork項目嚼隘,直接修改源碼诽里,自己解決問題。如果你想將自己修改后的代碼上傳代碼倉庫的話飞蛹,這里有一篇文章可供參考:手把手教你使用Gradle腳本上傳代碼倉庫
放棄該項目谤狡,找一個更適合自己的項目。
三卧檐、如何通過github借鑒別人的知識和經(jīng)驗豌汇,提升自我的能力
正如Linux之父的那句"Talk is cheap. Show me the code.",我一直奉行源碼是最好的老師泄隔,看別人吹的技術(shù)文章千遍拒贱,也不如自己真刀實槍地擼一遍源碼來得有效果。事實上佛嬉,我也正是通過不斷地閱讀好的開源項目的源碼逻澳,吸取他們其中好的設(shè)計和精髓,一步一步成長過來的暖呕,而這些好的開源項目正托管在github上斜做,待你去發(fā)現(xiàn)。
1.尋找好的開源項目湾揽。搜尋好的github開源項目有兩種途徑:
2.找到你想要學(xué)習(xí)的開源項目后,下面介紹我的學(xué)習(xí)思路供大家參考:
(1) 首先戚揭,clone項目源碼到本地诱告,自己試著跑一邊源碼,體驗一下項目運行的效果民晒。
(2) 接著精居,大體上了解一下項目的組成結(jié)構(gòu)锄禽,粗略閱讀一下項目的源碼,了解項目大體上的設(shè)計思路和主體架構(gòu)靴姿。這一步對我們閱讀源碼的能力有一定的要求沃但。
(3) 然后,自己也新建一個項目佛吓,從0開始宵晚,一步一步嘗試著模仿項目的實現(xiàn)思路,自己也跟著寫一套辈毯。這一步對我們的自學(xué)能力有很大的要求坝疼,因為這中間你會遇到各種各樣的問題,而且都非常困難谆沃,這就需要通過搜集大量的資料去了解和學(xué)習(xí)各種新的知識钝凶。也正是這樣,你才能不斷提升自己的技術(shù)水平和解決問題的能力唁影。等你自己的項目能夠運行出開源項目一樣效果的時候耕陷,你就基本上獲得了該開源項目80%的價值了。
(4) 最后据沈,光是單純模仿別人的開源項目是遠遠不夠的哟沫,因為別人的永遠是別人的,并不是靠你去模仿就屬于你的了锌介。這里我們還需要舉一反三的能力嗜诀,能夠從別人開源項目中汲取其中的精華來運用到自己的項目中。那么我們該怎么做呢孔祸?下面我將介紹兩種途徑:
項目改進隆敢。在你模仿的過程中,你一定會發(fā)現(xiàn)項目中有一些不合理的設(shè)計或者先天的設(shè)計缺陷崔慧,改進他們拂蝎,拓展和豐富項目的功能,并將其引入到實際的開發(fā)工作中去不斷檢驗自己的改進惶室,進行持續(xù)性的優(yōu)化和改進温自。
重新設(shè)計和實現(xiàn)屬于自己的開源項目。這對你自身的學(xué)習(xí)動手能力和設(shè)計能力有很高的要求皇钞。首先你要有明確的項目實現(xiàn)目標和設(shè)計思路悼泌,其次你需要將之前模仿過程中汲取到的精華與自身的項目經(jīng)驗結(jié)合以及設(shè)計思路結(jié)合起來,最終設(shè)計和實現(xiàn)一個有使用價值的開源項目鹅士,并運用到實際的開發(fā)工作中去不斷檢驗項目的價值券躁,進行持續(xù)性的優(yōu)化和改進。
四掉盅、如何通過github搭建自己的博客
這里我就不多講了也拜,網(wǎng)上有很多相關(guān)的教程,百度搜索"使用github搭建博客"
趾痘,能搜索到很多結(jié)果慢哈。這里我推薦一個比較靠譜的文章Github搭建個人博客供參考。
五永票、如何通過github提升自身行業(yè)的影響力和地位
提升自身行業(yè)的影響力和地位卵贱,并不是一味地去加各種群去推銷自己的開源項目或者相互star,從而騙取較高的star量侣集。我們真正需要做的就是不斷地去寫開源項目键俱,不斷地提升開源項目的質(zhì)量,這樣star量和影響力也就自然水到渠成了世分。那么如何才能提升開源項目的質(zhì)量呢编振?下面我將一一講解。
1.優(yōu)秀的設(shè)計思路臭埋。優(yōu)質(zhì)的開源項目一定是擁有好的設(shè)計思路踪央。這里就需要我們對設(shè)計模式的七大原則有深刻的了解。這里我推薦我的博客專題Java設(shè)計模式在Android中的實踐供大家參考瓢阴。
2.完備的文檔介紹畅蹂。文檔才是別人了解你項目的第一手資料。這里包括項目的主頁荣恐、README.md液斜、wiki和issue模版等內(nèi)容。項目的文檔除了內(nèi)容上要豐富之外叠穆,還需要不斷地隨著項目的迭代進行文檔的更新少漆。
3.良好的代碼規(guī)范。開源的項目痹束,良好的代碼規(guī)范是必須的检疫,否則別人閱讀你的代碼將會非常難受,可能閱讀一半就放棄你的項目了祷嘶。這里推薦阿里巴巴的代碼規(guī)范利器
4.有效的溝通交流渠道屎媳。這里推薦使用QQ群。當然论巍,如果你不怕騷擾的話烛谊,也可以放上你的qq號和郵箱。
5.豐富的使用案例嘉汰。這點要求可能比較高了丹禀,一般個人開源者很少會去收集項目的使用案例。即使這樣,我依然鼓勵大家多多收集自己項目的使用案例双泪,因為這會減少很多保守開發(fā)者采用本開源項目的顧慮持搜。