公司的sass商城
、B端商城
给客户提供服务时,客户会提出各种定制化需求
。比如,有的客户想改网站各种meta信息、有的客户想接入自己的埋点SDK、还有各种各样的定制。
部分高复用的需求可以做成配置
,无需前端额外开发,但是像一些比较特别,而且都是小改动的,如何做到更优雅,对项目侵入最小呢?
面对各种定制化需求,你们是怎么做的呢?
公司的sass商城
、B端商城
给客户提供服务时,客户会提出各种定制化需求
。比如,有的客户想改网站各种meta信息、有的客户想接入自己的埋点SDK、还有各种各样的定制。
部分高复用的需求可以做成配置
,无需前端额外开发,但是像一些比较特别,而且都是小改动的,如何做到更优雅,对项目侵入最小呢?
面对各种定制化需求,你们是怎么做的呢?
不太清楚,没有遇到过类似场景。
我觉得可以写一个 vue
插件
app.use(CustomizedNeeds)
// other file
const CustomizedNeeds = {
install(app, options) {
// 没有需求,什么都不做
// 修改 meta 信息
document.querySelector('meta[name="description"]').setAttribute("content", desc);
// 接入 sdk
const script = document.createElement("script")
script.src = "src/to/sdk"
document.body.append(script)
}
}
看你定制化的程度,有答主提到的插件是一个办法,其他页面上的定制化通过细粒度拆分组件,然后用动态组件的方式处理,每个定制化部分都是一个新的组件,再就是分支,如果还是改起来很痛苦,那应该考虑一下产品定位是不是saas了
根据过往的经验没有哪一个技术方案可以一劳永逸的解决,建议就是把高频的需求组成一个基线版本,定制化的再定制化开发。遇到好的、可复用的功能回归到基线版本就行。
面对客户的定制化需求,尤其是一些小改动,可以采取以下几种策略来最小化对项目的侵入,同时保持代码的优雅和可维护性:
config.js
,在其中定义所有可配置的项,如metaTags
、analytics
等。这样,客户只需修改配置文件而无需改动代码,就可以实现定制化。通过上述方法,可以在保持项目核心代码的稳定性和可维护性的同时,满足客户的定制化需求。这样的策略有助于提高开发效率,降低维护成本,并为客户提供更大的灵活性。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
客户多,且提出各种定制化服务,肯定要提前设计好的,我虽然没做过这种,但觉得这样可行。
方案一:需要定制化服务的单独切分支部署
master
方案二:搭建低代码平台,模块化开发,拖拽组装成页面,每个模块都有版本的概念