interview

後端工程師面試考什麼 — 限流機制 Rate Limiter

Rate limiter 是後端領域中常見的一項技術,用於限制特定時間內的請求數量,或者限制使用者特定時間內的請求數量。對於提供 API 服務的公司或服務來說,後端伺服器通常都會加上 rate limiter,以防止系統被過於頻繁地使用,從而提升系統的穩定性。

也因此,如果在面試有對外提供 API 服務的公司的後端工程師職缺時,有不小的機率會被問到如何保護 API 被過於頻繁的呼叫。

本文將介紹 4 種常見的 rate limiter 方法,並且實際以 Python 實作一遍,藉此加深我們對 rate limiter 的理解。

Posted on  Jul 22, 2024  in  後端面試準備  by  Amo Chen  ‐ 8 min read

後端工程師面試考什麼 — OAuth 2.0 與 PKCE

現代網路應用日趨複雜,不大可能一項服務包山包海,更常見的情況是應用程式透過整合的方式,存取使用者在其他服務的資源,以進行整合或者提供進階的功能。

所以後端工程師很常會碰到 OAuth 2.0 這項標準,例如常見的 Google Sign In, Facebook Login 都有使用 OAuth 2.0 這項標準。

可以說 OAuth 2.0 是後端工程師的必修課題之一。

Last updated on  Jul 20, 2024  in  後端面試準備  by  Amo Chen  ‐ 12 min read

後端工程師面試考什麼 — 快取模式篇(cache patterns)

實務上快取有多種模式(patterns),每 1 種都有適合的應用場景,大多數後端工程師應該只對 Cache Aside 快取模式相對熟悉,較少接觸其他種模式,不過實際面試時也可能被詢問到 Cache Aside 以外的模式,原因在於 Cache Aside 模式沒辦法在所有的應用場景都完美運作,因此需要對常見的 Cache 模式有基本認識,才有辦法提出合理的解答。

本文將介紹 6 種快取模式。

Posted on  Jan 17, 2024  in  後端面試準備  by  Amo Chen  ‐ 4 min read

後端工程師面試考什麼 - CORS (Cross-Origin Resource Sharing)

隨著前後端技術演進,姑且不論是否採用微服務(microservice)架構,前後端分離成為越來越常見的開發模式,例如前端採用 NEXT.js 等框架,或者編譯成靜態網頁(static site)部署在雲端,所需要的後端 API 功能則是呼叫部署在另一個網域(domain)的伺服器,例如下圖:

不過採用此種前後端分離的架構,就需要理解何謂 CORS(Cross-Origin Resource Sharing),才能讓前端正常運作。

p.s. 通常有用到前後端分離架構的公司,就有可能問到何為 CORS 。

Posted on  Apr 19, 2023  in  後端面試準備  by  Amo Chen  ‐ 5 min read

後端工程師面試考什麼 - SQL 篇

後端工程師日常不僅要跟程式、作業系統、架構搏鬥,也要跟資料庫(database)打交道。

資料庫的類型也隨著時代演變越來越多,除了 NoSQL, In-memory database 之外,面試過程最常聊到的還是關聯式資料庫(relational database management system),而且關聯式資料庫也是目前業界常見的資料儲存系統,各個公司無論規模大小或多或少都會有關聯式資料庫的存在,除此之外,關聯式資料庫也相當適合用以儲存交易(transaction)類型的資料。

因此操作關聯式資料庫需要用到的 SQL(Structured Query Language) 幾乎成為後端工程師面試時的必考題,而且考 SQL 的好處在於它是一項標準,無論你是 MySQL 還是 PostgreSQL 還是 MS SQL Server 的使用者,基本上都能夠用 SQL 進行交流。

本文來介紹經常會被問到的 SQL 面試問題吧!

Last updated on  Oct 17, 2023  in  後端面試準備  by  Amo Chen  ‐ 8 min read

後端工程師面試考什麼 - Lock 篇

在程式設計中,平行處理可能會同時訪問共享資源,這樣就可能導致共享資源的競爭與執行結果不一致等等問題。

為了避免這些問題,就需要使用 lock 進行同步,保證在同一時間只有一個執行緒或 process 能夠存取共享資源。

所以在面試中,許多面試官都會考面試者對於 lock 的了解和應用。常見的考題包括 lock 的原理、種類、常見問題和解決方法等。

了解 lock 的使用不僅僅可以應對相關面試問題,也有助於在實際開發中知道如何使用 lock, 以避免平行處理所造成的相關問題。

Posted on  Mar 29, 2023  in  後端面試準備  by  Amo Chen  ‐ 5 min read