成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全棧、均棧、MERN棧,哪個才是下一代Web項目的正確棧?

譯文
開發(fā) 前端
本文將和您逐一討論全棧(Full-Stack)、均(MEAN)棧和MERN棧,背后相關(guān)技術(shù)的優(yōu)缺點,以方便您做出明智的選擇。

【51CTO.com快譯】眾所周知,我們在開始任何Web或移動應(yīng)用項目的開發(fā)之前,都需要事先選擇好最適合項目的主要實現(xiàn)技術(shù)。目前,可選擇的技術(shù)棧可謂林林總總,歸納起來,包括全棧(Full-Stack)、均(MEAN)棧和MERN棧三大類。下面,我將逐一和您討論這些術(shù)語背后相關(guān)技術(shù)的優(yōu)缺點,以方便您做出明智的選擇。

[[351895]]

到底什么是技術(shù)棧?

作為一種數(shù)據(jù)類型,技術(shù)棧實際上是一些組件的集合。它具有兩個主要功能。一個是以推送的形式,向集合中添加組件;另一個是以彈窗的方式,刪除最近添加的,但尚未刪除的組件。可見,它有點類似一個堆疊了一組實用工具的架子(棧),您可以輕松地從其頂部拉出需要的工具和技術(shù)。下面是技術(shù)棧中的常見技術(shù):

  • 前端技術(shù)-HTML、JavaScript、CSS、PostgreSQL、jQuery;
  • 前端框架-Angular.js、Polymer.js、bonebjs、Ember.js;
  • 后端技術(shù)-Nodejs,PHP、.NET、Ruby on Rails;
  • 后端框架-ASP.NET、Rails、Express、CodeIgniter;
  • 數(shù)據(jù)庫技術(shù)-Oracle、Microsoft SQL Server、MySQL、MongoDB。

針對不同的業(yè)務(wù)場景,我們可以采用全棧(Full-Stack)、均(MEAN)棧和MERN棧三種方式。下面我們來詳細討論三者各自的特點:

全棧的相關(guān)概念

作為Web開發(fā)的一部分,全棧開發(fā)泛指通過互聯(lián)網(wǎng)或內(nèi)聯(lián)網(wǎng),進行各種Web相關(guān)任務(wù)的開發(fā),其中包括應(yīng)用程序前端(我們也稱為客戶端)和后端(我們也稱為服務(wù)器端)等完整的開發(fā)。而憑借著云計算所帶來的各項技術(shù)優(yōu)勢,全棧開發(fā)給整個開發(fā)領(lǐng)域帶來了翻天覆地的變化。

全棧工程師同時在客戶端和服務(wù)器端軟件上,運用完整的技術(shù)棧開展開發(fā)工作,其中涉及到各種前端技術(shù)、后端開發(fā)語言、數(shù)據(jù)庫、服務(wù)器、API、以及版本控制系統(tǒng)。這樣也就是所謂“全棧”名稱的由來。

全棧開發(fā)人員既可以保持目標(biāo)系統(tǒng)的各個部分平穩(wěn)運行,又可以為團隊中的每個成員提供幫助,并大幅減少團隊用于溝通的時間和技術(shù)成本。畢竟,這樣一個“萬金油”式的角色,能夠為公司節(jié)省在人力、基礎(chǔ)架構(gòu)和運營上的各項成本。

全棧開發(fā)需具備的專業(yè)知識

1)前端技術(shù)

全棧開發(fā)人員應(yīng)該掌握諸如HTML5、CSS3、JavaScript之類重要的前端技術(shù),并對jQuery、LESS、Angular和React JS等第三方庫有所了解。

2)開發(fā)語言

全棧工程師應(yīng)該至少知道一種服務(wù)器端編程語言,例如:Java、Python、Ruby、以及.Net等。

3)數(shù)據(jù)庫和緩存

對各種DBMS技術(shù)的了解,是對全棧開發(fā)人員的另一項重要要求。其中,數(shù)據(jù)庫包括:MySQL、MongoDB、Oracle、以及SQL Server等場景數(shù)據(jù)庫。而諸如varnish、Memcached和Redis之類的緩存機制也是必備的知識。

4)基本設(shè)計能力

作為一名全棧開發(fā)人員,除了必備的設(shè)計知識,還需要了解UI/UX方面的基本設(shè)計理念。

5)服務(wù)器

由于需要接觸到Apache或Nginx服務(wù)器,因此全棧開發(fā)人員如果具備Linux的良好背景,則能夠輕松地管理各種服務(wù)器。

6)版本控制系統(tǒng)(VCS)

版本控制系統(tǒng)能夠方便全棧開發(fā)人員跟蹤代碼庫中的所有更改。通過Git的相關(guān)知識,他們能夠了解如何獲取最新的代碼,更新部分代碼,以及在不破壞其他開發(fā)人員代碼的情況下進行修改。

全棧的優(yōu)勢

1、切換簡單

全棧開發(fā)人員具有根據(jù)項目的需求,在前端和后端開發(fā)之間進行自由切換的能力。

2、整體設(shè)計架構(gòu)

全棧開發(fā)人員的顯著特征之一便是:他們不僅能夠從事Web開發(fā),而且能夠負責(zé)整個設(shè)計的架構(gòu)。

3、節(jié)約成本

分別雇用前端和后端開發(fā)人員的成本,比起僅聘請前后端全能的全棧開發(fā)人員來說,顯然要高出許多。

4、易于掌控設(shè)計和實施的各個狀態(tài)

由于更加全面地擁有設(shè)計上的所有權(quán),因此全棧開發(fā)人員能夠更加自如地實施各項構(gòu)建流程。

5、易于技術(shù)更新

與那些僅從事前端或后端技術(shù)的人員相比,全棧開發(fā)人員擁有更全面的知識結(jié)構(gòu),因此他們有實力輕松地升級或切換到新的技術(shù)和工具上。

均棧的相關(guān)概念

均棧使用MongoDB、Express Js、Angular和Node Js(抬頭字母簡稱MEAN),來分析和理解Web開發(fā)活動中的動態(tài)性和復(fù)雜性。對于大多數(shù)開發(fā)人員而言,他們在全棧設(shè)計中往往會采用MEAN技術(shù),來專注于各項功能的易用性。

正如前面提到的,組成均棧的四項技術(shù)分別是:作為數(shù)據(jù)庫的MongoDB,作為服務(wù)器系統(tǒng)的Express,針對前端的Angular,以及作為JavaScript服務(wù)器端事件驅(qū)動的I/O(輸入/輸出)環(huán)境--NodeJ。

均棧的關(guān)鍵特征是:所有這四種技術(shù)均基于框架中的Javascript和JSON(JavaScript Object Notation,對象表示法)數(shù)據(jù),進而節(jié)省了消耗在潛在JSON編碼上的時間。

MEAN前端

Angular是由Google創(chuàng)建和維護的開源JavaScript框架。它帶有管理客戶端上所有應(yīng)用與交互的功能,并主要用于構(gòu)建在網(wǎng)頁上加載初始請求的SPA(Single Page Application,單頁面應(yīng)用程序)。

通過執(zhí)行客戶端的側(cè)路由(side routing),Angular能夠大幅減輕服務(wù)器的負載。同時,由于它屬于MVW(Model View Whatever,不限模型與視圖)型架構(gòu),因此均棧的前端部分(Angular)可由HTML、CSS或Javascript組成。

MEAN后端

MEAN后端用于設(shè)計表格與文檔的后端,通過其服務(wù)來存儲前端的數(shù)據(jù),以及可以使用主鍵/外鍵來檢索數(shù)據(jù)庫的結(jié)構(gòu)。

由于均棧里各種工具都可以在本地使用底層的JSON數(shù)據(jù),因此Node + Express.js + MongoDB數(shù)據(jù)庫的結(jié)合,為基于JSON的Web服務(wù)提供了出色的實現(xiàn)效果。可見,相對于前面提到的全棧,均棧開發(fā)服務(wù)(請參見--https://www.pixelcrayons.com/javascript-development/mean-stack-development?utm_source=dzone&utm_medium=meanstack-MJ-MS&utm_campaign=MJ)具有效率和生產(chǎn)率上的優(yōu)勢。

均棧的優(yōu)勢

均棧的主要優(yōu)點是通過開源的方式,方便開發(fā)人員去使用互聯(lián)網(wǎng)上免費提供的模塊、庫和公共存儲庫。

  • 由于均棧中是通過龐大的庫中提供多種JavaScript模塊,因此用戶能夠輕松地使用Node.js來開發(fā)Web應(yīng)用。
  • 均棧非常靈活,您可以添加更多僅用作開發(fā)Web應(yīng)用平臺的對象。
  • 如果需要在開發(fā)后測試軟件應(yīng)用,您可以使用MEAN將應(yīng)用程序托管在云端。此外,它也提供了橫跨服務(wù)器的自動共享和集群支持。
  • 由于Node.js包含了大量可以被直接用于開發(fā)Web應(yīng)用的模塊庫,因此您可以通過均棧來節(jié)省大量的時間。
  • 易于在客戶端和服務(wù)器之間切換。由于Node.js是一種通用語言,可以讓您輕松地在客戶端和服務(wù)器端之間進行控制,因此您無需Apache之類的第三方服務(wù)器,便可打開應(yīng)用程序。
  • 作為一個開源的JavaScript框架,Angular.js提供了可維護、可重用和可測試性。而得益于非阻塞的架構(gòu),Node.js也具有快速且可擴展的特性。可見,各項MEAN技術(shù)都具有高性能與高可用性。

MERN棧的相關(guān)概念

除了將React代替了Angular,MERN棧幾乎與均棧如出一轍。MERN棧也是由開源組件所組成,并提供了一個端到端框架,用來構(gòu)建全面的Web應(yīng)用,并讓瀏覽器能與數(shù)據(jù)庫相連接。

在介紹MERN棧之前,我們首先來了解一下React Js。React是由Facebook的Ads組織開發(fā),使用的是典型的客戶端MVC模型。該模型具有所有常見的雙向數(shù)據(jù)綁定和模板。視圖會持續(xù)偵聽模型中的更改,而作為更改的響應(yīng),視圖會自行更新。

不過,隨著應(yīng)用程序變得越來越復(fù)雜,而用于更新視圖的代碼也會存在著細微差異,因此這類級聯(lián)更新(Cascading updates)已變得難以維護。這也正是需要用聲明性(declarative)構(gòu)建,來取代命令性(imperative)的原因。

MERN棧的優(yōu)勢

1、JavaScript無處不在

MERN的最大優(yōu)勢是:統(tǒng)一使用了JavaScript語言。我們可以將JavaScript用于客戶端和服務(wù)器端代碼,甚至可以用它來編寫MongoDB的數(shù)據(jù)庫腳本。因此,您唯一需要了解和熟悉的語言便是JavaScript。

2、JSON無處不在

在使用MERN棧時,您會發(fā)現(xiàn)在數(shù)據(jù)庫中、在應(yīng)用服務(wù)器中、在客戶端上、甚至在線路上,任何地方都會使用JSON作為對象的表示形式。

3、Node.js性能

鑒于其事件驅(qū)動的架構(gòu)和無阻塞的I/O特點,Node.js在此成為了一種非常快速和靈活的Web服務(wù)器。

4、NPM生態(tài)系統(tǒng)

NERN棧提供了大量可供人們免費使用的npm軟件包。即便它們無法完全滿足您的需求,您也可以通過對其fork,來制作出屬于自己的npm軟件包。

小結(jié)

基于上述介紹,想必您已經(jīng)能夠根據(jù)自己手頭項目的實踐情況,明智地選擇出該用全棧(Full-Stack)、均(MEAN)棧還是MERN棧了。當(dāng)然,作為技術(shù)儲備和默認情況,我還是建議您雇用全棧開發(fā)人員(請參見--https://www.pixelcrayons.com/hire-dedicated-full-stack-developers?utm_source=dzone&utm_medium=fullstack-MJ-MS&utm_campaign=MJ),以滿足不同應(yīng)用場景的開發(fā)需求。

原文標(biāo)題:Choosing the Right Stack For Your Next Web Project: Full-Stack vs MEAN Stack vs MERN Stack,作者:Jasmine Ronald

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2020-11-13 19:02:36

Jamstack技術(shù)棧網(wǎng)站

2022-08-22 08:05:17

Fresh框架Remix

2020-09-15 13:02:10

機器學(xué)習(xí)數(shù)據(jù)分布式

2022-12-28 07:33:18

項目Spring架構(gòu)

2023-08-21 09:51:57

全棧軟件開發(fā)

2020-11-12 19:37:49

Web 開發(fā)項目

2013-12-09 09:42:50

JavaScript全棧式

2013-07-27 21:28:44

2021-03-01 23:31:48

隊列實現(xiàn)棧存儲

2022-04-13 08:00:00

Hilla開發(fā)Java

2017-04-06 10:27:01

JavaScript基礎(chǔ)Java

2017-06-13 15:10:02

大數(shù)據(jù)Log日志

2020-07-20 08:23:04

Redis分布式系統(tǒng)

2017-06-13 08:55:29

Log日志MySQL

2018-10-15 10:22:51

2021-06-01 07:16:21

C語言基礎(chǔ)代碼

2022-07-26 07:47:14

架構(gòu)

2017-10-12 14:24:24

2022-12-15 08:44:52

點贊
收藏

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

主站蜘蛛池模板: 亚洲福利一区 | 成人免费视频久久 | 欧美精品乱码久久久久久按摩 | 国产一区二区三区欧美 | 国产精品国产成人国产三级 | 不卡视频一区二区三区 | 国产一级毛片视频 | 久草中文在线观看 | 狠狠综合久久av一区二区小说 | 91毛片网 | 性色视频 | 精品欧美一区二区精品久久久 | 午夜黄色影院 | 91精品国产91久久综合桃花 | 精品久草 | 国产日产欧产精品精品推荐蛮挑 | 日韩欧美在线不卡 | 亚洲视频免费在线观看 | 国产黑丝av| 亚洲精品乱码久久久久久按摩观 | 亚洲精品久久久久久宅男 | 亚洲欧洲精品一区 | 一级片av | 黄视频网址 | 久久久性色精品国产免费观看 | 日本精品一区二区三区视频 | 91国内精精品久久久久久婷婷 | 一本一道久久a久久精品蜜桃 | 精品日韩一区二区 | 一级黄色片在线看 | 中文字幕欧美在线观看 | 国产免费又色又爽又黄在线观看 | 国产高清一区二区三区 | 久久99精品久久久久久国产越南 | 欧美狠狠操 | 伊人色综合久久天天五月婷 | 超碰97av | 99精品电影 | 日本中文字幕一区 | 久久精品欧美一区二区三区麻豆 | 国产欧美精品一区二区三区 |