技術原則
Fastify 框架及其官方外掛程式的每一個決策都遵循以下技術原則
- 在生產環境中「零」開銷
- 「良好」的開發人員體驗
- 適用於小型和大型專案
- 易於遷移到微服務(甚至是無伺服器)和返回
- 安全性和資料驗證
- 如果某個功能可以成為外掛程式,它應該會是
- 易於測試
- 不要 monkeypatch 核心
- 語義版本控制和長期支援
- 符合規範
生產環境中「零」開銷
Fastify 旨在盡可能減少應用程式的開銷來實現其功能。這通常是透過實現快速演算法和資料結構,以及 JavaScript 特有的功能來實現的。
鑑於 JavaScript 不提供零開銷的資料結構,此原則與提供出色的開發人員體驗和提供更多功能相悖,因為通常這些都會產生一些開銷。
「良好」的開發人員體驗
Fastify 旨在在其運作的效能點上提供最佳的開發人員體驗。它提供了一個出色的開箱即用體驗,並且足夠靈活可以適應各種情況。
例如,這表示禁止使用二進位附加元件,因為大多數 JavaScript 開發人員無法存取編譯器。
適用於小型和大型專案
我們認識到大多數應用程式都從小規模開始,並隨著時間的推移變得更加複雜。Fastify 旨在隨著應用程式的複雜性而成長,提供進階功能來建構您的程式碼庫。
易於遷移到微服務(甚至是無伺服器)和返回
您如何部署路由應該無關緊要。框架應該「正常運作」。
安全性和資料驗證
您的 Web 框架是與不受信任的資料接觸的第一個點,它需要充當您系統的第一道防線。
如果某個功能可以成為外掛程式,它應該會是
我們認識到 Node.js 的 HTTP 框架有無限多的使用案例。在單一模組中滿足這些需求會使程式碼庫難以維護。因此,我們提供鉤子和選項,讓您可以根據需要自訂框架。
易於測試
測試 Fastify 應用程式應該是首要考量。
不要 monkeypatch 核心
Monkeypatch Node.js API 或安裝會改變執行時期行為的全域變數,會使建構模組化應用程式變得更加困難,並限制 Fastify 的使用案例。其他框架會這樣做,但我們不會。
語義版本控制和長期支援
我們提供明確的長期支援策略,以便開發人員知道何時需要升級。
符合規範
如有疑問,我們會選擇相關規範定義的嚴格行為。