backend

後端工程師面試考什麼 — Load Balancer vs. Reverse Proxy vs. API Gateway vs. HAProxy

後端工程師在日常工作或面試中,常常會遇到以下幾種技術與工具:

  • Load Balancer
  • Reverse Proxy
  • API Gateway
  • HAProxy

這些技術的共通點是它們都處於承載流量的第一線,但在用途上卻各有不同,因此容易產生混淆。

本文將釐清這些技術與工具的差異,以理解它們各自的功能與應用場景,避免常見的誤解。

Posted on  Sep 11, 2024  in  後端面試準備  by  Amo Chen  ‐ 5 min read

後端工程師面試考什麼 — 從 Hashing 到 Consistent Hashing

分散式快取環境中,十分有可能會碰到需要找到對的 cache server 取得 cache 的情況,畢竟問錯 cache server 不僅拿不到 cache,還十分可能對後端資料庫造成壓力。

所以面試時如果有涉及快取系統架構的問題時,基本的 hashing 或者進階的 consistent hashing 也是必須了解的概念!

本文將介紹 Hashing 與 Consistent hashing 2 種技術,並以實際的 Python 程式碼揭開它們的神秘面紗!

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

後端工程師面試考什麼 — 限流機制 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

理解 Python 後端技術: ASGI (Asynchronous Server Gateway Interface) — WSGI 的繼承者

大家或多或少應該都聽過近年來熱門的 Python 框架 FastAPI,它其中一個特點是支援 WebSocket 。

WebSocket 與 HTTP 的不同之處在於, HTTP 是單次要求單次回應的協定,而 WebSocket 是 1 種長期連線技術,允許多次的客戶端與伺服器端互動事件發生,這意味著應用需要能夠處理持續的雙向通訊,而不僅僅是處理單一的要求和回應。

談到這裡,不知道你是否會好奇為什麼 FastAPI 能夠同時支援這 2 種截然不同的協定?

這一切都與 ASGI 脫不了關係!

本文將介紹 ASGI (Asynchronous Server Gateway Interface) ,這個被稱為 WSGI 繼承者(successor)的規範,以及 ASGI 如何賦予 FastAPI 同時支援 HTTP 與 WebSocket 的能力。

Posted on  Jun 2, 2024  in  Python 程式設計 - 中階  by  Amo Chen  ‐ 10 min read

理解 Python 後端技術:從 CGI 談到 WSGI, uWSGI 與 uwsgi

開發 Flask, Django 等後端應用時,最後一定會遇到部署的問題,這些框架多半告訴我們要使用 WSGI HTTP server 部署,例如 gunicorn, uWSGI 等等都是一時之選。

但你有想過為什麼要使用 WSGI HTTP server 嗎?你理解什麼是 WSGI 嗎?跟 uWSGI 之間又有什麼差異?(這些其實也是面試 Python 後端工程師時常見的問題)

本文將從 CGI 開始,一路認識 WSGI, uWSGI 以及 uwsgi, 把各種常見的問題都釐清!

Posted on  May 29, 2024  in  Python 程式設計 - 中階  by  Amo Chen  ‐ 9 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