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);

这两种代码组织方式那种更好呢?为什么

阅读 2.5k
4 个回答

第一种更灵活吧

如果你自己维护的代码就用第一种方式,如果你要写第三方api就用第二种方式

综合考虑,第一种组合式写业务逻辑,会更灵活,也容易安排思路。
写代码本质上就是搭积木,如果一个模块内部逻辑万年不变(写好了基本不会改动),那么它就应该对外一个函数,完全内部逻辑隐藏成一个函数api,比如微信登录,其中涉及了微信code的获取,请求微信服务器,检查系统账号的存在性,是否自动创建账号,手机号是否绑定,微信登录有效期等等,一般来说由于微信登录给的API不会有变动,所以微信登录可以做成一个函数,隐藏所有内部细节,适合用第二种。

如果是商品页面的购买按钮和商品发布,就适合用第一种,存在各种库存检查,单号查询验证,折扣方案检索和检查,优惠券使用,发货订单号生成,接入新的第三方支付,接入积分支付系统,接入他人代付系统,接入秒杀系统,虽然也需要稳定,但是显然需要更灵活地修改逻辑,以双11上架秒杀系统,双11过后下架秒杀系统。

阿里技术:一文教会你如何写复杂业务代码!(可以看看这个)

推荐使用纯函数的方式,第一种可以将业务逻辑解耦,达到可复用的效果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题