如何通过组件化提高开发效率?
在軟件開發(fā)過程中,大到業(yè)務(wù)模塊的劃分,小到技術(shù)組件的開發(fā),都屬于組件化的思考范疇內(nèi)。很多時候我們到網(wǎng)上搜索「組件化」關(guān)鍵詞,都只會看到關(guān)于前端組件化的資料,而對于后臺開發(fā)組件化的資料卻很少,那這是不是代表后臺組件化沒有意義呢?
后臺組件化肯定是有非常大的價(jià)值的,對于業(yè)務(wù)開發(fā)人員也有非常大的效率提升。所以本文我將通過自己做組件化的一些經(jīng)驗(yàn),談?wù)勎覍蠖私M件化的一些看法,以及如何進(jìn)行組件化開發(fā),希望對在一線開發(fā)的工程師們有所幫助。
希望通過組件化的方式,能幫助一線工程師們減少對于重復(fù)業(yè)務(wù)代碼的編寫,提高開發(fā)效率,將更多時間和精力放在創(chuàng)新開發(fā)上。
如何發(fā)現(xiàn)組件化需求?
組件化,顧名思義,其實(shí)是通過將重復(fù)的業(yè)務(wù)操作統(tǒng)一起來,對外提供統(tǒng)一的接口,調(diào)用方不需要操心內(nèi)部實(shí)現(xiàn)。通過組件化的方式,能統(tǒng)一業(yè)務(wù)代碼規(guī)范,減少冗余代碼,提高開發(fā)效率。
在軟件開發(fā)的組件化里,要發(fā)現(xiàn)需求,你必須深入到具體的業(yè)務(wù)過程中去,了解整個業(yè)務(wù)流程。只有這樣,你才能知道哪些東西需要優(yōu)化,哪些東西是重復(fù)的。
當(dāng)我剛剛進(jìn)入珍愛網(wǎng)的時候,公司開啟了精細(xì)化運(yùn)營的需求,很多時候同一個需求對廣東地區(qū)開放,而對湖南地區(qū)不開放。而當(dāng)需求呈現(xiàn)正向積極效果的時候,需要對更多省份開放。
而這時候如果需要修改開放的測試地區(qū),則需要開發(fā)、測試重新參與一次開發(fā),并且走一遍開發(fā)流程。不僅僅效率低下,對于開發(fā)人員和測試的正常工作也是一種打擾。
針對這種情況,我試探性地開發(fā)出了開關(guān)服務(wù)。只需要再第一次開發(fā)的時候預(yù)埋上開關(guān),之后如果需要修改測試省份就可以直接在管理后臺進(jìn)行修改,實(shí)時生效。
通過這種方式,你會發(fā)現(xiàn)原本需要開發(fā)和測試參與,耗時將近一天的開發(fā)流程。現(xiàn)在只需要產(chǎn)品自己操作,并且只需要幾秒鐘就能完成,幾乎提高了100%的效率。
所以說發(fā)現(xiàn)組件化需求的關(guān)鍵,是參與到具體的業(yè)務(wù)開發(fā)中,發(fā)現(xiàn)重復(fù)的,可統(tǒng)一的業(yè)務(wù)。
如何開發(fā)組件?
當(dāng)你發(fā)現(xiàn)一個可以進(jìn)行優(yōu)化的需求后,你下一步需要做的其實(shí)就是進(jìn)行全方位的調(diào)研以及設(shè)計(jì),從而保證你設(shè)計(jì)出來的組件能解決問題,并且能為廣大需求方所接受。
根據(jù)我的經(jīng)驗(yàn),我一般將組件分為下面三種:服務(wù)、組件、后臺管理系統(tǒng)。
服務(wù)。這種類型的組件提供一個通用的服務(wù),提供給內(nèi)部的其他系統(tǒng)調(diào)用,從而讓其他系統(tǒng)的開發(fā)更加快捷。例如之前提到過的開發(fā)服務(wù)就是這樣的。通過服務(wù)接口的方式提供出去,調(diào)用方能更加方便地使用,并且其中心化的特性也便于后期升級。
組件。這種類型的組件一般是與業(yè)務(wù)無關(guān)的組件,其通過引入 Jar 包的方式提供給其他系統(tǒng)使用。例如我做過的一個 SysCode 組件就是這樣的,只需要引入相應(yīng) Jar 包,實(shí)現(xiàn)特定接口注入數(shù)據(jù),就可以調(diào)用工具類進(jìn)行 SysCode 操作。
后臺管理系統(tǒng)。這種類型的組件其實(shí)就是一個管理后臺,你發(fā)現(xiàn)客服部門經(jīng)常用到某個功能,于是你將這個功能做到管理后臺里,下次發(fā)生同樣的問題時,他們就可以自己解決。這也是組件的其中一種。
對于這三種類型的組件,在設(shè)計(jì)的時候側(cè)重點(diǎn)都略有不同。
服務(wù)類型的組件,在設(shè)計(jì)的時候需要對暴露出去的接口定義非常謹(jǐn)慎,因?yàn)榻涌谝坏┐_定,后期就不能再變化,否則會導(dǎo)致原有使用方調(diào)用出錯。
而組件類型的,在設(shè)計(jì)的時候需要考慮的是使用的時候是不是很方便,使用的路徑會不會很長。
文章首發(fā)于【博客園-陳樹義】,點(diǎn)擊跳轉(zhuǎn)到原文《如何通過組件化提高開發(fā)效率?》http://www.cnblogs.com/chanshuyi/p/how_to_develop_component.html
如何推廣組件?
當(dāng)你把組件做出來后,作為組件的開發(fā)者,你肩負(fù)著推廣組件的作用。
首先,你肯定要讓別人知道你為什么做這個組件,做這個組件的背景是什么,用這個組件有什么價(jià)值,最后就是怎么用?
而要回答上面所說到的問題,你不可能每個人問你的時候你都從頭到尾說一遍,所以你需要針對你的組件寫一個文檔。我比較推薦的一種做法是寫成一個 GitBook,這種呈現(xiàn)方式簡單明了,方便閱讀。
當(dāng)你做好 GitBook 文檔后,你以為就這樣結(jié)束了么?
Naive!
這只是一個開始,你需要不斷地在日常的開發(fā)中去向你的同事推銷你的東西,把自己想象成一個熱愛工作的銷售,把組件當(dāng)成是你的孩子,見人就說這個東西好,讓更多人知道他。
之所以將組件化的推廣說得如此艱辛的原因,我相信許多做過組件的人都明白。一開始做的東西別人都不愿意去嘗試,因?yàn)檎l知道你這里面有什么坑呢,我還不如自己弄呢。所以一開始的推廣使用注定是很艱辛的,甚至是很苦逼。
所以不要以為做出組件,寫完文檔就結(jié)束了,這其實(shí)只是一個開始。
不斷迭代!
魯迅先生說過:好文章不是寫出來的,而是改出來的。
在這里我也要說:好組件不是寫出來的,而是改出來的。
私以為所有做組件的人,都應(yīng)該抱有不斷迭代的精神去做組件。
因?yàn)楹芏鄷r候你剛剛做出來的東西都是非常簡單的,雖然能解決問題,但是對于業(yè)務(wù)抽象的理解不夠深刻,而且會存在多多少少的問題。
這時候你需要在不斷推廣和反饋中去優(yōu)化你的組件,讓你的組件做得更好。之后再不斷地收集反饋,再優(yōu)化,再反饋。
就這樣,也許經(jīng)過三四個輪回,你對組件的理解就趨于穩(wěn)定了。
這個時候,你才可以說這個組件做完了!
文章首發(fā)于【博客園-陳樹義】,點(diǎn)擊跳轉(zhuǎn)到原文《如何通過組件化提高開發(fā)效率?》http://www.cnblogs.com/chanshuyi/p/how_to_develop_component.html
轉(zhuǎn)載于:https://www.cnblogs.com/chanshuyi/p/how_to_develop_component.html
總結(jié)
以上是生活随笔為你收集整理的如何通过组件化提高开发效率?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018-3-24Linux系统管理(1
- 下一篇: 乐堡苏打气泡酒12罐到手19.9元:低糖