当前位置: 首页 > news >正文

好的架构,不一定是增加组件,而是敢于删除组件

经验丰富其厉害的程序员,还有一项本事,就是知道哪些东西暂时可以不用,以便降低系统的复杂度。

很多项目发展一段时间后,总喜欢不断往里面加组件。比如:

觉得 MySQL 慢,就上 Redis。

觉得要异步,就搞 MQ。

觉得以后可能有很多规则,就先上规则引擎。

其还得意的认为,每加一个组件,是在提升架构。实际上,也是在增加系统复杂度。

比如有些业务,访问量并不高,MySQL 完全能扛住,你却还是加了一层 Redis。你有大把的优化手段去优化sql的。

虽然缓存确实减轻了数据库压力,但新的问题马上就来了:缓存什么时候更新?先删缓存还是先更新数据库?为了维护缓存和数据库的一致性,又写了一大堆代码。

再比如,一个系统本来就只有一个服务,部分程序员居然把异步任务全部丢到 MQ。

结果多了一套 Broker,多了一套运维,多了一套监控,还要处理消息重复、消息丢失、消息积压、消费失败重试等问题。

其实,如果只是为了异步执行,线程池就够了。而Spring 自带的事件发布订阅机制,也完全可以满足很多场景。

并不是所有异步,都值得引入 MQ。

我这边是不允许技术部的程序员随意引入新的组件的,那是一个架构的问题,怎么可以随意引入呢? 我是卡的非常严格的。

但凡用其他技术手段能解决的,就不引入新的组件。依赖越多,系统复杂性越高。

软件架构,本质上是在管理复杂度,请记住这句话。

增加一个组件是很容易的,删除一个组件却需要经验和判断。

好的架构的其中一个特点,就是依赖越来越少,系统越来越简单。

http://www.jsqmd.com/news/1239572/

相关文章:

  • Zookeeper与Kafka生产环境集群部署与调优实战
  • Dev-C++中使用Win32 API创建第一个GUI程序:从零实现祝福窗口
  • C语言指针与数组:底层原理与高效编程实践
  • 落枕缓解指南 —— 鸿蒙AI智能助手开发全流程解析
  • 郑州江诗丹顿回收价格查询与靠谱回收平台实测**2026年7月最新数据) - 收的高名表回收平台
  • Codex CLI /status 显示 AGENTS.md none 怎么办?项目根目录、加载顺序和覆盖文件排查
  • 北京2026不错的直燃炉工厂实力**,避坑攻略批量定制,所见即所得 - mypinpai
  • Claude Code与Claude Tag:AI编程智能体的核心价值与应用
  • AI编程助手如何通过代码库记忆体提升开发效率
  • 本地语音处理工具落地指南:从启动到批量任务实战
  • 深入解析USB主机控制器IN/OUT事务处理与寄存器配置
  • Flink Table API实现Kafka到MySQL实时数据同步
  • Kimi K3 使用指南:会员暂停后仍可访问的5种方式(免费与API路径详解)
  • 萧邦中国**售后服务中心|**地址及售后服务热线**信息声明(2026年7月最新) - 萧邦中国官方服务中心
  • 多层感知器(MLP)原理与实践:从基础到调优
  • AI技能导航系统:智能匹配与推荐技术解析
  • 劳力士**服务项目及价格查询|完整网点地址与热线**信息通知(2026年7月最新) - 劳力士服务中心
  • 2026年不锈钢螺丝生产厂靠谱推荐,实力测评价格透明不踩雷 - mypinpai
  • 系统架构中的负载均衡与分片设计:技术负重与生命力平衡
  • WinDbg Preview与KDNET v2协议详解及配置指南
  • OpenAI未公开的本地GPT-3计划:技术解析与部署可行性分析
  • MuMu模拟器深度优化与斗鱼活动实战指南
  • 浪琴**服务项目及价格查询|网点地址及客服电话**信息公告(2026年7月最新) - 浪琴服务中心
  • 如何使用 WebBuilder 低代码快速开发平台布局容器?
  • 2026年金属软管认证厂家十大热门工作室真实横评,选定再拍不交智商税,实力测评必看 - mypinpai
  • 宝珀烟台客户服务中心:2026年7月最新**网点地址与售后热线一览 - 宝珀官方售后服务中心
  • 腾讯工资确实高。某鹅厂员工,985毕业,工作7年,目前T10,月薪50k,算上年终和股票,每年120w左右,10-9-5,周末双休(附Agent面试题)
  • Linux下x64虚拟机开发实战:从零构建Hypervisor
  • 李飞飞谈AI能动性与空间智能的突破
  • 设计EDA初级工程师|10维度标准化面试打分卡(内部HR专用·可直接落地使用)