溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行軟件選型

發(fā)布時間:2021-10-15 14:32:13 來源:億速云 閱讀:197 作者:iii 欄目:web開發(fā)

這篇文章主要講解了“如何進行軟件選型”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何進行軟件選型”吧!

選型的需求來源于業(yè)務訴求

選型總是在業(yè)務驅動下進行的。

我相信業(yè)務用的好好的,沒有性能瓶頸,沒有合規(guī)要求,也沒有新需求要開發(fā),我們也不會想著換個框架或組件。

當業(yè)務有真正的訴求的時候,比如有數(shù)據(jù)同步,業(yè)務解藕,削峰填谷,分布式事務等需求時,我們就需要調研相應的解決方案了。

這個時候往往會面對很多的軟件,究竟該選哪個,用哪個?如果有團隊成員比較熟悉的以前用過的軟件,可能大概率就會選擇它,畢竟用過有經驗,遇到問題也知道怎么解決。

但如果團隊成員都沒有用過,這個時候面對如此多的軟件,而且在有限的時間里,我們到底該如何選擇呢?或者說軟件選型該考慮哪些呢?

選擇調研對象

在開始選型前,我們需要知道有哪些待調研的對象。

  • 想用消息中間件,需要調研的對象可能有RabbitMQ,RocketMQ,Kafka等。

  • 有數(shù)據(jù)同步的需求,需要調研的對象可能有otter,Datax,canal等。

  • 想用rpc服務,調研的對象可能有Dubbo、gRPC、Thrift等。

這里就不再一一展開了,其實想說的就是,首先我們要知道調研的對象,接下來就需要看看到底要調研哪些內容。

調研的內容

(1)  系統(tǒng)架構

軟件的系統(tǒng)架構很大程度上決定了軟件的簡單或復雜、可擴展性、高可用性等較難改變的屬性。

所以我們在選型的時候,需要重點考慮軟件架構。

軟件的官網中一般都會有相應的架構圖,從中我們可以看到軟件的基本組件,架構的簡易程度等內容

。比如下圖為RocketMQ的架構圖,從中可以看出RocketMQ的基礎組件有NameServer  Cluster、Broker Cluster,還能進一步看出NameServer Cluster的基本職責有Broker Discovery,以及Broker  Cluster可以通過數(shù)據(jù)同步來實現(xiàn)高可用等內容。

如何進行軟件選型

除了系統(tǒng)架構,我們可能還需要關注下軟件的實現(xiàn)語言,如果以后需要進行定制化開發(fā),團隊成員是否有相應能力。

(2)  軟件的社區(qū)情況

軟件的社區(qū)情況,是我個人在軟件選型的時候著重考慮的一個點。

活躍的社區(qū)對于開源軟件來講很重要,因為活躍的社區(qū)說明軟件的用戶很多,用戶多就有很多的實踐經驗可以參考交流,在你遇到問題的時候能有個交流的平臺。

總之,活躍的社區(qū)能夠幫助你解決軟件使用過程中的很多問題。

那么從哪幾個方面可以考量軟件的社區(qū)情況呢?這里主要講的是開源軟件的社區(qū)情況考量。

我個人一般會看軟件的最近一次提交是什么時候,issue的數(shù)量及回復情況,更進一步可以看軟件的郵件列表內容。

(3)  文檔

產品的文檔太重要了。

產品做的再好,沒有文檔,也沒人會用。

詳細的產品文檔包括但不限于軟件架構,用戶手冊,性能測試,常見問答等。

如果你在調研相應軟件的時候,發(fā)現(xiàn)找了很久也沒找到架構圖、用戶使用手冊等內容,那你就要好好考慮該不該用這款軟件了。

通讀產品文檔可能需要花上一些時間,但花這個時間是很值得的。通讀產品文檔可以讓你對整個產品有個大概了解了,有哪些特性,有哪些功能,性能表現(xiàn)如何等,這些你都能做到心中有數(shù)。

Spring的文檔是我個人認為非常好的文檔,不夸張的說,能把Spring文檔通讀一遍,80%的Spring問題對你來說都不算問題。

如何進行軟件選型

另外文檔最好讀官方的,如果是國外的軟件,盡量讀英文的。

(4) 其他

包括但不限于合規(guī)性,法律,生態(tài)工具等內容,比如如果使用的開源軟件協(xié)議為GPL,按照協(xié)議規(guī)定,所有的二次開發(fā)都應該再次開源出來。

特性或功能驗證

調研完產品后,我們對軟件應該有了個大概了解了,此刻我們需要回到業(yè)務上來。

產品的特性或功能能否滿足業(yè)務的需求,這才是決定我們選型的最重要原因。

一般的原則是,能夠滿足當前以及可預見的未來的需求的軟件,是最合適的,因為這樣的軟件又能滿足需求,又不至于太過復雜。

此階段一般會進入到體力活環(huán)節(jié),需要各種測試,比如基本功能測試,高可用測試,性能測試等。在測試的過程中也盡可能的將測試腳本化、自動化,因為這個過程可能會重復多次,沒人想一次次的手動來做。

這里的測試一般需要給出結論,即當前軟件是否能夠滿足業(yè)務的各種需求。

該階段一般會遇到很多的問題,而活躍的社區(qū),詳盡的文檔可以幫助你解決這些問題,同時團隊成員應該盡可能的在該階段積累軟件使用的過程資產。

應用階段

應用階段根據(jù)選型軟件的性質不同有不同的應用方式。

如果軟件是基礎軟件比如數(shù)據(jù)庫之類,一般會先進行試點應用,因為基礎軟件的影響面比較大,而選擇試點應用,既可以規(guī)避大的風險,也能夠通過實踐積累起經驗,方便后續(xù)的全面升級。

如果軟件只是當前業(yè)務使用,影響較小,那么要有自信直接上,不要慫~

幫助別人

經歷了軟件調研,功能特性驗證,到項目的正式使用,可以說現(xiàn)在你也成為了軟件社區(qū)中的一員,那么不要忘了分享你的使用經驗,幫助其他軟件使用者,畢竟一開始也是社區(qū)幫你解決了問題。

感謝各位的閱讀,以上就是“如何進行軟件選型”的內容了,經過本文的學習后,相信大家對如何進行軟件選型這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI