全端工程師面試問題

作者 Aaron Cao · 更新於

全端工程師面試問題
全端面試考驗的是各層之間的銜接:如何設計與調整 API 合約、登入如何從瀏覽器一路驗證到資料庫,以及一項功能如何從資料庫結構走到畫面。通常會有寫程式環節、打造功能環節,以及一場橫跨用戶端與伺服器端的設計討論。

全端面試考驗的是各層之間的銜接:如何設計與調整 API 合約、登入如何從瀏覽器一路驗證到資料庫,以及一項功能如何從資料庫結構走到畫面。通常會有寫程式環節、打造功能環節,以及一場橫跨用戶端與伺服器端的設計討論。

全端工程師面試到底在考驗什麼?

你可能會擔心,全端面試等於要在大多數人準備一場面試的時間裡,同時準備前端與後端兩場完整的面試。這種擔心可以理解,但這一節會說明為什麼這件事其實沒有看上去那麼龐大。面試官很少會重新跑一遍專職前端或後端的題庫,他們更在意各層交會的地方,因為那正是全端工程師真正展現價值之處。

大多數面試流程會混合四類環節:

  • 寫程式:一道資料結構題,或是解析、分組、分頁記錄之類的實際任務,通常用 JavaScript、TypeScript、Python 或 Java 完成。
  • 打造功能:一個小型的端到端任務,例如一個會存入 API 並顯示驗證錯誤的表單,在共用編輯器或帶回家的程式碼庫中完成。
  • 跨層設計:設計一項類似留言或通知的功能,涵蓋資料庫結構、API、用戶端狀態,以及網路失敗時會發生什麼事。
  • 行為面試:說明你如何把一項功能從工單一路推進到上線,以及你曾跨層追查過的一個 bug。

特定層面的深入問題依然會出現,專門的題庫,包括獨立的前端與後端工程師面試題頁面,收錄在面試題庫中。本頁聚焦於兩層之間的部分。

最常出現哪些 API 合約與資料相關問題?

API 是你工作兩端之間的合約,因此面試官會從兩個角度提問:

  • 你會如何設計一項功能的各個端點,成功與失敗時各自回傳什麼?
  • 如何在不破壞已上線用戶端的前提下修改 API?(版本管理、增量式變更、淘汰緩衝期。)
  • 位移分頁還是游標分頁:動態消息該用哪一種,為什麼?
  • 如果用戶端逾時,如何讓 POST 請求能安全地重試?(冪等性金鑰。)
  • 對某個用戶端來說,選擇 REST、GraphQL 還是 RPC,在快取、過度擷取資料與錯誤處理上會有什麼不同?
  • 驗證邏輯該放在用戶端、伺服器端,還是兩者都要,哪一方說了算?
  • 當一個清單端點回傳巢狀資料時,如何避免 N+1 查詢?

好的回答會說明取捨,而不只是給出選擇。「用游標分頁,因為使用者捲動時新插入的資料列會讓位移錯位並導致項目重複」這樣的回答,勝過只是列出兩個選項卻不下判斷。

身分驗證與追蹤功能類問題該如何回答?

有兩類問題能把全端候選人和專才區分開來。第一類是端到端的身分驗證:說明從使用者送出登入表單,到一次已驗證的 API 呼叫成功之間發生了什麼事。面試官關注的是憑證存放在哪裡(Cookie 還是用戶端儲存)、伺服器如何檢查它、為什麼 HttpOnly Cookie 能防止指令碼存取、以 Cookie 為基礎的工作階段需要什麼樣的 CSRF 防護、CORS 如何影響不同來源的前端,以及登出與權杖過期如何處理。

第二類是追蹤問題:「使用者點了儲存,卻什麼都沒發生,說說你會怎麼除錯。」好的回答會一層一層推進,從瀏覽器主控台與網路面板,到請求與回應,再到伺服器日誌,最後到資料庫寫入,而不是憑空猜測。

一位在中型 SaaS 公司面試的全端工程師就是典型案例。被問到留言功能會如何實作時,她從資料表開始(留言表包含貼文 ID、作者 ID 與時間戳記,並按貼文建立索引),接著用游標分頁定義了清單端點,又說明了用戶端如何做樂觀渲染、POST 失敗時如何回滾,最後講了她會如何防止連續點擊造成重複發文。她把每一層都講得很精簡,面試官的追問也正好落在她提到的那些銜接處。

應該如何練習?即時助手能在哪裡派上用場?

把追蹤過程大聲練習出來。挑一項你每天都在用的應用程式裡的功能,從資料庫結構一路講到畫面,然後再來一次,這次加入一個故障:API 變慢了、寫入只部分成功了、使用者在請求過程中被登出了。可以錄下自己的講解,也可以在 AI 模擬面試中練習,它會根據你說出的答案追問下去。

在真實的面試環節中,SubcueAI 針對 macOS 與 Windows 的桌面應用程式,可以在面試規則允許協助的情況下,轉錄面試官的話並為設計題與行為面試題建議回答結構;Chrome/Edge 擴充功能涵蓋瀏覽器分頁通話,iPhone 應用程式則能監聽在另一台裝置上播放的通話。誠實的界線在全端面試中格外重要:打造功能與寫程式環節通常在共享螢幕上進行,共享螢幕上的一切都是可見的,因此這類環節不在協助範圍內。有監考的線上測驗與公司管理裝置同樣不在範圍內。設定方式請見使用教學。

常見問題

全端工程師面試常見的問題有哪些?

預計會遇到關於 API 設計與版本管理、分頁、冪等請求、從登入表單到資料庫的身分驗證、用戶端與伺服器端驗證、N+1 查詢,以及除錯一項在瀏覽器與資料庫之間某處出錯的功能等問題。

全端面試會包含 LeetCode 風格的題目嗎?

很多流程會包含一輪資料結構題,但全端面試更著重實際任務:打造一項小功能、修復現有程式碼庫中的 bug,或是設計一項橫跨用戶端與伺服器端的功能。

準備全端面試該主攻哪個技術堆疊?

職缺說明裡寫的那個。面試官更在意你能否講清楚請求流程、狀態管理與資料建模,而不是你用的具體框架,不過用公司所用的技術堆疊寫程式,能減少打造功能環節中的摩擦。

全端面試比前端或後端面試更難嗎?

只是更廣而已。你需要能跨層推理,並說明每個銜接處的取捨;單一層面深入到什麼程度取決於團隊,所以要看職缺說明,判斷這個職位更偏向哪一端。

全端面試中可以使用 AI 助手嗎?

在規則允許的情況下,SubcueAI 可以在對話類與設計類環節轉錄面試官的話,並建議回答結構。共享螢幕寫程式、錄製或有監考的測驗,以及公司管理裝置都不在使用範圍內。

相關問題

← 更多關於 依職位與主題分類的面試問題