开发者社区 > 云原生 > Serverless > 正文

请问大家怎么处理云函数代码复用率的问题?比如我封装了一个工具类,多个云函数都有用到,每个云函数我都得

请问大家怎么处理云函数代码复用率的问题?比如我封装了一个工具类,多个云函数都有用到,每个云函数我都得复制一便。后期工具类每新增一个方法,我还得挨个新增一遍吗?

展开
收起
云原生那些事 2023-04-23 10:03:00 266 0
4 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    处理云函数代码复用率问题,可以通过封装公共代码、提取重复逻辑等方式来实现。具体建议如下:

    抽象公共方法,封装工具类:将云函数中常用的方法抽象出来,封装成一个工具类,使其成为一个可以重复使用的资源,并集中存放在某个指定目录下,例如一个公共库。公共方法 需要考虑实现的功能、可扩展性以及复用性等因素。

    代码库的命名规范:建议命名规范,以保证不同云函数的代码行数一致,提高代码可维护性。可以借鉴类库的命名规范比如阿里云SDK,spring等。

    依赖管理工具:可以使用依赖管理工具来管理公共库之间的依赖,例如阿里云云原生使用Node.js,可以使用npm来管理公共模块之间的依赖。

    4.定期维护刷新: 定期提醒开发人员维护公共代码库,并在需要时更新其中的版本。

    通过封装可复用的代码,可以减少代码复制和粘贴的操作,并且随着公共方法的增加和修改,只需要更新一份代码库,即可让几个云函数共享这个更新后的工具类。这样可以大大提高代码复用率、减少维护成本。

    2023-04-23 18:38:34
    赞同 展开评论 打赏
  • 月移花影,暗香浮动

    代码复用率较低通常是代码设计和架构不合理或重复开发造成的。为了解决这个问题,我们可以采取以下方式来提高代码复用率:

    1. 抽象出通用工具类或函数:像您提到的工具类,我们可以将其抽象出来,以便于多个云函数公用。将通用函数集中在一个文件或多个文件中,然后其他云函数中通过导入这些文件来使用这些通用函数。

    2. 将通用函数打包成一个包:如果某些通用函数需要依赖第三方库或其他组件,则可以将它们打包成一个包(可以上传到 pip 或者自己的私有仓库),在需要的地方使用 pip 安装。

    3. 使用serverless架构:如果您使用的是 serverless 框架,例如 Flask、Django、ExpressJS 等,可以在这些框架中使用 middlewares 、 blueprints等方式来实现功能复用。

    这些方式都可以帮助我们提高代码复用率,以达到更加高效、优雅的代码编写和维护。

    2023-04-23 14:28:18
    赞同 展开评论 打赏
  • 云函数代码复用率的问题可以使用以下几种方式解决:

    1. 将工具类封装为独立的模块或插件,通过npm或者其他方式发布到npm或者其他仓库,然后在云函数中引入。这样,当工具类新增方法时,只需要更新模块或插件即可,不需要修改每个云函数的代码。

    2. 将工具类封装为云函数模块,然后在其他云函数中引用该模块。这样,当工具类新增方法时,只需要更新云函数模块即可,不需要修改每个云函数的代码。

    3. 使用云函数框架,例如egg.js、koa.js等,将工具类封装为中间件或插件,然后在云函数中引入。这样,当工具类新增方法时,只需要更新中间件或插件即可,不需要修改每个云函数的代码。

    不同的云函数服务商可能对代码复用有不同的限制,例如阿里云函数计算支持使用npm包、云函数模块、本地依赖等方式进行代码复用,而腾讯云函数则支持使用层(Layer)的方式进行代码复用。因此,需要根据不同的服务商提供的功能进行选择。

    2023-04-23 13:32:05
    赞同 展开评论 打赏
  • 可以多个fc调用一个fc,可以使用应用,按地区的。

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-04-23 10:17:25
    赞同 展开评论 打赏
问答地址:

快速交付实现商业价值。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载