網路上有大量的文章探討如何使用 Laravel Queue,可惜的是,它們通常就給個 Hello World 式的範例,並未深入探討。
本篇文章會從 Laravel Queue 的實際行為上進行分析,並且著重於「失敗」的案例。
網路上有大量的文章探討如何使用 Laravel Queue,可惜的是,它們通常就給個 Hello World 式的範例,並未深入探討。
本篇文章會從 Laravel Queue 的實際行為上進行分析,並且著重於「失敗」的案例。
FastAPI 是一款基於 Starlette 的 Web 框架,其在 API 的開發體驗令人驚豔。
註:FastAPI 官方宣稱,得益於 Starlette 及 Pydantic,它的效能甚至能夠與 Go 比肩;然而根據 TechEmpower Web Framework Benchmarks 在 2022 年 7 月 19 日的測試,其效能約為 278 及 279 名,事實上以效能而言它位於中下游的水準。
與 Laravel 這類包山包海的全能型框架不同,FastAPI 選擇了一條「微」框架的道路,它更像是 Gin(Go) 的設計:輕量、精簡,並且在有需要時讓開發者自行安裝。這種設計很大程度給予開發者自由,甚至連資料夾結構都沒有官方預設(如果願意的話,甚至可以只靠一個 app.py
或 main.py
就建構起整個 API 服務)。
然而最讓我感到驚豔的,非屬自動 API 文件生成功能。眾所周知,工程師是種「最討厭別人不寫文件,但又不喜歡自己寫文件」的生物,FastAPI 內建由 Pydantic Model 進行自動化文件生成的功能,這能夠很大程度上減少撰寫文件的工作量。
Wireguard 是一款開源的 VPN 的程式及協定,基於 Linux Kernel 實現,相較於 OpenVPN 而言有更好的效能。
眾所周知,在 PHP 中 parse_url()
這個函式遲遲未支援 UTF-8,這導致一些英文、數字以外的 Host, Path, Query 及 Fragment 都會解析錯誤。
(psysh) >> parse_url('https://中文.台灣/你好嗎?我=很好&大家都很好#你呢?')
=> [
"scheme" => "https",
"host" => b"ä¸æ__.å_°ç_£",
"path" => b"/ä½ å¥½å__",
"query" => b"æ__=å¾_好&大家é_½å¾_好",
"fragment" => b"ä½ å_¢ï¼_",
]
這個問題直到 PHP 8.1 仍未見改善,這也是促使我寫下本文的動機。
我雖然反對在軟體工程師面試時考白板題,不過對於 Leetcode 的態度就沒這麼反對。
偶爾會解一下 Leetcode Daily 作為工作前的醒腦準備,也不失為一種生活樂趣。
Redis 在處理字串資料時,另外實現了一個名為 SDS (Simple Dynamic String)的資料結構。
作為休閒活動,我偶爾會在 OGS 上跟人下棋。不過前陣子因為家裡網路不太穩定,所以索性就自己弄了一套單機的下棋環境。
儘管這幾年因為 AlphaGo 的關係,圍棋這項歷久不衰的競技又再一次被推向話題討論的浪尖,然而實際上它的 Open Source 資源是相對稀缺的。
註:圍棋其實有不少付費軟體,但實際用起來很多都效果不佳,有些 AI 對奕的實力甚至比數十年前的 GNU Go 還差。
Google reCAPTCHA 是一個人類行為驗證機制,用於阻止爬蟲或類似的機器行為。
就目前為止,除了 Google 官方的 SDK 之外,幾乎找不到針對 reCAPTCHA enterprise 實作的 PHP 套件(大多都是 reCAPTCHA v2 及 v3)。