相关文章
[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://ktsh.xhstdz.com/news/1656.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://ktsh.xhstdz.com/mobile/ , 查看更多   
最新文章
燕窝都什么价位的好一点,哪些性价比高及推荐价格区间?
燕窝自古以来便被誉为滋补圣品其丰富的营养价值与滋养功效,使得它成为了许多人追求健康的首选。面对市场上琳琅满目的燕窝产品消
深入比较Z-Blog与Typecho:哪款博客系统更适合你?
三、功能比较Z-Blog提供了丰富的功能,包括SEO优化、主题和插件支持等,用户可以根据需求进行个性化设置。其较强的插件库支持使
【优化求解】遗传算法求解岛屿物资补给优化问题【含Matlab源码 172期】
🚅座右铭:行百里者,半于九十。 🏆代码获取方式: CSDN Matlab武动乾坤—代码获取方式 更多Ma
竞争优势利器:利用推广排名优化碾压同行,脱颖而出
在竞争激烈的市场环境中,企业想要脱颖而出,获得竞争优势,至关重要。推广排名优化正是数字化时代下帮助企业实现这一目标的重要
药师解药 | 妊娠期胰岛素过敏怎么办,教你几招来应对!
据相关研究统计,胰岛素和胰岛素类似物在治疗中出现过敏反应的概率为0.1%到7.1%不等,注射部位反应发生率约为1.4%。胰岛素过敏原
圣邦微最新动态与技术发展,深度解析与SEO优化文章,圣邦微最新动态与技术发展深度解析及SEO优化攻略
本文关注圣邦微的最新动态与技术发展,提供深度解析并针对SEO优化。文章将详细介绍圣邦微的最新技术进展、产品更新以及市场策略
成品网站1.1.719:如何高效搭建企业与个人网站,提升用户体验与功能性能
成品网站1.1.719是一个针对网站开发和建站需求的产品版本,它为企业和个人用户提供了一个简单易用的解决方案,帮助他们快速搭建
文心一言APP无法连接网络
文心一言APP无法连接网络许多用户反映,他们所喜爱的文心一言APP无法连接网络。这款APP以其精选的古代文言文名句和现代文学名篇
谷歌收录秘籍:揭秘提交入口网址
谷歌收录提交入口:专业指南与重要性解析在当今数字化时代,互联网已成为信息传播与商业活动的重要平台对于网站运营者而言,确保
浅探webpack优化
由于前端的快速发展,相关工具的发展速度也是相当迅猛,各大框架例如vue,react都有自己优秀的脚手架工具来帮助我们
相关文章