GO怎么降低圈复杂度


这篇“GO怎么降低圈复杂度”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“GO怎么降低圈复杂度”文章吧。首先咱们编码前一定会去捋清楚基本的需求,设计,以及实现流程,对于需要用到的工具我们会对代码结构进行分层例如一些与业务主逻辑没有什么关联的功能就可以独立封装,便于维护和使用,例如:工具包(例如语言中的各种计算,数据处理,加解密等等)基本的 rpc 通信http 相关的各种通信方式基本的中间件,拦截器,打点接口延时等等数据库操作(独立封装 DAO 层提供出来)缓存操作消息队列…等等尽可能的将这些单独的功能模块拆解出去,独立出来,单独维护对于那种没有必要同步的功能,完全可以通过异步化来进行处理,异步的话相信你会很容易想到消息队列来进行实现自然实际项目中你能够看到最开始可能也会这样去做,但是随着业务越来越复杂,这些独立的模块被各种包进行使用,甚至有的开始慢慢的弄成定制化的方式例如对于一个基本的开户流程,我们或许可以在代码中看到第一步做什么,第二步又做什么,第三步… ,然而每一个大步骤下面还有各种小步骤,每一个小步骤也会有自己的复杂逻辑虽然有了基本的封装,但是使用的时候,可能还是会写到哪,需要啥就去按需定义啥最终就会看到一个函数上千行,让你去阅读和维护,你内心能不拒绝吗吗?发现对模块进行独立封装还是不太够,代码里面太多的冗余代码,这个时候咱们就可以使用接口来做抽象使用接口来做抽象的话,相当于是提前考虑好这一类的业务需要去考虑哪些问题,需要注意哪些场景,需要实现哪一些接口不同的对象各自去实现自己的内容就可以了,单独去维护自己的对象例如上面的 A 系统的开户流程这仅仅是一个 demo,对于一个开户 interface{} 来说,A 系统可以去实现,B 系统仍然也可以去实现,各自完成自己的内容,例如这样对于优化代码的话,我们就可以将上述的一些实现步骤,放到这个接口中来即可咱们定义接口,更多的是去规范流程和便于维护,这样还可以让我们的程序往高内聚低耦合方面去靠,不同的对象之间,完全是安全的,自己玩自己的一套,只不过遵循的规范是一样的的圈复杂度也可以理解为条件复杂度,是一种用来衡量代码复杂度的标准例如一些没有判断语句的代免费云主机域名码,圈复杂度就是 1如果是 if…else 那么圈复杂度就是 2 ,简单的就可以理解为涉及到判断条件的数量,那么就 +1例如有这样的代码那么就如上demo ,来看,圈复杂度就是 4 ,其中有 3 个判断条件和一个默认的正常顺序,因此是 3 +1 = 4这个时候,我们可以如何降低圈复杂度呢?我们完全就可以使用表格的方式,访问数据直接访问表格就可以了,尽可能的减少这些判断条件,例如我们就可以这样来写这种方式,是不是就可以将圈复杂度降低到 1 了呢?而且看起来也优雅了很多以上就是关于“GO怎么降低圈复杂度”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注百云主机行业资讯频道。

相关推荐: vue如何实现点击某个div显示与隐藏内容功能

这篇文章主要介绍了vue如何实现点击某个div显示与隐藏内容功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue如何实现点击某个div显示与隐藏内容功能文章都会有所收获,下面我们一起来看看吧。1.首先在所需要隐藏或显示的内容d…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/27 16:19
下一篇 02/27 16:19

相关推荐