在我們的軟體開發方法中,我們旨在為主要版本實現以下目標:
我們會在目前版本中引入新功能,並使用類似於 unstable_someFeature
的 future flag。您可以在 Remix Vite 外掛程式的 future
選項中,於您的 vite.config.ts
檔案中指定這些旗標。
import { vitePlugin as remix } from "@remix-run/dev";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [
remix({
future: {
unstable_someFeature: true,
},
}),
],
});
remix.config.js
future
選項提供 Future Flags。
一旦不穩定的功能達到穩定狀態,我們會移除特殊的前置詞,並將該功能納入下一個次要版本。此時,API 的結構在後續的次要版本中會保持一致。
這種方法允許我們與早期採用者共同改善 API,在不穩定階段納入必要的變更,而不會影響所有使用者。然後,穩定版本會從這些改進中受益,而不會造成中斷。
如果您正在使用標有 unstable_*
旗標的功能,請務必查看每個次要版本的版本資訊。這是因為這些功能的行為或結構可能會演變。您在此階段的回饋對於在最終發布之前增強功能至關重要!
當我們引入重大變更時,我們會在目前主要版本的環境中進行,並將其隱藏在 future flag 後面。例如,如果我們在 v2
中,則重大變更可能會放在名為 v3_somethingDifferent
的 future flag 下面。
import { vitePlugin as remix } from "@remix-run/dev";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [
remix({
future: {
v3_someFeature: true,
},
}),
],
});
v2
行為和新的 v3_somethingDifferent
行為會同時共存。v3_*
future flag,則轉換到 v3
應該理想上不需要對您的程式碼庫進行任何變更。unstable_*
旗標開始。這些旗標可能會在次要版本中進行修改。一旦它們變成 v3_*
future flag,對應的 API 就會設定,且不會再變更。我們的開發策略側重於逐步採用功能和主要版本的無縫版本升級。這使開發人員能夠有選擇地整合新功能,避免在版本轉換期間需要進行大量的程式碼調整。透過引入 unstable_*
旗標的功能,我們與早期採用者共同改善 API,同時確保穩定版本從增強功能中受益。透過使用 v3_*
旗標仔細管理重大變更,我們提供了逐步採用變更的彈性,有助於在主要版本之間進行更順暢的轉換。雖然這增加了開發 Remix 框架的複雜性,但這種以開發人員為中心的做法大大簡化了使用 Remix 的應用程式開發,最終提高了軟體品質,並(希望!)提高了開發人員的滿意度。