本文以創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際授權釋出
讀者您好
農曆春節即將到來,「帶您讀源碼電子報」在此先祝福各位讀者蛇年事事順利、健康快樂,蛇麼都有、蛇麼都順、蛇麼都行。
這一期將會是農曆春節前的最後一期,春節過後再和各位讀者見面。
新春快樂!
🔹n8n
n8n 是一款開源的工作流程自動化工具,支援多種應用整合,使用者可透過圖形化介面設計自動化流程,並能自行部署以保障資料隱私,也支援撰寫自訂 JavaScript 程式碼,滿足進階需求。
🔹TigerBeetle
TigerBeetle 是一個專爲為金融級應用打造的高性能資料庫。強大的水平擴展能力,能輕鬆應對交易量暴增。具備 ACID、低延遲特性,輕鬆搭建高性能金融應用。
🔹vcpkg
vcpkg 是一個免費且開源的工具,可協助 C/C++ 開發人員輕鬆管理套件。它可以在 Windows、macOS 和 Linux 上運行,並支援多種建置系統,如 CMake 和 MSBuild。透過 vcpkg,開發者能輕鬆地為專案安裝和管理函式庫、控制相依性版本,甚至自行建立並發佈套件,它也提供二進位快取與離線支援等功能。
🔸結構化編輯器的發展歷程
EYG 是一個正在開發中的實驗性專案,目標是打造更有效率的程式語言與工具。它的主要特色在於使用結構化編輯器(structural editor),將程式碼視為抽象語法樹(AST)或類似結構,而非一般的文字序列,並能在手機、電視等多種裝置上運行。這種做法能避免產生不正確的語法,也能即時提供型別檢查功能,讓撰寫與理解程式碼更加直觀。
在最早的嘗試中,EYG 直接把整個 AST 呈現給使用者,透過鍵盤來操作樹狀結構,雖然概念清楚,但實際使用起來較為複雜。後來又嘗試類似文字編輯器的方式,讓使用者可以用方向鍵移動游標,可是要同時確保不會出現非法輸入,維護成本仍然很高。最後,開發者選擇在內部維持一個簡化的 AST,並在外部建立專門的結構來顯示與操作,既保留了程式結構的正確性,也兼顧了使用上的直覺性。
為了讓更多人能輕鬆上手,EYG 的編輯器新增了圖示化的操作介面,可用滑鼠、觸控或遙控器等方式互動,也同時支援鍵盤快捷鍵。未來,EYG 將持續改進並加入更多功能,例如支援外部套件與提供更完善的錯誤處理。
🔸運用快照測試掌握程式變動
作者 Adrian Sampson 在這篇文章中介紹了一種名為「快照測試」的測試方法,這個方法的核心概念是將輸入檔與對應的輸出檔一同存放在版本控制系統內,透過比對輸出檔內容的差異來檢驗程式行為的變動。由於測試建置過程簡單且容易擴充,能有效提升測試的覆蓋率。
作者以自己團隊打造的 Turnt 工具為例,示範如何將輸入檔與輸出檔配對,並透過指令檢查二者是否一致。若需要更新測試結果,只需執行指定指令來產生新版本的輸出,再比對差異以確認修改內容是否合理。這種方式能減少撰寫測試的負擔,同時也能追蹤程式行為的細微變化。
快照測試的好處在於簡化撰寫測試流程,並維持以文字為基礎的介面,讓檢視與維護更為方便。除了 Turnt 之外,也有其他工具能提供類似功能,例如 LLVM 的 lit 和 Rust 的 insta 等,這些工具都遵循相同的原則:將整個輸出視為測試規格,以維持程式的穩定性並方便追蹤任何可能的變動。
以上就是本期的內容,喜歡的話請給❤️,分享或轉寄本電子報給有興趣的朋友。如果您有想要介紹的開源專案,也請來信與我們分享,或是在 X (前 Twitter) 留言給我們,感謝!