您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何進行軟件選型”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何進行軟件選型”吧!
選型總是在業務驅動下進行的。
我相信業務用的好好的,沒有性能瓶頸,沒有合規要求,也沒有新需求要開發,我們也不會想著換個框架或組件。
當業務有真正的訴求的時候,比如有數據同步,業務解藕,削峰填谷,分布式事務等需求時,我們就需要調研相應的解決方案了。
這個時候往往會面對很多的軟件,究竟該選哪個,用哪個?如果有團隊成員比較熟悉的以前用過的軟件,可能大概率就會選擇它,畢竟用過有經驗,遇到問題也知道怎么解決。
但如果團隊成員都沒有用過,這個時候面對如此多的軟件,而且在有限的時間里,我們到底該如何選擇呢?或者說軟件選型該考慮哪些呢?
在開始選型前,我們需要知道有哪些待調研的對象。
想用消息中間件,需要調研的對象可能有RabbitMQ,RocketMQ,Kafka等。
有數據同步的需求,需要調研的對象可能有otter,Datax,canal等。
想用rpc服務,調研的對象可能有Dubbo、gRPC、Thrift等。
這里就不再一一展開了,其實想說的就是,首先我們要知道調研的對象,接下來就需要看看到底要調研哪些內容。
(1) 系統架構
軟件的系統架構很大程度上決定了軟件的簡單或復雜、可擴展性、高可用性等較難改變的屬性。
所以我們在選型的時候,需要重點考慮軟件架構。
軟件的官網中一般都會有相應的架構圖,從中我們可以看到軟件的基本組件,架構的簡易程度等內容
。比如下圖為RocketMQ的架構圖,從中可以看出RocketMQ的基礎組件有NameServer Cluster、Broker Cluster,還能進一步看出NameServer Cluster的基本職責有Broker Discovery,以及Broker Cluster可以通過數據同步來實現高可用等內容。
除了系統架構,我們可能還需要關注下軟件的實現語言,如果以后需要進行定制化開發,團隊成員是否有相應能力。
(2) 軟件的社區情況
軟件的社區情況,是我個人在軟件選型的時候著重考慮的一個點。
活躍的社區對于開源軟件來講很重要,因為活躍的社區說明軟件的用戶很多,用戶多就有很多的實踐經驗可以參考交流,在你遇到問題的時候能有個交流的平臺。
總之,活躍的社區能夠幫助你解決軟件使用過程中的很多問題。
那么從哪幾個方面可以考量軟件的社區情況呢?這里主要講的是開源軟件的社區情況考量。
我個人一般會看軟件的最近一次提交是什么時候,issue的數量及回復情況,更進一步可以看軟件的郵件列表內容。
(3) 文檔
產品的文檔太重要了。
產品做的再好,沒有文檔,也沒人會用。
詳細的產品文檔包括但不限于軟件架構,用戶手冊,性能測試,常見問答等。
如果你在調研相應軟件的時候,發現找了很久也沒找到架構圖、用戶使用手冊等內容,那你就要好好考慮該不該用這款軟件了。
通讀產品文檔可能需要花上一些時間,但花這個時間是很值得的。通讀產品文檔可以讓你對整個產品有個大概了解了,有哪些特性,有哪些功能,性能表現如何等,這些你都能做到心中有數。
Spring的文檔是我個人認為非常好的文檔,不夸張的說,能把Spring文檔通讀一遍,80%的Spring問題對你來說都不算問題。
另外文檔最好讀官方的,如果是國外的軟件,盡量讀英文的。
(4) 其他
包括但不限于合規性,法律,生態工具等內容,比如如果使用的開源軟件協議為GPL,按照協議規定,所有的二次開發都應該再次開源出來。
調研完產品后,我們對軟件應該有了個大概了解了,此刻我們需要回到業務上來。
產品的特性或功能能否滿足業務的需求,這才是決定我們選型的最重要原因。
一般的原則是,能夠滿足當前以及可預見的未來的需求的軟件,是最合適的,因為這樣的軟件又能滿足需求,又不至于太過復雜。
此階段一般會進入到體力活環節,需要各種測試,比如基本功能測試,高可用測試,性能測試等。在測試的過程中也盡可能的將測試腳本化、自動化,因為這個過程可能會重復多次,沒人想一次次的手動來做。
這里的測試一般需要給出結論,即當前軟件是否能夠滿足業務的各種需求。
該階段一般會遇到很多的問題,而活躍的社區,詳盡的文檔可以幫助你解決這些問題,同時團隊成員應該盡可能的在該階段積累軟件使用的過程資產。
應用階段根據選型軟件的性質不同有不同的應用方式。
如果軟件是基礎軟件比如數據庫之類,一般會先進行試點應用,因為基礎軟件的影響面比較大,而選擇試點應用,既可以規避大的風險,也能夠通過實踐積累起經驗,方便后續的全面升級。
如果軟件只是當前業務使用,影響較小,那么要有自信直接上,不要慫~
經歷了軟件調研,功能特性驗證,到項目的正式使用,可以說現在你也成為了軟件社區中的一員,那么不要忘了分享你的使用經驗,幫助其他軟件使用者,畢竟一開始也是社區幫你解決了問題。
感謝各位的閱讀,以上就是“如何進行軟件選型”的內容了,經過本文的學習后,相信大家對如何進行軟件選型這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。