降低代码的圈复杂度——复杂代码的解决之道

本文代码示例以Go语言为例

0. 什么是圈复杂度

可能你之前没有听说过这个词,也会好奇这是个什么东西是用来干嘛的,在维基百科上有这样的解释。

Cyclomatic complexity is a software metric used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program’s source code. It was developed by Thomas J. McCabe, Sr. in 1976.

简单翻译一下就是,圈复杂度是用来衡量代码复杂程度的,圈复杂度的概念是由这哥们Thomas J. McCabe, Sr在1976年的时候提出的概念。

继续阅读降低代码的圈复杂度——复杂代码的解决之道

大白话聊聊微服务——人人都能看懂的演进过程

这篇博客的本意是希望看到这篇文章的读者能够很轻松的理解我想表达的意思。但程序向的分享经常会不经意间就贴上了代码,很可能就会让人看的很懵。而且我认为分享一个东西,只有对方真正明白了其中的逻辑,才是有意义的分享。所以接下来我会尝试用大家都能理解的语言来聊一聊”微服务“。

【写在前面】

那么,什么是微服务呢?你不一定知道微服务,但是你一定知道麦某劳,而且知道麦某劳有个甜品站。你可能会问,甜品站和微服务有什么关联呢?

让我们先假设不把甜品站独立出来,而是普通的麦某劳店。经营一段时间你会发现,这个地方虽然人流量很大,也有顾客,但是顾客的需求80-90%都集中在甜品,导致甜品供不应求,而其余的菜品则没多少人购买。但是把这个店关了吗?那也不行,始终是有流量的。

所以综合考虑下来,方案就是把甜品这个“模块”从整个店中独立出来,单独对外提供服务。这样既能保住流量,也能避免浪费。

继续阅读大白话聊聊微服务——人人都能看懂的演进过程