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