屎山代码怎么练成的

前言

代码库规模 说到屎山代码,肯定下意识认为是小白,写的修修补补,漏洞百出的代码。但是你见过专业人士写的屎山吗?没见过,来见识一下过度设计带来的屎山一角: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的代码量就奇怪了。后续维护很困难

相关推荐
随风一样自由1 小时前
【前端工程化】前端工程化解耦实践:从问题分析到架构重构
前端·重构·架构
leoZ23113 小时前
Claude 驱动的全栈开发:Spring Boot + Vue 的 BS 架构实践
vue.js·spring boot·架构
前端H14 小时前
微前端 v3 架构升级:从加载隔离到状态协同
前端·架构·状态模式
LYFlied14 小时前
Anthropic Agent隔离架构解读:比权限弹窗更可靠的是限制爆炸半径
人工智能·架构·软件工程·claude·安全架构·ai agent
visual_zhang15 小时前
文件行数如何影响 AI 编程的输出质量
架构
Larcher16 小时前
从回调地狱到优雅异步:Node.js 文件操作进化史
javascript·后端·架构
熊猫钓鱼>_>17 小时前
Electron:当 Web 技术统治桌面
大数据·前端·javascript·人工智能·架构·electron·agent
珠海西格电力20 小时前
零碳园区数据应用的具体场景有哪些?
大数据·人工智能·算法·架构·能源
CHrisFC20 小时前
2026-07-15-csdn-硕晟LIMS微服务架构设计
微服务·云原生·架构
东方小月20 小时前
agent-skills:把资深工程师的‘工作流’,装进你的AI编程里
前端·架构·代码规范