相关文章
[Golang]一个工单系统的重构过程-FP vs OOP
2024-11-10 17:08

背景

[Golang]一个工单系统的重构过程-FP vs OOP

组内的数据管理平台承担着公司在线特征数据的管理工作。开发通过提交工单接入我们的数据系统。工单模型在设计之初只考虑到了一种类型的工单(新特征的申请),对于工单生命周期的每个节点分别用一个接口去实现。随着业务迭代,还有一些操作也需要通过走工单让管理员审批执行。此时最初的工单模型不能满足需求,此时为了让系统先用起来,我们的做法是写单独的接口去实现...这样虽然能用,但是导致后端代码里多出来了很多API。趁着过年前几天业务不多,我对工单部分代码进行了重构,希望达到的效果是后续不同类型的工单复用同一套工单流程,同时减轻前后端交互的成本。

需求分析

经过抽象,对于我们的系统不同类型的工单,工单的生命周期都是一样的,工单只有这些状态:

工单这几个状态要执行的操作差别是很大的,所以分别用不同接口去实现每一种工单状态,这其中代码的复用不多。工单状态和执行操作如下图:

前面说到,在系统之前的代码里面不同类型的工单分别用不同的API实现,看代码可以发现,不同类型的工单在生命周期的一个节点里面做的操作是类似的。比如对于新建工单,重构代码之前操作是这样:

增加工单种类之后,新建工单操作是这样:

其中校验前端参数、调用工单实例、发送通知的代码都是可以复用的。只有工单操作这一块行为有所区别,工单操作简单抽象一下分为两种:

实现思路

考虑到前端同学的开发成本,这次重构复用之前的接口,在每个接口参数里面增加一项工单类型(worksheetType),根据工单类型,做不同的操作。

重构的思路有两种,一种是"函数式编程"(FP),另一种是"面向对象编程"(OOP)。这里晒出一张经典的图片,hhh...

实现对比

为了对比两种方式,分别实现了demo。OOP如下:

FP如下:

    以上就是本篇文章【[Golang]一个工单系统的重构过程-FP vs OOP】的全部内容了,欢迎阅览 ! 文章地址:http://yejunbin01.xhstdz.com/news/1656.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://yejunbin01.xhstdz.com/mobile/ , 查看更多   
最新文章
做seo为什么要从白帽seo做起
本人十三君跟着师父十二君做seo也有些时间了,从接触seo以来,发现一个有趣的现象:很多做seo的人员,尤其是新人总想着玩黑帽与
企业工信部备案提交教程(电子化备案)
一、教程目的 本教程主要针对首次备案过程中所需基本信息的填写说明。 (非经营性网站:只要是通过第三方支付࿰
伊金霍洛网站排名优化费用是如何计算的?
伊金霍洛网站seo优化百度搜索引擎关键词快速排名推广提升自然流量点击SEO优化师、网站设计师、梦想者您的流量获取专家“创新互联
【R9s(全网通)搜狗手机输入法下载】OPPO R9s 全网通搜狗手机输入法12.1.1免费下载
搜狗输入法,拥有超大中文词库,输入更加精准,智能。搜狗智能旺仔带你用表达,斗图,妙语,输入更加有趣。******特色功能******
57、曾正忠三部曲 《变化球 Breaking Ball》《迟来的决战 The Last Battle》《无胆狗雄 TATAMI》
水平有限,还望轻喷。\\\ ( 'ω' ) //// 相较去年,重心从挑选top10变成了尽量多列举一些作品,所以今年提及的漫画数量比较
微信公众号及服务号文章爬取
使用Python爬取公众号文章主要两种方法:通过爬取第三方公众号聚合网站通过微信公众平台引用文章接口微信传送门已被封杀,现存可
人工智能板块震荡:投资者应关注AI ETF与软件ETF动态
随着科技的不断发展,人工智能(AI)领域的投资持续引发市场的关注。根据最新市场数据,截至今日收盘,中证人工智能主题指数上涨
男科专题:宁波市男科医院排名更新,宁波普仁男科医院怎么样
男科专题:宁波市男科医院排名更新,宁波普仁男科医院怎么样?男科疾病常常困扰着男性的生活与工作,影响着他们的身心健康。因此
品牌升级前必须思考的5个关键问题
重塑品牌事关重大,改变现有的品牌名称或形象可能会非常冒险。但同时,品牌形象升级也可能恰恰是治愈品牌病痛的不二良方。当企业
城口SEO优化神器,企业线上崛起的利器揭秘
城口SEO优化推广软件,为企业线上崛起提供强劲助力。通过精准关键词优化、网站结构优化等手段,提升网站在搜索引擎排名,吸引潜
相关文章