2020年期間我有幸參加了啟智開源項(xiàng)目,在這個(gè)活動(dòng)中,我主要參加了啟智磐石的開發(fā),最終項(xiàng)目順利上線并開始提供服務(wù),這次我想分享一下我參與這個(gè)活動(dòng)以及開源社區(qū)的感受與收獲。
毫無疑問,參加一個(gè)開源項(xiàng)目是非常令人激動(dòng)的,看著開源項(xiàng)目一步一步完善直到上線,這花費(fèi)了我不少時(shí)間。但我從中也學(xué)到很多。由于以前并沒有參加開源項(xiàng)目的經(jīng)驗(yàn),因此總結(jié)了一些心得,作為一個(gè)開源開發(fā)和之前工作中的不同之處。
1、在編碼風(fēng)格方面不需要太嚴(yán)格
編碼風(fēng)格的問題,當(dāng)項(xiàng)目中設(shè)計(jì)了過于復(fù)雜的規(guī)則將增加開發(fā)的成本,人們會(huì)實(shí)時(shí)關(guān)注空格縮進(jìn)帶來的困擾,最好的方式是能用腳本自動(dòng)化處理開發(fā)中的編碼風(fēng)格問題,比如將常用的eslint,go fmt工具封裝為全局腳本。這樣項(xiàng)目合作中可以很方便的進(jìn)行溝通,而不需要經(jīng)常通過人工來修改。最終,代碼的提交以pull request的方式進(jìn)行合并,最終我一點(diǎn)都不擔(dān)心編碼風(fēng)格、測(cè)試會(huì)帶來問題。
2、代碼即文檔
在開發(fā)的過程中我經(jīng)常感受到,相比于不知道何時(shí)更新的文檔,編寫有清晰結(jié)構(gòu)的代碼和測(cè)試比文檔更有用處。我可以毫不夸張的說:好的代碼就是好的文檔。當(dāng)需要給系統(tǒng)增加功能時(shí),最好的熟悉現(xiàn)有功能的方式不是找開發(fā)文檔和尋找當(dāng)時(shí)開發(fā)文檔的開發(fā)人員進(jìn)行詢問,當(dāng)項(xiàng)目足夠健康時(shí)候,最好的方式就是閱讀結(jié)構(gòu)代碼和測(cè)試。此外,別忘了swagger,當(dāng)我們采用swagger時(shí)能夠快速生成api的文檔,這都能很好的提升開發(fā)速度。最后也有例外,比如當(dāng)需要和第三方系統(tǒng)對(duì)接時(shí)文檔的重要性就不言而喻。
3、有高效的溝通方式
在項(xiàng)目開發(fā)過程中,項(xiàng)目進(jìn)度的控制時(shí)至關(guān)重要,我們?cè)陧?xiàng)目開發(fā)中溝通采用類似github的模式,由開發(fā)或測(cè)試人員在項(xiàng)目管理中添加任務(wù),管理人員指派成員,盡量避免無意義的會(huì)議,如果溝通的越順暢,我們自己就會(huì)越信任自己的項(xiàng)目。
4、多接觸其他的開源項(xiàng)目
經(jīng)常關(guān)注開源社區(qū)的項(xiàng)目以及他們的issuse和pr,特別是目前Golang社區(qū)里有很多優(yōu)秀的項(xiàng)目。在他們的issue中和pr中很多人對(duì)項(xiàng)目的理解都很高,他們樂于分享在項(xiàng)目中遇到問題,經(jīng)常閱讀別人已經(jīng)合并的pr已經(jīng)代碼能夠拓寬視野,在遇到問題的時(shí)候能從多個(gè)角度思考問題。
5.收獲
參加這次的開源項(xiàng)目帶給我了很多收獲:
第一是讓我完全參與到開源之中,之前只在有些項(xiàng)目中提過一些pr去解決小問題,這次明確了開發(fā)目的切身體會(huì)了一次開源的感受。
第二在工作中也獲得了很多啟發(fā),包括處理分布式大文件時(shí)候的一些項(xiàng)目經(jīng)驗(yàn),使得我可以更好地理解研究問題中的一些概念。
作者:嚴(yán)翔東
上一篇:開源分享——優(yōu)秀開發(fā)者心得
下一篇:參與啟智社區(qū)開源項(xiàng)目心得分享——陳彥騏