全棧、均棧、MERN棧 差別

 https://www.gushiciku.cn/pl/pSer/zh-tw

到底什麼是技術棧?

作為一種資料型別,技術棧實際上是一些元件的集合。

2個主要功能。一個是以推送的形式,向集合中新增元件;另一個是以彈窗的方式,刪除最近新增的,但尚未刪除的元件。

可見,它有點類似一個堆疊了一組實用工具的架子(棧),您可以輕鬆地從其頂部拉出需要的工具和技術。下面是技術棧中的常見技術:

  • 前端技術-HTML、JavaScript、CSS、PostgreSQL、jQuery;
  • 前端框架-Angular.js、Polymer.js、bonebjs、Ember.js;
  • 後端技術-Nodejs,PHP、.NET、Ruby on Rails;
  • 後端框架-ASP.NET、Rails、Express、CodeIgniter;
  • 資料庫技術-Oracle、Microsoft SQL Server、MySQL、MongoDB。

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

全棧的相關概念

作為Web開發的一部分,全棧開發泛指通過網際網路或內聯網,進行各種Web相關任務的開發,其中包括應用程式前端(我們也稱為客戶端)和後端(我們也稱為伺服器端)等完整的開發。而憑藉著雲端計算所帶來的各項技術優勢,全棧開發給整個開發領域帶來了翻天覆地的變化。

運用完整的技術棧開展開發工作,其中涉及到各種前端技術、後端開發語言、資料庫、伺服器、API、以及版本控制系統。這樣也就是所謂“全棧”名稱的由來。

全棧開發人員既可以保持目標系統的各個部分平穩執行,又可以為團隊中的每個成員提供幫助,並大幅減少團隊用於溝通的時間和技術成本。畢竟,這樣一個“萬金油”式的角色,能夠為公司節省在人力、基礎架構和運營上的各項成本。

全棧開發需具備的專業知識

1)前端技術

全棧開發人員應該掌握諸如HTML5、CSS3、JavaScript之類重要的前端技術,並對jQuery、LESS、Angular和React JS等第三方庫有所瞭解。

2)開發語言

全棧工程師應該至少知道一種伺服器端程式語言,例如:Java、Python、Ruby、以及.Net等。

3)資料庫和快取

對各種DBMS技術的瞭解,是對全棧開發人員的另一項重要要求。其中,資料庫包括:MySQL、MongoDB、Oracle、以及SQL Server等場景資料庫。而諸如varnish、Memcached和Redis之類的快取機制也是必備的知識。

4)基本設計能力

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

5)伺服器

由於需要接觸到Apache或Nginx伺服器,因此全棧開發人員如果具備Linux的良好背景,則能夠輕鬆地管理各種伺服器。

6)版本控制系統(VCS)

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

均棧的相關概念

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

正如前面提到的,組成均棧的四項技術分別是:作為資料庫的MongoDB,作為伺服器系統的Express,針對前端的Angular,以及作為JavaScript伺服器端事件驅動的I/O(輸入/輸出)環境--NodeJ。

均棧的關鍵特徵是:所有這四種技術均基於框架中的Javascript和JSON(JavaScript Object Notation,物件表示法)資料,進而節省了消耗在潛在JSON編碼上的時間。

MEAN前端

Angular是由Google建立和維護的開源JavaScript框架。它帶有管理客戶端上所有應用與互動的功能,並主要用於構建在網頁上載入初始請求的SPA(Single Page Application,單頁面應用程式)。

通過執行客戶端的側路由(side routing),Angular能夠大幅減輕伺服器的負載。同時,由於它屬於MVW(Model View Whatever,不限模型與檢視)型架構,因此均棧的前端部分(Angular)可由HTML、CSS或Javascript組成。

MEAN後端

MEAN後端用於設計表格與文件的後端,通過其服務來儲存前端的資料,以及可以使用主鍵/外來鍵來檢索資料庫的結構。

由於均棧裡各種工具都可以在本地使用底層的JSON資料,因此Node + Express.js + MongoDB資料庫的結合,為基於JSON的Web服務提供了出色的實現效果。可見,相對於前面提到的全棧,均棧開發服務(請參見--https://www.pixelcrayons.com/javascript-development/mean-stack-development?utm_source=dzone&utm_medium=meanstack-MJ-MS&utm_campaign=MJ)具有效率和生產率上的優勢。

MERN棧的相關概念

除了將React代替了Angular,MERN棧幾乎與均棧如出一轍。MERN棧也是由開源元件所組成,並提供了一個端到端框架,用來構建全面的Web應用,並讓瀏覽器能與資料庫相連線。

在介紹MERN棧之前,我們首先來了解一下React Js。React是由Facebook的Ads組織開發,使用的是典型的客戶端MVC模型。該模型具有所有常見的雙向資料繫結和模板。檢視會持續偵聽模型中的更改,而作為更改的響應,檢視會自行更新。

MERN棧的優勢

1、JavaScript無處不在

MERN的最大優勢是:統一使用了JavaScript語言。我們可以將JavaScript用於客戶端和伺服器端程式碼,甚至可以用它來編寫MongoDB的資料庫指令碼。因此,您唯一需要了解和熟悉的語言便是JavaScript。

2、JSON無處不在

在使用MERN棧時,您會發現在資料庫中、在應用伺服器中、在客戶端上、甚至線上路上,任何地方都會使用JSON作為物件的表示形式。

3、Node.js效能

鑑於其事件驅動的架構和無阻塞的I/O特點,Node.js在此成為了一種非常快速和靈活的Web伺服器。

4、NPM生態系統

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

小結

基於上述介紹,想必您已經能夠根據自己手頭專案的實踐情況,明智地選擇出該用全棧(Full-Stack)、均(MEAN)棧還是MERN棧了。當然,作為技術儲備和預設情況,我還是建議您僱用全棧開發人員

留言

這個網誌中的熱門文章

考績被打差了 輕率離職會更傷

Arrays - DS (Reverse array) [Easy]

WireMock