文章

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

你知道 asyncio 的 event loop 是怎麼 loop 的嗎?談 event loop 如何處理 I/O 工作

在「你知道 asyncio 的 event loop 是怎麼 loop 的嗎?談 event loop 的排程與執行」一文中,我們談了 asyncio 是如何進行工作排程與執行工作,不過沒有提到它如何處理 I/O 工作的細節(例如網路傳輸)。

本文將從知名 ASGI Web Server 開源專案 uvicorn 開始,搭配 Python asyncio 官方文件與簡單的範例,一步步介紹 event loop 是如何處理 I/O 工作。

Posted on  Jul 11, 2024  in  Python 程式設計 - 高階  by  Amo Chen  ‐ 8 min read

AI 協作軟體開發親身經驗分享

軟體開發進入 1 個只要有想法、有行動力就能實現的新時代。

藉著 LLM 的幫助,跟過程不斷試錯改進,讓就算不是前端工程師的我,也能夠跨越技能鴻溝,打造接近心中樣貌的番茄鐘!(其實也呼應我們之前提到的每個人會因為 AI 而守備範圍變廣)

Posted on  Jul 8, 2024  by  Amo Chen  ‐ 3 min read

從 Python 的 random.shuffle() 學 Fisher-Yates Shuffle / Knuth Shuffle 演算法

最近接觸了一些牌類遊戲的開發,發現如何洗牌也是 1 個學問,所以特別查了一個重要的演算法 Fisher-Yates Shuffle / Knuth Shuffle ,發現 Python 的 random.shuffle() 也使用相同的演算法實作,所以特別將 Fisher-Yates Shuffle / Knuth Shuffle 實作細節與視覺化做出來,希望可以讓不熟悉的人也能迅速上手。

Posted on  Jul 4, 2024  in  Python 程式設計 - 初階 , 演算法  by  Amo Chen  ‐ 3 min read

用 Python 學網路程式設計重要概念 — 從 asyncio 到 asyncio 混搭 Multi-process

「 asyncio 就是快」應該是許多人對於 Python asyncio 的認知,但實際上 asyncio 就跟眾多技術一樣並不完美,它也有不擅長以及適合它的應用場景,認識這些它的缺點與優點將可以讓你在不同的應用場景上做出正確的技術決策。

本文將使用 asyncio 高階函式帶大家體驗用 asyncio 開發網路應用的感覺,並打破「 asyncio 就是快」的迷思,從而看到 asyncio 的本質!

Last updated on  Jul 25, 2024  in  Python 程式設計 - 中階  by  Amo Chen  ‐ 10 min read

你知道 asyncio 的 event loop 是怎麼 loop 的嗎?談 event loop 的排程與執行

開發過 asyncio 相關應用的人,想必都知道 event loop 的重要性。

然而,你是否具體研究過 event loop 的程式碼,並了解它是如何運作的呢?

深入理解 event loop 不僅能幫助我們解決意料之外的問題,還能讓我們使用 asyncio 時更得心應手!

閱讀本文,讓我們跟 event loop 一起 loop 起來!

Posted on  Jun 20, 2024  in  Python 程式設計 - 高階  by  Amo Chen  ‐ 8 min read