自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件選型的那些事兒

開(kāi)發(fā) 前端
因?yàn)闃I(yè)務(wù)需求不同,有的需要使用消息中間件,有的需要使用緩存,有的需要用新框架,那么面對(duì)如此多的技術(shù),我們到底該如何選型呢?

在軟件開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)遇到軟件選型的問(wèn)題。

[[388300]]

因?yàn)闃I(yè)務(wù)需求不同,有的需要使用消息中間件,有的需要使用緩存,有的需要用新框架,那么面對(duì)如此多的技術(shù),我們到底該如何選型呢?

今天,就和大家聊一聊技術(shù)選型那些事兒,到底該如何選,怎么用。

選型的需求來(lái)源于業(yè)務(wù)訴求

選型總是在業(yè)務(wù)驅(qū)動(dòng)下進(jìn)行的。

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

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

這個(gè)時(shí)候往往會(huì)面對(duì)很多的軟件,究竟該選哪個(gè),用哪個(gè)?如果有團(tuán)隊(duì)成員比較熟悉的以前用過(guò)的軟件,可能大概率就會(huì)選擇它,畢竟用過(guò)有經(jīng)驗(yàn),遇到問(wèn)題也知道怎么解決。

但如果團(tuán)隊(duì)成員都沒(méi)有用過(guò),這個(gè)時(shí)候面對(duì)如此多的軟件,而且在有限的時(shí)間里,我們到底該如何選擇呢?或者說(shuō)軟件選型該考慮哪些呢?

今天和大家分享一下個(gè)人的經(jīng)驗(yàn),希望能對(duì)大家有所幫助。

選擇調(diào)研對(duì)象

在開(kāi)始選型前,我們需要知道有哪些待調(diào)研的對(duì)象。

  • 想用消息中間件,需要調(diào)研的對(duì)象可能有RabbitMQ,RocketMQ,Kafka等。
  • 有數(shù)據(jù)同步的需求,需要調(diào)研的對(duì)象可能有otter,Datax,canal等。
  • 想用rpc服務(wù),調(diào)研的對(duì)象可能有Dubbo、gRPC、Thrift等。

這里就不再一一展開(kāi)了,其實(shí)想說(shuō)的就是,首先我們要知道調(diào)研的對(duì)象,接下來(lái)就需要看看到底要調(diào)研哪些內(nèi)容。

調(diào)研的內(nèi)容

(1) 系統(tǒng)架構(gòu)

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

所以我們?cè)谶x型的時(shí)候,需要重點(diǎn)考慮軟件架構(gòu)。

軟件的官網(wǎng)中一般都會(huì)有相應(yīng)的架構(gòu)圖,從中我們可以看到軟件的基本組件,架構(gòu)的簡(jiǎn)易程度等內(nèi)容

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

除了系統(tǒng)架構(gòu),我們可能還需要關(guān)注下軟件的實(shí)現(xiàn)語(yǔ)言,如果以后需要進(jìn)行定制化開(kāi)發(fā),團(tuán)隊(duì)成員是否有相應(yīng)能力。

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

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

活躍的社區(qū)對(duì)于開(kāi)源軟件來(lái)講很重要,因?yàn)榛钴S的社區(qū)說(shuō)明軟件的用戶很多,用戶多就有很多的實(shí)踐經(jīng)驗(yàn)可以參考交流,在你遇到問(wèn)題的時(shí)候能有個(gè)交流的平臺(tái)。

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

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

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

(3) 文檔

產(chǎn)品的文檔太重要了。

產(chǎn)品做的再好,沒(méi)有文檔,也沒(méi)人會(huì)用。

詳細(xì)的產(chǎn)品文檔包括但不限于軟件架構(gòu),用戶手冊(cè),性能測(cè)試,常見(jiàn)問(wèn)答等。

如果你在調(diào)研相應(yīng)軟件的時(shí)候,發(fā)現(xiàn)找了很久也沒(méi)找到架構(gòu)圖、用戶使用手冊(cè)等內(nèi)容,那你就要好好考慮該不該用這款軟件了。

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

Spring的文檔是我個(gè)人認(rèn)為非常好的文檔,不夸張的說(shuō),能把Spring文檔通讀一遍,80%的Spring問(wèn)題對(duì)你來(lái)說(shuō)都不算問(wèn)題。


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

(4) 其他

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

特性或功能驗(yàn)證

調(diào)研完產(chǎn)品后,我們對(duì)軟件應(yīng)該有了個(gè)大概了解了,此刻我們需要回到業(yè)務(wù)上來(lái)。

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

一般的原則是,能夠滿足當(dāng)前以及可預(yù)見(jiàn)的未來(lái)的需求的軟件,是最合適的,因?yàn)檫@樣的軟件又能滿足需求,又不至于太過(guò)復(fù)雜。

此階段一般會(huì)進(jìn)入到體力活環(huán)節(jié),需要各種測(cè)試,比如基本功能測(cè)試,高可用測(cè)試,性能測(cè)試等。在測(cè)試的過(guò)程中也盡可能的將測(cè)試腳本化、自動(dòng)化,因?yàn)檫@個(gè)過(guò)程可能會(huì)重復(fù)多次,沒(méi)人想一次次的手動(dòng)來(lái)做。

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

該階段一般會(huì)遇到很多的問(wèn)題,而活躍的社區(qū),詳盡的文檔可以幫助你解決這些問(wèn)題,同時(shí)團(tuán)隊(duì)成員應(yīng)該盡可能的在該階段積累軟件使用的過(guò)程資產(chǎn)。

應(yīng)用階段

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

如果軟件是基礎(chǔ)軟件比如數(shù)據(jù)庫(kù)之類,一般會(huì)先進(jìn)行試點(diǎn)應(yīng)用,因?yàn)榛A(chǔ)軟件的影響面比較大,而選擇試點(diǎn)應(yīng)用,既可以規(guī)避大的風(fēng)險(xiǎn),也能夠通過(guò)實(shí)踐積累起經(jīng)驗(yàn),方便后續(xù)的全面升級(jí)。

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

幫助別人

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

寫在最后

今天和大家分享了軟件選型及應(yīng)用的那些事兒。

軟件的調(diào)研階段需要關(guān)注產(chǎn)品架構(gòu)、社區(qū)、文檔及合規(guī)性、生態(tài)工具等內(nèi)容。

調(diào)研完軟件需要回到業(yè)務(wù)上來(lái),進(jìn)行功能特性的驗(yàn)證,看是否能滿足業(yè)務(wù)需求,各類測(cè)試也盡量腳本化、自動(dòng)化。

最后就是應(yīng)用了,應(yīng)用過(guò)程中也要記得積累經(jīng)驗(yàn)。

還有別忘了幫助別人。

 

責(zé)任編輯:趙寧寧 來(lái)源: ITPUB
相關(guān)推薦

2022-05-25 08:27:30

tmux軟件

2011-03-31 10:28:14

中小企業(yè)數(shù)據(jù)庫(kù)選型

2011-01-21 14:33:30

軟件測(cè)試

2022-07-10 07:48:26

緩存軟件設(shè)計(jì)

2023-01-17 15:26:54

2013-09-03 09:30:44

軟件工程師軟件工程師頭銜

2023-04-11 07:34:40

分布式系統(tǒng)算法

2010-11-24 13:51:18

互聯(lián)網(wǎng)

2019-05-13 08:36:22

無(wú)文件惡意軟件

2011-02-25 14:35:00

2018-09-26 06:50:19

2021-06-02 08:33:31

TPCTPC-H系統(tǒng)

2022-02-08 17:39:04

MySQL服務(wù)器存儲(chǔ)

2013-12-26 14:23:03

定位系統(tǒng)GPS監(jiān)測(cè)

2021-06-09 13:28:40

密碼安全身份認(rèn)證數(shù)據(jù)安全

2018-02-02 13:58:59

數(shù)據(jù)存儲(chǔ)

2012-07-19 15:30:00

Linux

2017-08-09 08:25:35

DBA數(shù)據(jù)庫(kù)OLAP

2022-11-04 07:57:59

編程編碼編譯器

2010-04-07 13:13:19

Visual Stud
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)