js编程范式的问题。
业务中遇到资源分配,资源计算的要求;先把资源计算出来,然后才能继续分配
// tool.js
export function executeResouce(arg) {
return resouce
}
export function assign (resouce) {
}
// 业务代码
const resouce = executeResouce(arg);
const resource = assign(resouce);
另一种方式
// tool.js
export function executeResouce(arg) {
return resouce
}
export function assign (resouce) {
const resouce = executeResouce()
// ...
return
}
// 业务代码
const resource = assign(arg);
这两种代码组织方式那种更好呢?为什么
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
第一种更灵活吧
如果你自己维护的代码就用第一种方式,如果你要写第三方api就用第二种方式
综合考虑,第一种组合式写业务逻辑,会更灵活,也容易安排思路。
写代码本质上就是搭积木,如果一个模块内部逻辑万年不变(写好了基本不会改动),那么它就应该对外一个函数,完全内部逻辑隐藏成一个函数api,比如微信登录,其中涉及了微信code的获取,请求微信服务器,检查系统账号的存在性,是否自动创建账号,手机号是否绑定,微信登录有效期等等,一般来说由于微信登录给的API不会有变动,所以微信登录可以做成一个函数,隐藏所有内部细节,适合用第二种。
如果是商品页面的购买按钮和商品发布,就适合用第一种,存在各种库存检查,单号查询验证,折扣方案检索和检查,优惠券使用,发货订单号生成,接入新的第三方支付,接入积分支付系统,接入他人代付系统,接入秒杀系统,虽然也需要稳定,但是显然需要更灵活地修改逻辑,以双11上架秒杀系统,双11过后下架秒杀系统。
阿里技术:一文教会你如何写复杂业务代码!(可以看看这个)
推荐使用纯函数的方式,第一种可以将业务逻辑解耦,达到可复用的效果。