漫画 | 只敢私下吐槽,不敢拿上台面,这才是微服务的灾难!

共 1009字,需浏览 3分钟

 ·

2021-08-14 16:11

0596e5226ee84f4304ede498b1743705.webp

公司的高层对这个通用语言用得很好

3bdd8fe00fe962546b1db4084d0bf38e.webp

到了编程的阶段,需要转化成代码,要用英文来表达了。


从中文到英文的转换,往往丢失一部分业务信息,产生一部分信息噪音,或者发生概念上的偏移。

0f9d89416dc1cf97401b629498fcef98.webp


很快, 在不同的系统,甚至同一个系统中,针对同一个业务概念存在三种以上不同的词汇。

3ae33b3738a4a5c117801432fef98a11.webp

模块间负责人探讨新功能的实现时,两边的沟通变得驴头不对马嘴

66cb5d9528da9f4edcc161d603d13e3f.webp

所以当你接手到这样的系统时,读代码的时候肯定是会骂娘的,但是读完之后也确实没有什么办法。


只要你负责维护,就持续地接受这种痛苦吧。

a10fb5fba28f1689248a2afc1327bbe3.webp

一个公司业务由多种语言实现,理论上可以吸引各种人才, 也会提供一个互相掐架的竞技场

0453eca9cd525b7a111eff1a02b87565.webp

实际上,在现行的微服务架构下,除了业务本身的研发人力投入之外,支持系统也有很大的工作

98304e2aa57979b34c737daf24e9d807.webp

如果每个服务都是一种技术栈,好家伙,一个轮子得造五遍。


对研发来说,可能也就是熟悉了五种语言的语法,并且写出了五种风格各异的 bug。

29daa2f636b2641938aa54ff54730c4c.webp


虽然公司对程序员的要求是可以随意地在不同语言技术栈之间切换,但程序员一般都有自己执著的美学偏好。

1f183c2ab288c8e6415c81f0c41c3fdc.webp

三个月后,张大胖离职了。


对于一个公司来说,不应该听信那些微服务布道师的胡言,任由公司内的技术栈随意分裂,最终在公司调整或者变化的时刻才发现积重难返。


545e37298fb7066d089ab548e2719726.webp

该怎么把业务拆分成微服务呢?目前业界的微服务方法论一般也没有固定的套路。


在大企业中,顶着“架构师”头衔的这些架构师们根本就不会管任何实现上的细节。


相对较大的业务需求,一般也是一线的开发商量怎么进行实现上的拆分。想要达到合适的职责划分,需要多个合作方的所有人都靠谱才行。

f82cb2a8b4ec7c186b5816dc8dfced68.webp

于是,总会有些奇葩出现。


8899840635c93749566416af455fef68.webp

除了这些无法沟通的程序员,还有些奇葩的领导。

09f538074a68b140451efdd45c90baff.webp


这样造成的结果是,所有逻辑的分布都具有不确定性,即薛定谔逻辑。


在你把所有模块的代码都看过之前,你是没法确定哪部分逻辑在哪个模块里的。

09c5ca524168ec7ac516a626d9aaadc0.webp

当模块发生负责人离职或者工作交接时,所有的开发都会进入非常痛苦的阶段,我只看自己的模块,根本没法理清全局的业务逻辑!


8f11d86534be8bded58c3e0345442353.webp


既然术语不统一,逻辑四处分散,难道不能重构一下吗?


在单体时代,重构有一套完整的方法论和最佳实践。

3bca6cd1605ff1e3478395c0dbe2bcdf.webp

但演化到微服务的时代,原来很简单的重构就没那么简单了, 因为原本在代码中的强联系变成了分布式系统中的弱联系

9ea7ec6a06a3353582c1e6eba4a1ddab.webp

当然,想重构也是可能的, 各个模块需要协调一致才可以,并且代价极为昂贵。

7c9f7d911fea948908c9a095f8259121.webp


如果涉及到办公室政治,想重构就更难了!

2734b3ed3f8d04f94f90b9bd56ba4303.webp

重组是不可能重组的,最终的结果是,本来是一个人两天的活,生生堆了4个人,干了2个星期。


(完)


end





浏览 30
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报