轉(zhuǎn)帖|行業(yè)資訊|編輯:蔣永|2016-12-13 10:46:24.000|閱讀 272 次
概述:開源軟件現(xiàn)在越來(lái)越多的在我們身邊涌現(xiàn),那么我們究竟應(yīng)該怎么選擇開源軟件呢?本文將為你一一解答。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
當(dāng)我們說(shuō)起開源軟件的時(shí)候,想必大家都有豐富的使用經(jīng)歷,小到Node.js的一個(gè)組件庫(kù),大到一套辦公軟件如LibreOffice,再如Linux操作系統(tǒng),可以說(shuō)無(wú)奇不有,浩如煙海。就拿我們常用的Github來(lái)說(shuō),官方的數(shù)據(jù)顯示已經(jīng)有超過三千八百萬(wàn)個(gè)項(xiàng)目托管在上面。
在我們?nèi)粘5捻?xiàng)目中,開源軟件或者框架也被廣泛的應(yīng)用,從前端到后臺(tái),從WEB服務(wù)器到數(shù)據(jù)庫(kù),每一種類型都有很多可以使用的開源軟件。
假設(shè)現(xiàn)在需要開始一個(gè)項(xiàng)目或者準(zhǔn)備引入一樣新的技術(shù),面臨這么多的選擇,就算是老司機(jī),可能會(huì)覺得難以取舍。
還是該嘗試一下最新的技術(shù)?技術(shù)的最新趨勢(shì)是什么?
舉一個(gè)實(shí)際的列子,有一個(gè)遺留的在線電商系統(tǒng),前端使用了jQuery和JSP以及一些老舊的模板技術(shù),每當(dāng)改動(dòng)一個(gè)小的功能,往往需要非常的小心和充分的測(cè)試。前端代碼已經(jīng)非常難以維護(hù)和擴(kuò)展,沒有模塊化管理,沒有層次結(jié)構(gòu)。同時(shí),伴隨著業(yè)務(wù)的快速發(fā)展,業(yè)務(wù)方也希望對(duì)頁(yè)面進(jìn)行不定期改版和試點(diǎn),使之能夠適應(yīng)快速的市場(chǎng)變化,要求統(tǒng)一界面風(fēng)格,開發(fā)成本低。
IT團(tuán)隊(duì)領(lǐng)導(dǎo)考慮引入一項(xiàng)新的技術(shù),希望實(shí)現(xiàn)模塊化代碼管理,前后端分離,提升開發(fā)效率,未來(lái)更好的向微服務(wù)轉(zhuǎn)換。你作為團(tuán)隊(duì)TechLeader,來(lái)負(fù)責(zé)實(shí)施,該如何評(píng)估和選擇呢?
首先要考慮的是實(shí)際需求和應(yīng)用場(chǎng)景,弄清楚要解決的問題是什么,再來(lái)看每種軟件的優(yōu)缺點(diǎn)是什么,是否能夠幫助解決實(shí)際的問題。一個(gè)原則就是KISS(保持簡(jiǎn)單),能夠用一個(gè)包庫(kù)解決的不要用一個(gè)框架,能夠用一個(gè)框架解決的不要用一個(gè)應(yīng)用,誰(shuí)能滿足需求而且更加簡(jiǎn)單,就用誰(shuí)。
業(yè)務(wù)的快速變化,轉(zhuǎn)化成技術(shù)的語(yǔ)言可能就是快速迭代,如果有模塊化管理,實(shí)現(xiàn)業(yè)務(wù)的耦合,顯然有助于提升交付速度;試點(diǎn)和改版可能就是更多的偏向前端,顯然實(shí)現(xiàn)前后端分離,可以更好的滿足這一點(diǎn)。再來(lái)看看現(xiàn)在比較流行的技術(shù),現(xiàn)代的前端框架幾乎都能夠滿足這兩點(diǎn)需求,比如AngularJs、ReactJs、VueJs等。
沒有比較就沒有差異。你最先想到的可能是軟件的特性。這個(gè)文檔中一般會(huì)有描述,也會(huì)找到文章的總結(jié),比如VueJs的。結(jié)合實(shí)際的情況,我認(rèn)為可以從以下幾個(gè)方面來(lái)入手。這時(shí)我們不妨做一個(gè)表格,從多個(gè)維度來(lái)進(jìn)行考察,并給每一項(xiàng)進(jìn)行評(píng)分。
這個(gè)時(shí)候,我們的評(píng)估表看起來(lái)可能是這樣的。
對(duì)于統(tǒng)一界面風(fēng)格,提升開發(fā)效率,我們則可以選擇定制化一套StyleGuide,來(lái)進(jìn)行重復(fù)利用。可以參考一位同事的這篇文章“”。
舉個(gè)例子,假設(shè)現(xiàn)在有5個(gè)開發(fā),如果大家對(duì)三個(gè)框架都不熟悉,可以選擇VueJs。如果有兩個(gè)人對(duì)AngularJs有一些使用經(jīng)驗(yàn),可以優(yōu)先考慮AngularJs。按照上面的維度記錄之后,可能的結(jié)果是這樣的:
結(jié)合應(yīng)用再寫個(gè)小Demo,功能不用那么完善,給團(tuán)隊(duì)秀一秀代碼,讓大家有個(gè)客觀的認(rèn)識(shí),對(duì)工作量的估算也會(huì)比較有幫助。
對(duì)于上面的案例,如果現(xiàn)在來(lái)選擇,Vue會(huì)是首選,相對(duì)簡(jiǎn)單。
React makes it painless to create interactive UIs.
如果碰到評(píng)估完之后,兩種可選方案區(qū)別不太明顯,不相上下,那就丟硬幣了(不如讓團(tuán)隊(duì)投票吧)。最后就是進(jìn)行技術(shù)評(píng)審了,給專家團(tuán)隊(duì)或者領(lǐng)導(dǎo)演示你的方案,展示Demo,讓他們更加有信心,并獲得支持。
本文轉(zhuǎn)自()
活動(dòng)時(shí)間:12月1日-12月31日
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn