在我们的软件开发方法中,我们旨在为主要版本实现以下目标
我们使用类似于 unstable_someFeature
的未来标志将新功能引入当前版本。您可以在 vite.config.ts
文件的 Remix Vite 插件 future
选项中指定这些标志
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
选项提供未来标志
一旦不稳定的功能达到稳定状态,我们将删除特殊前缀,并将该功能包含在下一个次要版本中。此时,API 的结构在后续次要版本中保持一致。
这种方法使我们能够与早期采用者协作改进 API,在不影响所有用户的情况下在不稳定阶段进行必要的更改。然后,稳定版本从这些改进中受益,而不会造成中断。
如果您正在使用标有 unstable_*
标志的功能,则务必查看每个次要版本的发行说明。这是因为这些功能的行为或结构可能会发生变化。在此阶段您的反馈对于在最终发布之前增强功能非常宝贵!
当我们引入重大变更时,我们会在当前主要版本的上下文中进行,并将其隐藏在未来标志之后。例如,如果当前版本是 v2
,则可以将重大变更放在名为 v3_somethingDifferent
的未来标志下。
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_*
未来标志,则过渡到 v3
理想情况下不应需要对代码库进行任何更改。unstable_*
标志的形式出现。这些标志可能会在次要版本中进行修改。一旦它们成为 v3_*
未来标志,相应的 API 将被确定,并且不会再更改。我们的开发策略侧重于逐步采用功能和主要版本的无缝升级。这使开发人员能够有选择地集成新功能,从而避免在版本转换期间进行大量的代码调整。通过 unstable_*
标志引入功能,我们与早期采用者协作改进 API,同时确保稳定版本受益于增强功能。通过使用 v3_*
标志仔细管理重大变更,我们提供了逐步采用变更的灵活性,从而促进了主要版本之间的更平稳过渡。虽然这增加了开发 Remix 框架的复杂性,但这种以开发人员为中心的方法极大地简化了使用 Remix 的应用程序开发,最终提高了软件质量和(希望!)开发人员的满意度。