- 博客(57)
- 收藏
- 关注
原创 一文打通 AI 认知:LLM、Agent、MCP、Skill 完整体系
本文系统梳理了人工智能70年发展历程,分为四个阶段:理论萌芽期(1943-1956)、符号主义寒冬期(1957-1995)、机器学习复苏期(1996-2015)和大模型智能体爆发期(2016至今)。重点解析了当前AI四大核心组件:大模型(LLM)作为智能核心,智能体(Agent)负责自主执行,技能(Skill)实现具体操作,以及MCP协议提供标准化接口。文章还介绍了RAG、多模态AI、模型微调等新兴技术,帮助读者建立对AI底层逻辑的全面认知,适合各领域开发者参考学习。
2026-06-12 17:35:12
537
原创 【设计模式】行为型-解释器模式
摘要:解释器模式是一种行为型设计模式,用于为自定义语言或规则提供解释执行能力。其核心思想是将语法规则拆分为表达式(终结符与非终结符),通过组合表达式解释完整语句。该模式适用于简单DSL、规则引擎等场景,具有扩展性好、符合开闭原则等优点,但存在类爆炸、效率低等缺点。典型应用包括正则表达式、SQL解析等。实现时需构建抽象表达式接口、具体表达式类及上下文环境,通过递归调用interpret()方法完成解释。复杂语法建议使用ANTLR等专业工具而非手动实现。
2026-04-03 16:35:11
416
原创 【设计模式】行为型-备忘录模式
备忘录模式是一种行为型设计模式,用于在不破坏封装性的前提下实现对象状态的备份与恢复。该模式包含三个核心角色:**原发器(Originator)**负责创建和恢复状态快照,**备忘录(Memento)**存储不可篡改的快照数据,**看管人(Caretaker)**仅管理快照的保存与获取。通过分离职责,备忘录模式支持撤销操作(如编辑器Ctrl+Z)、游戏存档、事务回滚等场景,确保状态恢复的安全性和代码简洁性。
2026-04-03 16:19:26
514
原创 【设计模式】行为型-中介者模式
摘要:中介者模式是一种行为型设计模式,用于将复杂的网状对象交互简化为星型结构。通过引入中介者对象,各组件不再直接相互依赖,而是统一与中介者通信。该模式包含抽象中介者、具体中介者、抽象同事和具体同事四个核心角色。以聊天室为例,用户消息通过中介者转发,实现解耦。优点包括降低耦合度、集中控制逻辑,但可能导致中介者类过于庞大。适用于GUI组件交互、调度中心等场景,典型应用如Spring MVC的DispatcherServlet。
2026-04-02 09:47:09
455
原创 【设计模式】行为型-访问者模式
访问者模式是一种行为型设计模式,用于在稳定数据结构上扩展多变操作。其核心思想是将操作从元素类中抽离,实现"结构不动,功能扩展"的效果。模式包含抽象访问者、具体访问者、抽象元素和具体元素四个主要角色,通过双分派机制(element.accept(visitor)和visitor.visit(this))实现精准类型匹配。典型应用场景包括文件系统、编译器解析等需要频繁新增操作但结构稳定的组合结构。该模式优点是扩展性强、职责单一,缺点是元素结构变更困难且破坏封装。
2026-04-02 09:42:37
781
原创 【设计模式】行为型-状态模式
状态模式是一种行为型设计模式,通过封装不同状态为独立类,使对象行为随状态自动变化,从而消除复杂的if-else判断。核心结构包括Context(维护当前状态)、State(定义行为接口)和具体状态类(实现状态行为与切换)。以订单状态流转为例,展示了从待支付到已完成的完整实现过程。相比策略模式,状态模式更关注状态间的流转依赖和自动切换。优点在于结构清晰、职责集中,但状态过多会导致类膨胀。适用于订单、线程、工作流等多状态场景,是处理复杂状态流转的理想方案。
2026-04-02 09:37:14
577
原创 【设计模式】行为型-责任链模式
责任链模式是一种行为型设计模式,通过将多个处理对象连成一条链来解耦请求发送者和接收者。核心思想是请求沿着链条传递,直到被某个处理器处理。该模式包含抽象处理器、具体处理器和客户端三个角色,支持动态增删处理节点,适用于权限校验、参数校验、日志记录等场景。典型实现方式包括全传递链和中断链两种模式,具有解耦、灵活扩展等优点,但也存在性能损耗、调试困难等缺点。该模式广泛应用于Servlet Filter、Spring拦截器等框架中,是企业开发中最常用的设计模式之一。
2026-03-31 18:54:18
613
原创 【设计模式】行为型-命令模式
命令模式是一种行为型设计模式,它将请求封装为对象,实现请求发送者与执行者的解耦。核心结构包括抽象命令、具体命令、接收者、调用者和客户端。通过将方法调用包装成对象,支持撤销、排队、日志记录等功能。本文以遥控器控制电视为例,展示了Java实现方式,并分析了该模式的优点(解耦、扩展性强)和缺点(类爆炸)。适用场景包括GUI操作、事务管理、任务队列等,典型应用有Java Runnable、编辑器撤销功能等。命令模式通过行为对象化,实现了灵活的行为控制和管理。
2026-03-31 17:51:09
518
原创 【设计模式】行为型-迭代器模式
本文介绍了迭代器模式,这是一种用于统一集合遍历接口的行为型设计模式。文章首先阐述了迭代器模式的核心思想:将遍历逻辑从集合中抽离,通过独立的迭代器类实现统一访问。接着详细讲解了模式的五个核心结构:抽象迭代器、具体迭代器、抽象聚合、具体聚合和客户端,并通过Java代码实现了一个简易ArrayList迭代器的示例。文中还分析了内部类实现迭代器的优势,以及Java内置迭代器的使用方式。最后总结了迭代器模式的优缺点、应用场景,并与其他模式进行了比较。文章指出,迭代器模式的核心价值在于统一遍历接口、隔离集合结构,是Ja
2026-03-30 17:50:56
403
原创 【设计模式】行为型-策略模式
策略模式是一种行为型设计模式,通过封装一组可互换算法并支持动态切换来消除大量条件判断。其核心思想是将每种实现方案封装成策略类,对外提供统一接口,使算法变化独立于客户端调用。典型结构包括抽象策略接口、具体策略实现、上下文环境类和客户端。该模式适用于支付方式、促销策略、排序算法等需要灵活切换算法的场景,能显著提升代码可维护性和扩展性,但会增加策略类数量。实际开发中常结合工厂模式进一步优化。
2026-03-30 17:37:56
421
原创 【设计模式】行为型-模板方法模式
模板方法模式是一种行为型设计模式,用于处理固定流程但个别步骤不同的场景。核心思想是父类定义算法骨架,子类实现可变步骤。主要结构包括抽象类(定义模板方法、抽象方法、钩子方法)和具体子类。以支付流程为例,父类固定校验、回调、日志步骤,子类实现不同支付方式。钩子方法可灵活控制流程分支。该模式优点在于代码复用和流程控制,但可能导致类数量增多。适用于支付、注册、数据导入等流程固定的场景。与策略模式不同,模板方法基于继承控制流程,而策略模式基于组合切换算法。该模式是企业开发中复用率极高的设计模式。
2026-03-30 16:24:07
558
原创 【设计模式】行为型-观察者模式
观察者模式是一种行为型设计模式,用于解决对象间一对多的通知需求。该模式通过定义主题(Subject)和观察者(Observer)的抽象关系,实现状态变更时自动通知所有依赖对象。核心结构包括抽象主题、具体主题、抽象观察者和具体观察者,通过解耦发布者与订阅者,支持动态管理和广播通知。典型应用场景包括订单支付、用户注册等需要触发多个后续流程的业务。Java提供了内置实现(Observable/Observer),该模式优点是解耦性强、符合开闭原则,缺点是可能影响通知效率。观察者模式是事件驱动架构的基础,广泛应用于
2026-03-27 17:32:57
437
原创 【设计模式】结构型-享元模式
享元模式是一种用于优化内存使用的结构型设计模式,通过共享重复对象来减少内存消耗。它将对象信息分为内部状态(可共享)和外部状态(不可共享),核心组件包括抽象享元、具体享元、享元工厂和客户端。以游戏枪支为例,相同类型的枪只创建一次,通过外部传入坐标实现差异化。该模式适用于大量重复细粒度对象的场景,如游戏开发、基础组件和系统优化,能显著减少对象数量但会增加设计复杂度。与单例模式不同,享元模式允许多个共享对象按类型复用。
2026-03-27 16:49:58
799
原创 【设计模式】结构型-组合模式
组合模式是一种结构型设计模式,用于处理树形结构中整体与部分的统一操作。它将对象组合成树形结构,使客户端能够一致地处理单个对象(叶子节点)和组合对象(组合节点)。核心组件包括抽象组件(定义统一接口)、叶子节点(无子节点)和组合节点(包含子节点)。该模式适用于文件系统、菜单、组织架构等场景,优点是简化客户端代码、扩展性强,缺点是设计复杂度较高。透明模式更常用,允许统一调用方法,而安全模式需区分类型。组合模式与外观模式的区别在于前者处理层次结构,后者封装复杂子系统。
2026-03-27 14:39:28
479
原创 【设计模式】结构型-桥接模式
摘要 桥接模式是一种结构型设计模式,通过分离抽象与实现来解耦多维度变化的系统。其核心思想是"组合优于继承",将抽象层(如电子设备)与实现层(如操作方式)独立设计,通过组合方式自由搭配。该模式能有效避免类数量爆炸,提高系统扩展性,符合开闭原则和单一职责原则。典型实现包含抽象化、具体抽象化、实现化和具体实现化四个角色,Java代码示例展示了电子设备与操作方式的自由组合。桥接模式适用于存在多个独立变化维度的场景,虽会增加系统复杂度,但显著提升了代码的灵活性和可维护性。
2026-03-27 13:54:07
473
原创 【设计模式】结构型-外观模式
本文介绍了外观模式(Facade Pattern)这一结构型设计模式的核心概念与应用。外观模式通过为复杂子系统提供统一的高层入口,实现了调用流程的简化和客户端与子系统的解耦。文章详细阐述了外观模式的核心思想、Java代码实现(以用户注册流程为例)、优缺点分析以及典型应用场景(如复杂流程封装、第三方SDK整合等)。作者指出,外观模式不新增功能而专注于流程编排,是提高代码可维护性和扩展性的重要手段,在分层架构和系统集成中具有广泛应用价值。最后强调合理使用外观模式能够实现"解耦、简化、规范、易用&quo
2026-03-27 13:30:12
429
原创 Spring 事务诡异 bug:明明数据修改已提交,查的居然是修改前的值!
摘要:本文分析了一个后端接口在高并发场景下的异常现象。该接口用于按顺序获取题目并更新状态,当出现重复调用时,MySQL RR隔离级别下的MVCC机制导致快照读回退到历史版本,返回了已更新的旧数据。根本原因是RR隔离级别+MVCC快照+行锁的交互机制。文章详细排除了事务未提交、Spring事务失效等常见猜测,最终提出四种解决方案:修改为RC隔离级别(推荐)、使用FOR UPDATE当前读、拆分事务、防重复提交机制。开发建议包括优先使用RC级别、避免无意义UPDATE、做好防重等。该案例展示了底层机制符合规范但
2026-03-25 14:06:44
499
原创 【设计模式】结构型-代理模式
本文介绍了代理模式在Java中的实现与应用。代理模式是一种结构型设计模式,通过代理对象控制对目标对象的访问,并能在访问前后添加额外逻辑(如权限校验、日志记录等)。文章首先阐述了代理模式的核心思想,包括抽象主题、真实主题、代理和客户端四个角色。然后通过用户服务接口的案例,详细展示了静态代理和JDK动态代理两种实现方式:静态代理需要手动编写代理类,实现简单但复用性差;JDK动态代理则通过反射机制动态生成代理类,增强逻辑可复用但要求目标类必须实现接口。这两种方式各有优劣,可根据实际场景选择使用。代理模式能有效提升
2026-03-23 15:13:53
785
原创 【设计模式】结构型-装饰器模式
摘要: 装饰器模式是一种结构型设计模式,通过组合方式动态扩展对象功能而不修改原有结构。该模式包含四个核心角色:抽象组件定义接口,具体组件实现核心功能,抽象装饰器持有组件引用,具体装饰器添加额外功能。以咖啡订单系统为例,基础咖啡作为具体组件,配料(牛奶、糖等)作为装饰器动态组合,避免类爆炸问题。Java实现展示了如何通过层层包装实现功能扩展,符合开闭原则,支持灵活组合和动态增减功能。装饰器模式体现了组合优于继承的思想,是增强对象功能的优雅解决方案。
2026-03-23 14:41:55
457
原创 【设计模式】结构型-适配器模式
摘要:适配器模式是一种结构型设计模式,通过接口转换实现不兼容类之间的协同工作。核心思想是定义目标接口,封装适配者类,使客户端能统一调用。Java实现展示了类适配器和对象适配器两种方式,后者更具灵活性。该模式优点包括代码复用、解耦和系统集成简化,但会增加复杂度。典型应用场景包括第三方库集成、老旧系统改造和跨平台适配,是解决接口兼容问题的有效方案。
2026-03-23 11:27:56
453
原创 【设计模式】创建型-原型模式
摘要: 原型模式是一种通过复制现有对象创建新对象的创建型设计模式,核心思想是复用原型对象避免重复初始化。该模式包含原型对象、克隆方法和客户端三个要素,支持浅克隆和深克隆两种方式。以游戏角色创建为例,通过定义角色抽象类和具体原型(战士、法师),实现克隆方法快速生成新角色实例。Java代码演示了浅克隆的实现,并指出引用类型属性需要深克隆避免共享问题。原型模式显著提升了复杂对象的创建效率,是AI时代程序员需要掌握的核心设计模式之一。
2026-03-20 16:27:41
513
原创 【设计模式】创建型-建造者模式
建造者模式是一种创建型设计模式,将复杂对象的构建与表示分离,通过分步构建实现解耦。核心包含产品、抽象建造者、具体建造者和指挥者四个角色,以"汽车建造"为例:产品类Car定义部件,抽象建造者CarBuilder声明构建方法,具体建造者SedanCarBuilder/SuvCarBuilder实现部件组装,指挥者CarDirector控制构建流程。该模式使相同构建过程可创建不同产品,符合开闭原则(如新增NewEnergyCarBuilder无需修改原有代码),适用于参数繁多、构建逻辑复杂的对
2026-03-20 09:56:41
484
原创 【设计模式】创建型-抽象工厂模式
摘要:抽象工厂模式是一种创建型设计模式,通过封装产品族的创建逻辑,实现相关对象的统一构建。其核心思想是将一组配套产品(如MySQL连接和语句)抽象为接口,由具体工厂实现创建过程。该模式确保了产品一致性,降低耦合度,并符合开闭原则——新增产品族时只需扩展而非修改代码。虽然扩展新产品类型较困难,但该模式仍是处理复杂产品体系的优选方案。以数据库访问组件为例,通过抽象工厂可实现MySQL、Oracle等不同数据库的无缝切换,展现了设计模式在提升代码可维护性和扩展性中的关键作用。
2026-03-19 18:15:38
428
原创 【设计模式】创建型-工厂方法模式
文章摘要:工厂方法模式是一种创建型设计模式,通过将对象创建推迟到子类实现解耦。其核心包含抽象产品、具体产品、抽象工厂和具体工厂四个角色,符合开闭原则,支持灵活扩展。文章以Java日志记录器为例展示了实现过程,包括定义接口、实现具体类和客户端使用。该模式适用于产品类型易扩展的场景(如框架扩展、插件开发等),但需注意避免过度设计。与简单工厂相比,工厂方法模式更符合单一职责原则,但会增加类数量。理解这种模式有助于提升代码的可维护性和扩展性。
2026-03-19 17:59:45
476
原创 【设计模式】创建型-单例模式
摘要: 单例模式是确保类只有一个实例并提供全局访问点的创建型设计模式,适用于数据库连接池、配置类等场景。核心思想包括私有化构造方法、维护私有静态实例和提供公共访问方法。Java实现方式包括饿汉式(线程安全但立即加载)、懒汉式(延迟加载需同步)、双重检查锁(兼顾性能与安全)和枚举(最优解)。单例模式节省资源、保证一致性,但可能违背单一职责原则且扩展性差。使用时需注意线程安全、反射和序列化破坏问题,根据场景选择合适实现方式。
2026-03-19 15:46:13
495
原创 架构师需要具备哪些核心能力
本文系统阐述了架构师能力成长的三大核心维度:结构化设计能力是基础,要求从代码层到系统层保持同质化设计;解决横向问题的能力是关键跃迁,需突破责任边界处理技术债务;解决跨领域冲突的能力是全局升华,要协调多子域架构实现全局最优。这三个维度呈现从局部到全局的递进关系:代码/模块→单领域→多子域。架构师成长本质是能力体系重构,需要从技术执行者转变为全局设计者,在业务与技术、效率与质量间寻找平衡点。最终目标是建立结构化思维,逐步扩大工作范围和提升思考视角,实现从程序员到优秀架构师的蜕变。
2026-03-18 19:11:00
333
原创 架构师视角下的项目复盘
本文探讨了架构师视角下的项目复盘方法论。首先指出三大常见误区:止于问责、止于意识提升和止于错误补救,强调复盘应聚焦提升未来架构活动成功率。其次提出复盘前置准备要点,包括搭建安全平衡的环境、梳理错失机会点和明确目标。核心复盘流程包含六个环节:多视角还原事实、引导参与者正确思考、共创全局最优机会点、深挖根因、提炼企业通用机制及精简跟进项。最后指出复盘的本质是从失败中学习,将个案经验转化为可复用的企业能力,为未来项目奠定基础。文章强调复盘不是形式化的追责会,而是架构能力持续提升的关键抓手。
2026-03-09 14:38:52
391
原创 架构师视角下的项目交付
本文探讨了架构师在项目交付中的核心作用,提出通过阶段性交付降低项目风险、提升资源效率。文章指出,架构师应基于最小价值单元(MVPU)进行项目拆分,从商业、用户和技术三个维度定义阶段目标,并强调交付路径的优先级排序。为确保各阶段顺利落地,架构师需要做好前期准备、过程跟踪和价值校准,同时应对拆分挑战。文章认为,阶段性交付不仅是一种方法论,更体现了"价值优先、快速迭代"的架构思维,能帮助企业在高风险项目中找到正确方向。
2026-03-06 19:31:43
479
原创 MySQL 空表高并发插入必现死锁!间隙锁超详细解析 + 2个最优不影响业务方案
MySQL空表并发插入时出现死锁和ID跳号问题,原因是RR隔离级别下的间隙锁机制。空表时所有插入操作都会争抢同一个间隙锁(-∞,+∞),导致循环等待和死锁。解决方案:1)降级隔离级别为READ COMMITTED,从根本上消除间隙锁;2)优化事务设计,将耗时操作移出事务,仅保留核心数据库操作,缩短锁持有时间。两种方案都能有效解决死锁问题,不影响业务并发性能,且易于生产环境落地实施。
2026-03-05 14:41:23
439
原创 架构师视角下的项目启动
本文系统阐述了项目启动的核心逻辑与实践方法。项目启动的本质是形成具有约束力的"虚拟合同",要求各方公开确认目标与责任。架构师核心任务包括:验证架构方案正确性、确认技术交付内容、解除重大风险、建立预警与冲突解决机制。启动会应聚焦商业价值,传递技术干货与全局视角,实现全员认知共识和责任落地。
2026-03-05 10:21:39
364
原创 架构师,到底是干什么的?
在互联网企业中,架构师面临技术挑战:反射式研发行为、分布式团队沟通障碍、普遍存在的认知差异,大型架构活动的高复杂度。架构师的核心职责包括: 建设共识、控制风险、保障交付、沉淀知识。
2025-09-23 22:13:56
1928
原创 架构设计,最容易忽略的外部因素
架构设计不是高屋建瓴,要紧贴实际,需要尊重人性,需要适应环境。架构师作为技术领导者,其影响力不应局限于技术范畴。在团队协作中,需从多角度考量问题。
2024-11-29 13:33:41
681
原创 架构设计,如何最大化增量价值
作为一个架构师,必须要在有限的资源下最大化架构活动所带来的商业价值。存在不一定合理,只有提供稳定商业价值的存在才是合理的。
2024-08-18 18:09:29
1225
原创 架构设计,如何找到正确的架构目标
正确的目标永远只有一个,只有先要、后要,没有既要、还要,喊着全都要的领导一定是不知道客户要什么的!他们行使了自己的决策权,做了全部都要的决定。但也放弃了自己的取舍权,用全方位搜索来代替自己的思考无能。
2024-07-06 18:17:46
1258
原创 【深入理解JVM(五)】:性能优化(上)
内存溢出和内存泄漏的区别和联系,深堆和浅堆,MAT分析内存泄露,JDK提供的命令行工具及可视化工具,CPU标高排查。
2023-10-18 23:16:01
396
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅