iT邦幫忙

2023 iThome 鐵人賽

DAY 2
1

https://ithelp.ithome.com.tw/upload/images/20230917/20136558o5hUWaok3g.jpg

今天要來介紹一下這次挑戰主要會使用到的技術,其他比較詳細(如程式碼)之後文章會再補充。

大綱

  • 所以MERN是什麼?
  • MERN的優點
  • MERN的缺點
  • 我選擇MERN的理由?

所以MERN是什麼?

MongoDB — document database(資料庫)
Express.js — Node.js web framework(伺服器框架)
React.js — a client-side JavaScript framework(前端框架)
Node.js — the premier JavaScript web server(後端伺服器)

MERN是一個可以用來建構全端的技術棧

MERN is a full stack, following the traditional three-tier architectural pattern, including the front-end display tier (React.js), application tier (Express.js and Node.js), and database tier (MongoDB).
來源:MongoDB官網

https://ithelp.ithome.com.tw/upload/images/20230917/20136558CPSyOaQHkb.jpg


MERN的優點

我整理了網路上討論關於MERN的優點:

  1. 成本效益
    由於 MERN 技術堆疊只使用一種語言,即 JavaScript,所以對一家公司來說更有利的是僅僅只需要聘請 JavaScript 專家,可以節省大量的時間和金錢。
  2. 易於在客戶端和服務器之間切換:
    由於所有程式碼都使用同一種語言,所以 MERN 簡單且快速。而且在客戶端和服務器之間切換也很容易。
  3. 速度
    純性能方面,Node.JS 甚至超越了像 Apache 這樣的重量級競爭對手。作為事件驅動的架構絕對有幫助,同樣,由於受到 Google 和 Microsoft 等公司的優化和發展,它的效能也在不斷提高。
  4. 跨平台支援
    許多舊有的技術棧,如 LAMP ,限制了開發人員選擇的操作系統為 Linux。
    然而,MEAN 技術棧的未來指向一個獨立於操作系統的開發框架,可以在 Windows、MacOS 和 Linux 上運行。

MERN的缺點

接著是MERN的缺點:

  1. 不適用於大型應用程式
    MongoDB 是一個 NoSQL 數據庫,它的設計目標之一是簡化資料模型,通常使用插入文檔或引用來處理關聯資料。對於具有大量關聯表格的大型企業級應用程式,這種方式不太適用,因為它會導致複雜的查詢和性能問題。
    相對而言,傳統的關聯式資料庫(如 PostgreSQL 或 Oracle)在處理複雜的關聯資料時更具優勢。
  2. 可擴展性問題:
    儘管 Node.js 以其可擴展性而聞名,但 MERN 在處理極高負載或大量計算時可能會面臨挑戰。由於 Node.js 在單個線程上運行,對於需要大量 CPU 運算的應用程式來說,可能不是最佳選擇。
    在這種情況下,其他技術,如 Golang 或 Java,可能更適合。
  3. 缺乏約定 :與某些其他框架不同,MERN 不強制執行嚴格的約定或指南(例如:型別),這使得開發人員更具靈活性,但可能導致專案結構和程式碼風格不一致,使新的開發人員更難以瀏覽和理解現有專案。

我選擇MERN的理由?

因為我只會Javascript (這個也是其中一個理由)

◆ 對前端開發者友善

因為他們是Javascript-based stack,所以基本上只要了解JS和JSON結構就能了解整個系統。

◆ MongoDB的靈活性、好上手

MongoDB是 NoSQL (非關聯式資料庫),相比傳統關聯式,不需要事先定義資料架構,能夠自由地增加資料的 Key/Value;
加上又是JSON文檔的資料結構,上手比其傳統式資料庫還來得容易。

◆ 開源資料(Open Source)很多

MERN的技術都是開源資料,且網路上也有很多與他們相關的第三方套件。
以前端而言,React在近幾年的第三方套件數量和熱門程度幾乎已經是明顯高於其他兩個前端框架(Vue、Angular)。

今天的介紹就到這裡,下一篇要來詳細介紹後端技術

/images/emoticon/emoticon13.gif

參考資料

https://www.mongodb.com/mern-stack
https://medium.com/aeologic/why-choose-mern-stack-323b4d95e4ea
https://www.quora.com/What-are-pros-and-cons-of-the-MEAN-stack


上一篇
[Day1]挑戰前言
下一篇
[Day3]Node.js和Express.js簡介
系列文
初探全端之旅: 以MERN技術建立個人部落格31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
NelsonYou
iT邦新手 5 級 ‧ 2023-09-20 00:56:14

你好,想請問卻乏約定的部分可以用typescipt開發嗎

Yihsuan iT邦新手 5 級 ‧ 2023-09-20 08:47:30 檢舉

可以喔,只是我這系列開發還是先以js為主。

這邊提供前後端用typescript開發的一些資訊。

前端:
React with TypeScript

後端:
Node.js with TypeScript
Use express in typescript

我要留言

立即登入留言