屎山代码怎么练成的

前言

代码库规模 说到屎山代码,肯定下意识认为是小白,写的修修补补,漏洞百出的代码。但是你见过专业人士写的屎山吗?没见过,来见识一下过度设计带来的屎山一角:ES的delete(update/search都一样)流程 在client阶段抽象模板设计无可厚非,当进行action.excute时,你就会发现越来越觉得味来了:

js 复制代码
┌───────────────────── 路径A ─────────────────────┐
│ TransportDeleteAction                           │
│         ↓                                        │
│ TransportAction.execute()                       │
│         ↓                                        │
│ TransportSingleItemBulkWriteAction.doExecute()  │
│         ↓                                        │
│ 调用 bulkAction.execute()  ←─ 这里是交接点,不是循环!
└─────────────────────────────────────────────────┘
                                                    ↓
┌───────────────────── 路径B ─────────────────────┐
│ TransportBulkAction.execute()                   │
│         ↓                                        │
│ TransportAction.execute()                       │
│         ↓                                        │
│ TransportAbstractBulkAction.doExecute()         │
│         ↓                                        │
│ 真正的批量处理逻辑                             │
└─────────────────────────────────────────────────┘

栈的深度翻了一倍。为了模板而模板,但是在业务逻辑上根本没关系的,都抽象在一起,封装为bulk,再调delete流程。它们就不应该抽到TransportAction中,这都是技术债累积。当zab,raft大行其道的时候,ES仍旧zen,试图证明自己,扭扭捏捏修补zen,10年后实在适应不了分布式协调了硬着头皮改成raft,但是你能明显看出ES的raft仍然有zen的影子,很累。如果不壮士断腕,重构代码结构走不远的。补丁最终会让积木崩塌。功能设计再好,也抵不住运维没人。从1.x兼容到8.x的API,能不18000的代码量就奇怪了。后续维护很困难

相关推荐
真上帝的左手6 小时前
30. 技术专题-‌应用框架组件-分布式架构
分布式·架构·系统架构·分布式架构
Decay__9 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
Dawson Zhu10 小时前
【分布式训练④】张量并行与序列并行:把单层参数切碎分到多张卡
人工智能·语言模型·架构·aigc·agi
码客-ygluu13 小时前
一个通用游戏数据服务器
c++·架构
炫酷的大高个15 小时前
98% 连跑 20 次只剩 67%,我算了大模型重试账
人工智能·架构·开源
用户66026761187916 小时前
AI 代码上线前的第 24 道门禁:上线失败时,怎样在 10 分钟内退回?
后端·架构
humcomm17 小时前
设计与架构 · 01 sidecar 会消失吗:从 Istio ambient GA 到 AWS App Mesh 关停,一次服务网格数据面的重新洗牌
架构·istio·aws
Eyfcom17 小时前
〖物流低代码实战 01〗物流页面可视化搭建的底层架构:协议、引擎与产物的三重奏
低代码·架构·快递系统·物料体系·物流低代码实战
浪遏1 天前
recruitment-cli:让 AI 接手求职招聘,从架构到一次发送超时
架构·typescript·node.js
小雉系统1 天前
BcoreOS安全通信架构:FsSession 抗算法后门安全设计
算法·安全·架构