官术网_书友最值得收藏!

1.3 Vue.js+Spring Boot全棧開發(fā)架構(gòu)的優(yōu)勢(shì)

Vue.js+Spring Boot全棧開發(fā)架構(gòu)在企業(yè)級(jí)應(yīng)用中被廣泛采用,總結(jié)起來其具備以下優(yōu)勢(shì)。

1. 開源

正如1.1節(jié)和1.2節(jié)所述,無論是Vue.js、Spring Boot這兩種核心技術(shù)還是Naive UI、md-editor-v3、Nginx、Spring Security、Spring MVC、Spring Data、Hibernate、H2、MySQL等周邊技術(shù),Vue.js+Spring Boot全棧開發(fā)架構(gòu)中所有的技術(shù)都是開源的。

開源技術(shù)相對(duì)閉源技術(shù)而言,有其優(yōu)勢(shì):一方面,開源技術(shù)的源碼是公開的,互聯(lián)網(wǎng)公司在考察某項(xiàng)技術(shù)是否符合自身開發(fā)需求時(shí),可以對(duì)源碼進(jìn)行分析;另一方面,開源技術(shù)商用的成本相對(duì)比較低,這對(duì)于很多初創(chuàng)的互聯(lián)網(wǎng)公司而言,可以節(jié)省一大筆技術(shù)投入。因此Vue.js+Spring Boot全棧開發(fā)架構(gòu)被稱為開發(fā)下一代大型Web應(yīng)用的“平民英雄”。

當(dāng)然,開源技術(shù)是把“雙刃劍”,能夠看到源碼,并不意味著可以解決所有問題。開源技術(shù)在技術(shù)支持上不能與閉源技術(shù)相提并論,畢竟閉源技術(shù)有成熟的商業(yè)模式,會(huì)提供完善的商業(yè)支持。而開源技術(shù)更多依賴于社區(qū)對(duì)于開源技術(shù)的支持。如果在使用開源技術(shù)的過程中發(fā)現(xiàn)了問題,用戶可以反饋給開源社區(qū),但開源社區(qū)不能保證在什么時(shí)候、什么版本能夠修復(fù)發(fā)現(xiàn)的問題。所以使用開源技術(shù)時(shí),開發(fā)團(tuán)隊(duì)需要對(duì)開源技術(shù)有深刻的了解,最好能夠“吃透”源碼,這樣在發(fā)現(xiàn)問題時(shí),就能夠及時(shí)解決源碼上的問題。

例如,在關(guān)系型數(shù)據(jù)庫(kù)方面,同屬于Oracle(甲骨文)公司的MySQL數(shù)據(jù)庫(kù)和Oracle數(shù)據(jù)庫(kù)就是開源技術(shù)與閉源技術(shù)的兩大代表,兩者占據(jù)了全球數(shù)據(jù)庫(kù)的占有率排行的前兩名。MySQL數(shù)據(jù)庫(kù)主要被小、中型企業(yè)或者云計(jì)算供應(yīng)商采用,而Oracle數(shù)據(jù)庫(kù)則由于其穩(wěn)定、高性能的特性,深受政府和銀行等客戶的信賴。

2. 跨平臺(tái)

跨平臺(tái)意味著開發(fā)和部署應(yīng)用的成本低。

試想一下,當(dāng)今操作系統(tǒng)“三足鼎立”,分別是Linux、macOS、Windows,如果開發(fā)人員需要針對(duì)不同的操作系統(tǒng)平臺(tái)開發(fā)不同的軟件,那么開發(fā)成本勢(shì)必會(huì)非常高,而且每個(gè)操作系統(tǒng)平臺(tái)都有不同的版本、分支,僅僅做不同版本的適配都需要耗費(fèi)極大的人力,更別提要針對(duì)不同的平臺(tái)開發(fā)軟件了。因此跨平臺(tái)可以節(jié)省開發(fā)成本。

同理,由于使用Vue.js+Spring Boot全棧開發(fā)架構(gòu)開發(fā)的軟件是具有跨平臺(tái)特性的,開發(fā)人員無須擔(dān)心在部署應(yīng)用過程中的兼容問題。開發(fā)人員在本地開發(fā)環(huán)境所開發(fā)的軟件,理論上是可以通過持續(xù)集成的方式直接部署到生產(chǎn)環(huán)境中,因而可以節(jié)省部署的成本。

Vue.js+Spring Boot全棧開發(fā)架構(gòu)具備的跨平臺(tái)特性,使其非常適合構(gòu)建Cloud Native應(yīng)用,特別是在當(dāng)今容器常常作為微服務(wù)的宿主的情況下,而Vue.js+Spring Boot全棧開發(fā)架構(gòu)的應(yīng)用是支持通過Docker部署的。

有關(guān)Cloud Native方面的內(nèi)容,讀者可以參閱筆者所著的《Cloud Native分布式架構(gòu)原理與實(shí)踐》。

3. 輔助全棧開發(fā)

類似于系統(tǒng)架構(gòu)師,全棧開發(fā)人員應(yīng)該比一般的軟件工程師具有更廣的知識(shí)面,是擁有全棧軟件設(shè)計(jì)思維并掌握多種開發(fā)技能的復(fù)合型人才,能夠獨(dú)當(dāng)一面。相比于Spring Boot工程師、Vue.js工程師偏重某項(xiàng)技能而言,全棧開發(fā)人員必須掌握整個(gè)應(yīng)用架構(gòu)的全部細(xì)節(jié),要能夠從零開始構(gòu)建全套完整的企業(yè)級(jí)應(yīng)用。

一名全棧開發(fā)人員,在開發(fā)時(shí)往往會(huì)做如下問題的預(yù)測(cè),并做好防御。

  • 當(dāng)前所開發(fā)的應(yīng)用會(huì)部署到什么樣的服務(wù)器、網(wǎng)絡(luò)環(huán)境中?
  • 服務(wù)在哪里可能會(huì)崩潰?為什么會(huì)崩潰?
  • 應(yīng)用是否應(yīng)該適當(dāng)?shù)厥褂迷拼鎯?chǔ)?
  • 程序是否具備數(shù)據(jù)冗余?
  • 應(yīng)用是否具備可用性?
  • 界面是否友好?
  • 性能是否能夠滿足當(dāng)前的要求?
  • 哪些位置需要加日志,以方便通過日志排查問題?

除上述問題的預(yù)測(cè)外,全棧開發(fā)人員要能夠建立合理的、標(biāo)準(zhǔn)的關(guān)系模型,包括外鍵、索引、視圖、查找表等。

全棧開發(fā)人員要熟悉非關(guān)系數(shù)據(jù)存儲(chǔ),并且知道它們相對(duì)關(guān)系數(shù)據(jù)存儲(chǔ)的優(yōu)勢(shì)所在。

當(dāng)然,人的精力畢竟有限,所以成為全棧開發(fā)人員并非易事。但Vue.js+Spring Boot全棧開發(fā)架構(gòu)讓這成為可能。Vue.js+Spring Boot全棧開發(fā)架構(gòu)以Vue.js和Spring Boot為整個(gè)技術(shù)棧的核心,Vue.js采用的編程語言是TypeScript(類JavaScript),而Spring Boot采用的編程語言是Java,這意味著,開發(fā)人員只需要掌握J(rèn)avaScript和Java這兩種編程語言,即可掌握Vue.js+Spring Boot全棧開發(fā)架構(gòu)的所有技術(shù),這不得不說是全棧開發(fā)人員的“福音”。

4. 支持企業(yè)級(jí)應(yīng)用

無論是Spring Boot、Vue.js還是MySQL,這些技術(shù)在大型互聯(lián)網(wǎng)公司都被廣泛采用。無數(shù)應(yīng)用也證明了Vue.js+Spring Boot全棧開發(fā)架構(gòu)是非常適合用來構(gòu)建企業(yè)級(jí)應(yīng)用的。企業(yè)級(jí)應(yīng)用是指那些為商業(yè)組織、大型企業(yè)而創(chuàng)建并部署的解決方案。大型企業(yè)級(jí)應(yīng)用的結(jié)構(gòu)復(fù)雜,涉及眾多外部資源、事務(wù)密集、數(shù)據(jù)量大、用戶數(shù)多,有較高的安全性要求。

Vue.js+Spring Boot全棧開發(fā)架構(gòu)用于開發(fā)企業(yè)級(jí)應(yīng)用,不但具有強(qiáng)大的功能,還能夠滿足未來業(yè)務(wù)變化的需求,使其易于升級(jí)和維護(hù)。

更多有關(guān)企業(yè)級(jí)應(yīng)用開發(fā)方面的內(nèi)容,讀者可以參閱筆者所著的《Spring Boot企業(yè)級(jí)應(yīng)用開發(fā)實(shí)戰(zhàn)》《Vue.js 3企業(yè)級(jí)應(yīng)用開發(fā)實(shí)戰(zhàn)》《Node.js企業(yè)級(jí)應(yīng)用開發(fā)實(shí)戰(zhàn)》《Angular企業(yè)級(jí)應(yīng)用開發(fā)實(shí)戰(zhàn)》等。

5. 支持構(gòu)建微服務(wù)

微服務(wù)(Microservices)架構(gòu)風(fēng)格就像是把小的服務(wù)開發(fā)成單一應(yīng)用的形式,運(yùn)行在自己的進(jìn)程中,并采用輕量級(jí)的機(jī)制(一般是HTTP資源接口)進(jìn)行通信。這些服務(wù)圍繞業(yè)務(wù)功能來構(gòu)建,通過全自動(dòng)部署工具來實(shí)現(xiàn)獨(dú)立部署。這些服務(wù)可以使用不同的編程語言和不同的數(shù)據(jù)存儲(chǔ)技術(shù),并保持最小化集中管理。

Vue.js+Spring Boot全棧開發(fā)架構(gòu)非常適合構(gòu)建微服務(wù),原因如下。

  • Spring Boot本身提供了跨平臺(tái)的能力,可以運(yùn)行在自己的進(jìn)程中。
  • Spring MVC易于構(gòu)建Web服務(wù),并支持HTTP(Hypertext Transfer Protocol,超文本傳送協(xié)議)通信。
  • Spring Boot+MySQL具備從前端到后端,再到數(shù)據(jù)存儲(chǔ)的全棧開發(fā)功能。

開發(fā)人員可以輕易地通過Vue.js+Spring Boot全棧開發(fā)架構(gòu)來構(gòu)建并快速啟動(dòng)一個(gè)微服務(wù)應(yīng)用。業(yè)界也提供了成熟的微服務(wù)解決方案(例如Tars.js、Seneca等)來打造大型微服務(wù)架構(gòu)系統(tǒng)。

有關(guān)微服務(wù)方面的內(nèi)容,讀者可以參閱筆者所著的《Spring Cloud微服務(wù)架構(gòu)開發(fā)實(shí)戰(zhàn)》。

6. 業(yè)界主流

Vue.js+Spring Boot全棧開發(fā)架構(gòu)所涉及的技術(shù)都是業(yè)界主流,主要體現(xiàn)在以下幾方面。

  • MySQL在開源關(guān)系型數(shù)據(jù)庫(kù)的占有率方面是排行第一的,而且用戶量還在遞增。
  • 只要掌握J(rèn)ava就必然需要掌握Spring Boot,而Java是開源界最流行的開發(fā)語言之一。
  • Vue.js是目前前端組件化開發(fā)中比較主流的方式。Nginx也是目前使用非常廣泛的代理服務(wù)器。
主站蜘蛛池模板: 收藏| 诏安县| 甘德县| 格尔木市| 盘锦市| 凯里市| 烟台市| 永登县| 罗源县| 施秉县| 财经| 湘阴县| 青海省| 古田县| 阿拉尔市| 金山区| 建始县| 涿鹿县| 三门峡市| 祁东县| 保定市| 即墨市| 平乐县| 保山市| 亚东县| 文山县| 宜良县| 仪陇县| 佛坪县| 刚察县| 左贡县| 咸丰县| 凌源市| 怀来县| 德昌县| 措美县| 合山市| 如皋市| 尚志市| 山西省| 布拖县|