MEAN技術棧
開發者為了在他們的Web應用程式上獲得最大的使用者參與度,會選擇最可行的技術和框架。有一長串的技術可以使用,而MEAN堆疊則是現代Web應用程式的秘訣。MEAN於2014年問世,改變了Web開發的進展方式。如前所述,MEAN堆疊包含以下四個組件:MongoDB,一種檔資料庫-被後端應用程式使用來將數據以JSON(JavaScript物件標記法)文件儲存 Express.js,一個運行在Node.js之上的後端Web應用程式框架 AngularJS,一個前端Web應用程式框架;在使用者瀏覽器中執行JavaScript代碼,使您的應用程式UI具有動態性 Node.js,一種JavaScript運行時環境-讓您以JavaScript實現應用程式後端 MEAN堆疊完全關注於JavaScript-無論是後端開發、前端開發還是伺服器都是使用同一種程式語言。通過MongoDB的內建驅動程式來訪問資料庫。驅動程式使用典型的JavaScript概念,如物件和異步執行,可以通過回調函數或承諾來進行交互。
我已經在JavaScript中插入了一個包含3個對象的陣列。
※強弱危機分析
優勢:- mean堆疊的四個部分都是開源的,因此使用者可以自由地修改並改進其功能。
- mean堆疊在單頁應用程式(spa)上表現優異,可以提供更好的用戶體驗。
- mean堆疊能夠實現全棧javascript開發,一種語言即可完成前後端開發,降低學習成本。
- 對於大型、複雜的企業級應用來說,mean可能無法完全符合需求。
- 相比lamp, mean的社區資源相對較少,遇到問題可能需要花費更多時間去找解決方案。
- node.js在cpu密集型任務上表現不佳,可能會影響效能。
- 隨著javascript技術與生態系統的快速發展和普及,採用mean堆疊有助於保持最新科技趨勢並增強競爭力。
- 隨著雲端技術的日益成熟和廣泛應用,“伺服器less”架構正在成为新趨勢, mean已具備此能力。
- 越來越多企業選擇將應用程序轉移到網頁上,mean堆疊在這方面有很大的發展空間。
- 其他新興技術堆疊如mern、mevn等可能會成為競爭者。
- 由於javascript是弱型別語言,可能容易引入錯誤,影響開發效率和程式碼品質。
- 隨著lamp社區的不斷完善及php7版本的出現,lamp在性能和開發效率上也有所提高, 仍然具有一定競爭力。
資料庫系統:MongoDB
MongoDB擁有最佳的兩個世界:NoSQL的快速、可擴展的鍵值存儲和關聯數據庫豐富的功能。不同於關聯數據庫,MongoDB將BSON文檔存儲在具有活動模式的集合中。而MySQL等關聯數據庫將數據存儲在特定的行和列中,MongoDB的文檔數據模型則無視其結構存儲數據,並且不影響現有的身份驗證規則、數據訪問和索引功能。您可以在不中斷操作的情況下主動調整模式-這對於快速擴展 Web 應用程式來說是微不足道的。 提供此翻譯目的僅為幫助理解原文內容,若需正確使用該資訊或相關內容,請參考原始出處以瞭解更多詳細資訊。
後端網頁框架:Express.js
Express是一個執行後端應用程式(JavaScript)程式碼的網頁應用程式框架。Express是Node.js環境下的模組,並在其之下運行。Express負責將請求分配給應用程式的不同部分(或在同一環境中運行的各種應用程式)。Express執行網頁應用程式代碼中負責業務邏輯的部分,並返回一個HTML檔供網頁瀏覽器編譯。然而,Express主要提供RESTful API,前端可以通過一行代碼訪問它。
前端框架:AngularJS
Angular 是一個在網頁瀏覽器環境中呈現 JavaScript 代碼的框架,用於實現具有反應式使用者介面(UI)。不同於靜態網頁表單需要填寫並提交,反應式 UI 可以即時顯示用戶的輸入,而無需刷新整個頁面,僅更新必要的元件。你可以將前端 Web 應用程式實現為一組組件。HTML 範本中附帶的 JavaScript 代碼包含執行和使用 JavaScript 函數結果的鉤子。多功能應用程式前端可以由許多簡單或嵌套的組件構建而成。Angular 應用程式代碼可以在後端伺服器上進行編譯,也可以作為本地桌面或移動應用程式運行。
後端運行環境:Node.jsm
MEAN堆棧是一個JavaScript運行時環境,通過Express來運行後端應用程式,它基於Google的V8引擎,該引擎為Google Chrome和開源Chromium瀏覽器提供支援。其中許多模塊對於在MEAN堆棧上部署Web應用程式(包括HTTP)至關重要。協力廠商模塊可以使用npm工具安裝。Node.js是異步和事件驅動的。也就是說,應用程式不需要輪詢請求的確認。它在此期間恢復其他任務的執行。
完成後,回調請求通知應用程式並啟動其他任務以實現最佳資源利用率,這使得多個操作可以並行執行並擴展應用程式。MongoDB也可以異步工作,因此與Node.js應用程式配合良好。如果您對MEAN堆棧還不太自信,我們會告訴您為什麼您應該在下一個Web開發項目中使用MEAN堆棧。
一種語言統治所有:JavaScript
在MEAN堆疊中,每一段程式碼都是使用JavaScript撰寫的。另一方面,在LAMP堆疊中,伺服器端是用PHP編寫的,而客戶端則使用JavaScript。使用MySQL發送查詢時,與MEAN堆疊不同。MongoDB再次回到了JavaScript - 它是JSON的二進位版本。總之,相同的語言在客戶端和伺服器端都能運作。
成本效益高且快速可擴展的優點
一支由JavaScript開發者組成的團隊可以運用MEAN技術堆疊進行伺服器端和客戶端的編碼。因此,不需要雇用不同技術領域的分開團隊。同一位開發者可以在前端和後端之間切換角色。這樣可以節省大量費用。只需一個團隊便可進行MEAN技術堆疊的開發工作。這是Web開發史上第一次,全棧開發者只需掌握一種語言即可。
Node.js的優勢
Node.js是MEAN堆疊的重要組成部分,也是一個非常可擴展且強大的框架。Node.js是執行時環境,並符合非阻塞輸入和輸出的要求。因此,新的查詢可以高效地處理。在LAMP堆疊中,客戶端必須直接發送查詢請求才能創建它。而在Node.js中,這一切都是自動完成的。
MongoDB的優勢
MongoDB是網頁開發人員在處理大量數據時所需的資料庫。整個系統運作方式類似物件導向程式設計,使得處理變得輕鬆有效率。開源—修改源碼,編譯,和安裝
帶給我們MEAN堆疊的技術都是開源的,也就是說開發者可以取得每個技術的原始碼並修改核心部分以滿足他們的個別需求。這些技術使用和分發都不需要花一毛錢,這意味著你不僅可以用於個人使用,還可以安裝在你員工的個人工作空間上。相關數據:
- 根據stack overflow 2020年度開發者調查,約34.9%的全球開發者正在使用node.js(mean堆疊的一部分) 來源: stack overflow developer survey
- 同樣在這份調查中,僅有25.8%的全球開發者表示他們正在使用php(lamp堆疊的一部分) 來源: stack overflow developer survey
- 在indeed.com上,mean stack相關職缺比例在2018年到2021年間增加了30% 來源: indeed.com
- 根據github統計數據顯示,javascript (mean堆疊核心) 的專案數量是2.3億件,遠超於php(lamp堆疊核心) 的0.78億件 來源: github
- jetbrains 2020 開發者生態系調查報告指出, 使用 javascript (mean 堆疊核心) 的人數佔全部受訪者的69%,而 php (lamp 堆疊核心) 則只有26% 來源: jetbrains
文章標籤
全站熱搜
