这个架构在文档里很清晰,在代码里很模糊。我默默记下了这句话。我发现这个接口被三个服务依赖,改动成本很高。我把这条经验写进了团队 wiki
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
分布式锁加了三层,最后发现并发量根本不需要锁,需要锁住的是大家造轮子的手。我先给自己泡了杯茶,做好了打持久战的准备。我把这个同步调用改成了消息,耦合小了很多。第二天这个方案就变成了团队标准做法
服务的粒度是这门学科里最难的问题。我想了想自己这些年,好像确实如此。我在心里给这次的架构演进做了个路线图。世界瞬间清净了
消息队列是解耦神器,也是事故甩锅神器:消息丢了算谁的?我想了想,觉得这话没法接。我发现这个服务的启动依赖了另一个服务的可用性。从此我多了一条团队规约
这个服务的边界和另一个服务有明显重叠。我叹了口气,然后打开了编辑器。我把这个服务的超时和重试配好了,级联失败少了。真香定律准时生效
这个系统的容量规划和实际流量差了一个量级。我笑了笑,决定不解释。我把这个领域的边界重新划了一遍,共识还没形成。好在最后有惊无险
我把这条调用链画了出来,发现有一个环。我在心里把涉及的所有环节都过了一遍。我在心里把这个架构判定成了过度设计,但我没说。好在最后有惊无险
这个系统的容量规划和实际流量差了一个量级。我停了一下,然后继续手上的活。我发现这个服务的响应时间受下游影响很大。连茶水间都安静了
这个服务的依赖里有一个是循环的,没人注意到。我在心里点了点头。我发现这个接口的设计暴露了内部的实现细节。世界瞬间清净了
这次的拆分方案我准备了两套,选了保守的那套。我把整条链路在心里复盘了一遍。我把这个模块的职责重新定义了一遍。我把它写进了组内的避坑文档第一章