新聞中心
在軟件開發(fā)過程中,我們經(jīng)常會遇到軟件選型的問題。

盤錦ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
[[388300]]
因為業(yè)務(wù)需求不同,有的需要使用消息中間件,有的需要使用緩存,有的需要用新框架,那么面對如此多的技術(shù),我們到底該如何選型呢?
今天,就和大家聊一聊技術(shù)選型那些事兒,到底該如何選,怎么用。
選型的需求來源于業(yè)務(wù)訴求
選型總是在業(yè)務(wù)驅(qū)動下進行的。
我相信業(yè)務(wù)用的好好的,沒有性能瓶頸,沒有合規(guī)要求,也沒有新需求要開發(fā),我們也不會想著換個框架或組件。
當(dāng)業(yè)務(wù)有真正的訴求的時候,比如有數(shù)據(jù)同步,業(yè)務(wù)解藕,削峰填谷,分布式事務(wù)等需求時,我們就需要調(diào)研相應(yīng)的解決方案了。
這個時候往往會面對很多的軟件,究竟該選哪個,用哪個?如果有團隊成員比較熟悉的以前用過的軟件,可能大概率就會選擇它,畢竟用過有經(jīng)驗,遇到問題也知道怎么解決。
但如果團隊成員都沒有用過,這個時候面對如此多的軟件,而且在有限的時間里,我們到底該如何選擇呢?或者說軟件選型該考慮哪些呢?
今天和大家分享一下個人的經(jīng)驗,希望能對大家有所幫助。
選擇調(diào)研對象
在開始選型前,我們需要知道有哪些待調(diào)研的對象。
- 想用消息中間件,需要調(diào)研的對象可能有RabbitMQ,RocketMQ,Kafka等。
- 有數(shù)據(jù)同步的需求,需要調(diào)研的對象可能有otter,Datax,canal等。
- 想用rpc服務(wù),調(diào)研的對象可能有Dubbo、gRPC、Thrift等。
這里就不再一一展開了,其實想說的就是,首先我們要知道調(diào)研的對象,接下來就需要看看到底要調(diào)研哪些內(nèi)容。
調(diào)研的內(nèi)容
(1) 系統(tǒng)架構(gòu)
軟件的系統(tǒng)架構(gòu)很大程度上決定了軟件的簡單或復(fù)雜、可擴展性、高可用性等較難改變的屬性。
所以我們在選型的時候,需要重點考慮軟件架構(gòu)。
軟件的官網(wǎng)中一般都會有相應(yīng)的架構(gòu)圖,從中我們可以看到軟件的基本組件,架構(gòu)的簡易程度等內(nèi)容
。比如下圖為RocketMQ的架構(gòu)圖,從中可以看出RocketMQ的基礎(chǔ)組件有NameServer Cluster、Broker Cluster,還能進一步看出NameServer Cluster的基本職責(zé)有Broker Discovery,以及Broker Cluster可以通過數(shù)據(jù)同步來實現(xiàn)高可用等內(nèi)容。
除了系統(tǒng)架構(gòu),我們可能還需要關(guān)注下軟件的實現(xiàn)語言,如果以后需要進行定制化開發(fā),團隊成員是否有相應(yīng)能力。
(2) 軟件的社區(qū)情況
軟件的社區(qū)情況,是我個人在軟件選型的時候著重考慮的一個點。
活躍的社區(qū)對于開源軟件來講很重要,因為活躍的社區(qū)說明軟件的用戶很多,用戶多就有很多的實踐經(jīng)驗可以參考交流,在你遇到問題的時候能有個交流的平臺。
總之,活躍的社區(qū)能夠幫助你解決軟件使用過程中的很多問題。
那么從哪幾個方面可以考量軟件的社區(qū)情況呢?這里主要講的是開源軟件的社區(qū)情況考量。
我個人一般會看軟件的最近一次提交是什么時候,issue的數(shù)量及回復(fù)情況,更進一步可以看軟件的郵件列表內(nèi)容。
(3) 文檔
產(chǎn)品的文檔太重要了。
產(chǎn)品做的再好,沒有文檔,也沒人會用。
詳細(xì)的產(chǎn)品文檔包括但不限于軟件架構(gòu),用戶手冊,性能測試,常見問答等。
如果你在調(diào)研相應(yīng)軟件的時候,發(fā)現(xiàn)找了很久也沒找到架構(gòu)圖、用戶使用手冊等內(nèi)容,那你就要好好考慮該不該用這款軟件了。
通讀產(chǎn)品文檔可能需要花上一些時間,但花這個時間是很值得的。通讀產(chǎn)品文檔可以讓你對整個產(chǎn)品有個大概了解了,有哪些特性,有哪些功能,性能表現(xiàn)如何等,這些你都能做到心中有數(shù)。
Spring的文檔是我個人認(rèn)為非常好的文檔,不夸張的說,能把Spring文檔通讀一遍,80%的Spring問題對你來說都不算問題。
另外文檔最好讀官方的,如果是國外的軟件,盡量讀英文的。
(4) 其他
包括但不限于合規(guī)性,法律,生態(tài)工具等內(nèi)容,比如如果使用的開源軟件協(xié)議為GPL,按照協(xié)議規(guī)定,所有的二次開發(fā)都應(yīng)該再次開源出來。
特性或功能驗證
調(diào)研完產(chǎn)品后,我們對軟件應(yīng)該有了個大概了解了,此刻我們需要回到業(yè)務(wù)上來。
產(chǎn)品的特性或功能能否滿足業(yè)務(wù)的需求,這才是決定我們選型的最重要原因。
一般的原則是,能夠滿足當(dāng)前以及可預(yù)見的未來的需求的軟件,是最合適的,因為這樣的軟件又能滿足需求,又不至于太過復(fù)雜。
此階段一般會進入到體力活環(huán)節(jié),需要各種測試,比如基本功能測試,高可用測試,性能測試等。在測試的過程中也盡可能的將測試腳本化、自動化,因為這個過程可能會重復(fù)多次,沒人想一次次的手動來做。
這里的測試一般需要給出結(jié)論,即當(dāng)前軟件是否能夠滿足業(yè)務(wù)的各種需求。
該階段一般會遇到很多的問題,而活躍的社區(qū),詳盡的文檔可以幫助你解決這些問題,同時團隊成員應(yīng)該盡可能的在該階段積累軟件使用的過程資產(chǎn)。
應(yīng)用階段
應(yīng)用階段根據(jù)選型軟件的性質(zhì)不同有不同的應(yīng)用方式。
如果軟件是基礎(chǔ)軟件比如數(shù)據(jù)庫之類,一般會先進行試點應(yīng)用,因為基礎(chǔ)軟件的影響面比較大,而選擇試點應(yīng)用,既可以規(guī)避大的風(fēng)險,也能夠通過實踐積累起經(jīng)驗,方便后續(xù)的全面升級。
如果軟件只是當(dāng)前業(yè)務(wù)使用,影響較小,那么要有自信直接上,不要慫~
幫助別人
經(jīng)歷了軟件調(diào)研,功能特性驗證,到項目的正式使用,可以說現(xiàn)在你也成為了軟件社區(qū)中的一員,那么不要忘了分享你的使用經(jīng)驗,幫助其他軟件使用者,畢竟一開始也是社區(qū)幫你解決了問題。
寫在最后
今天和大家分享了軟件選型及應(yīng)用的那些事兒。
軟件的調(diào)研階段需要關(guān)注產(chǎn)品架構(gòu)、社區(qū)、文檔及合規(guī)性、生態(tài)工具等內(nèi)容。
調(diào)研完軟件需要回到業(yè)務(wù)上來,進行功能特性的驗證,看是否能滿足業(yè)務(wù)需求,各類測試也盡量腳本化、自動化。
最后就是應(yīng)用了,應(yīng)用過程中也要記得積累經(jīng)驗。
還有別忘了幫助別人。
網(wǎng)站欄目:軟件選型的那些事兒
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/cdcdipd.html


咨詢
建站咨詢
