※ 後端面試考古題(三)

更新於 發佈於 閱讀時間約 1 分鐘

※ ORM 是什麼?ORM 的優缺點是什麼?

  1. ORM 是什麼?

ORM 專用於關聯式資料庫 (relational database)一種叫「物件映射 (object mapping)」 的技術,主要是用程式語言裡的「物件」來包裝資料庫的 SQL (structured query language),讓開發者可以直接使用物件導向的方式操作資料庫,同時也增加程式碼的易讀性與維護性。

ORM 會再生成 SQL 語句

ORM 會再生成 SQL 語句


  1. ORM 的優缺點是什麼?

優點:

  • 提高生產力:使用 ORM 可以簡化資料庫操作的程式碼,減少開發人員撰寫相同或類似的資料存取程式碼的需求,讓開發人員專注於應用程式的邏輯。
  • 提高可維護性:ORM 提供了一個抽象層,使得程式碼更容易維護。
  • 提高抽象性:ORM 把資料庫表格與物件之間的映射關係隱藏起來,使得開發人員不必直接與資料庫打交道。
  • 移植性好:使應用程式更容易地切換和支援不同的資料庫,因為 ORM 通常提供了跨資料庫的支援。
  • 提高安全性:ORM 可以通過防止 SQL 注入攻擊等方式,提高應用程式的安全性。

缺點

  • 效能問題:由於 ORM 在背後進行了大量的轉換與映射,因此可能會比直接使用原生 SQL 語句慢一些。
  • 複雜性:ORM 本身就是一個複雜的系統,對於新手開發人員來說,學習和理解 ORM 可能需要一些時間。
  • 抽象性問題:ORM 把資料庫與應用程式隔離,因此開發人員可能不能完全了解資料庫的運作方式。
  • 版本問題:不同版本的 ORM 可能有不同的功能和接口,因此在升級時需要注意程式碼的兼容性。
  • 實現上的差異:不同的 ORM 可能有不同的實現方式,因此在選擇 ORM 時需要考慮適合的需求。

選擇使用 ORM 還是直接操作 SQL 取決於特定應用程式的需求和開發團隊的偏好。需要簡化程式碼,提高生產力和可維護性,就採用ORM 。對資料庫的效能和細節有特殊的需求,就使用原生的 SQL 語句。

留言
avatar-img
留言分享你的想法!
avatar-img
奧莉薇走在成為後端工程師之路上
21會員
146內容數
全端網頁開發專業知識分享
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
看更多