在我们的软件开发方法中,我们旨在为主要版本实现以下目标
我们使用类似于 unstable_someFeature
的未来标志将新功能引入当前版本。您可以在 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
选项提供未来标志
一旦不稳定功能达到稳定状态,我们将删除特殊前缀并在下一个次要版本中包含该功能。此时,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 进行应用程序开发,最终将导致提高软件质量并(希望如此!)提高开发人员满意度。