自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(152)
  • 资源 (11)
  • 收藏
  • 关注

原创 DDD落地王炸-菱形结构

技术发展十几年,Struts死了,MyCat凉了,TapeStry框架估计很多人听都没听过。多少红极一时的技术,现在连骂都没人骂了。为什么DDD这个03年诞生的“老古董”,被骂了20年,却依然活在各大互联网的主流技术论坛里?仅仅只是因为他能吹牛吗?

2025-11-23 19:47:38 35

原创 什么是世界模型?和大语言模型有什么区别?

《世界模型与大语言模型的本质区别》摘要: 当前AI领域存在两大技术路线之争:以ChatGPT为代表的大语言模型(LLM)和杨立昆倡导的世界模型(World Model)。大语言模型本质是概率预测机,通过海量数据训练获得文本生成能力,但缺乏真实理解,容易产生"幻觉"。世界模型则模拟人类认知方式,在虚拟环境中构建物理引擎和社会规则,通过因果推理而非模式匹配来决策。尽管世界模型更接近真正的通用人工智能(AGI),但因技术难度高、研发周期长,目前商业公司更倾向见效快的LLM路线。这场技术路线之争

2025-11-20 21:15:40 216 2

原创 到底什么是领域驱动设计?

聊了好多期DDD了,到底什么是领域驱动设计呢?如果你真懂限界上下文,DDD也就通了一大半了。

2025-11-11 14:38:17 34

原创 【到底什么是架构?】DDD四层架构,让你的代码自己开口说话!

本文介绍了DDD四层架构如何解决传统MVC架构中业务逻辑与技术实现混杂的问题。以一个电商支付场景为例,通过"四刀"方法: 为实体充血赋予业务能力 用Repository封装数据持久化 通过防腐层隔离外部依赖 用领域服务处理复杂业务 最终形成了清晰的四层架构:用户接口层负责交互、应用层编排流程、领域层定义业务规范、基础设施层处理技术实现。这种架构使代码能够"自己开口说话",业务人员可直接理解应用层代码,同时实现了技术组件的可插拔式替换,提升了系统的灵活性和可维护性。

2025-11-07 18:59:44 584

原创 DDD中如何管理领域对象

本文探讨了在领域驱动设计(DDD)中如何管理领域对象与数据存储之间的关系。作者通过电商系统中订单与地址的设计案例,分析了理想领域模型与现实数据库存储之间的鸿沟。DDD通过引入仓库(Repository)和工厂(Factory)两个核心组件来解决这一问题:仓库负责管理对象生命周期,工厂专注于从零散数据创建复杂领域对象。这种架构隔离了业务逻辑与数据存储细节,使得可以灵活更换存储方案而无需修改核心业务代码。文章强调DDD的核心价值不在于一开始就找到完美存储方案,而在于构建可随业务认知变化而灵活演进的系统架构。

2025-11-03 13:42:27 913

原创 表结构设计,你还在靠经验吗?

今天这个视频我将来点不一样的。我会用DDD——领域驱动设计,这个在大厂和复杂项目中被广泛验证的方法论,带你看看真正的架构师是怎么思考这个问题的。更重要的是,掌握一套可以应对各种业务场景设计的思维框架。

2025-10-31 19:03:01 841

原创 【思想比实现更重要】高并发场景下如何保证接口幂等性

这篇文章系统讲解了接口幂等性的8种解决方案,从单体到分布式层层递进。作者首先强调面试中展现系统化思考能力的重要性,随后详细分析了查询+插入、悲观锁、乐观锁、唯一索引、防重表、状态机、分布式锁和Token令牌等方案,分别指出其优势和局限性。文章指出,技术方案需要结合具体业务场景,没有万能的解决方案,而真正的价值在于培养从点、线、面出发的系统化思考能力。这种思维模式是程序员在AI时代的核心竞争力,能帮助构建更可靠的高可用系统。

2025-10-26 21:38:02 812

原创 【终极面经】Kafka为什么这么快?

聊到Kafka,你应该经常遇到这样的面试题:“小伙子,基础不错。那聊聊Kafka 凭什么这么快?”你可能觉得我看过,但是要注意,这既是送分题,又是送命题。说它是送分题,是因为大部分人都能答出“顺序写、零拷贝”这几个关键词。但如果不注意,这也是个送命题,因为这种题目是没有标准答案的。你所认为的那些标准答案,可能只是面试官眼中让人昏昏欲睡的陈词滥调。所以你提的每一个点,都是要体现出你对技术的思考和总结。

2025-10-22 16:37:02 975

原创 【终极面试集锦】如何设计微服务熔断体系?

熔断技术,在微服务体系中,是‘生命线’;在技术面试中,是‘黄金分割线’。它不仅是保障线上系统稳定运行的核心机制,更是区分‘面试理论派’和‘技术实战派’的关键技术。而且真正从项目中积累下来的实战经验,可是目前AI也无法替代的实战精华。今天,我们就完全顺着面试官的思路,一层一层地剥开这个问题,看看简历上精通微服务的含金量有多少。

2025-10-20 17:50:31 1112

原创 [终极面试集锦]RocketMQ核心面试题一次全给讲通透

本文通过一张架构图深入解析RocketMQ的核心设计。从基础消息队列模型出发,逐步解决性能瓶颈(多队列+消费者组)、高可用问题(主从架构)和集群协调(自主设计的NameServer)。重点剖析了RocketMQ区别于Kafka的设计哲学——为金融电商等严肃业务场景服务,特别解释了事务消息的实现原理和生产者组的设计必要性。文章还提供了高阶面试题集锦,帮助读者掌握RocketMQ的核心技术要点和设计理念,真正理解其"为可靠业务而生"的完整闭环。最终达到从架构层面应对各类面试问题的能力。

2025-09-22 17:06:52 1170

原创 Java高性能必修神器-响应式编程

文章摘要: 响应式编程是Java高性能开发的秘密武器,广泛应用于Spring Cloud Gateway等开源框架中。它通过异步非阻塞和事件驱动机制优化线程调度,解决传统同步编程的性能瓶颈。核心思想是将数据作为可观测流处理,并引入背压机制防止内存溢出。虽然响应式编程能显著提升高并发场景下的性能,但学习门槛高且应用场景有限,导致日常开发中较少使用。随着JDK21虚拟线程的推出,其用户态线程调度机制进一步简化了并发编程,降低了响应式编程的必要性。

2025-08-30 19:46:32 1078

原创 哪些工作是不容易被AI替代的?

现在经常听网上有人讨论AI会替代什么什么工作,搞得人心惶惶。 于是,我也跟我身边的朋友经常讨论这个事情。最近有一次,就被一位创业小成的朋友给折服了。

2025-08-21 17:29:15 1063

原创 终极防御性编程神器

现在IT大环境下滑,开始催生出了一个程序员极地求生新技能:防御性编程。​ 原本防御性编程的意思是在写业务代码时应该要更多的考过各种可能出现的边界情况,做更多防御性的考量。但是,防御性编程有了新的含义。那就是让我的代码只有我能看懂,别人都看不懂。这样,别人就无法抢我的饭碗了。老板裁员时自然也要掂量掂量了。

2025-08-13 19:35:12 1035

原创 [面试集锦]源码解读:Redis为什么这么快

文章摘要: Redis之所以快,关键在于其精细化的内存管理和数据结构设计。源码分析揭示,Redis根据value类型采用不同存储策略:1) 数字类型使用int直接存储,并复用缓存对象;2) 短字符串(≤44字节)采用embstr紧凑存储,将字符串与redisObject连续存放;3) 大字符串使用raw类型分散存储。此外,Redis通过预定义SDS(Simple Dynamic String)结构,采用固定长度的内存分配策略,避免了C语言字符串的缺陷,提升了内存访问效率。这种底层优化使Redis在内存操作上

2025-08-10 16:54:54 656

原创 程序员玩转AI大模四-使用Embedding实现自然语言检索

楼兰带你玩转AI大模型

2025-07-17 13:27:17 591

原创 程序员玩转AI大模3-扩展机器人的能力边界

本文介绍了如何通过Tools工具机制扩展AI大模型的能力边界。重点讲解了四种核心方法:1)理解工具机制的基本原理,让大模型调用外部API获取实时数据;2)定制本地Tool工具,如获取当前日期的实例演示;3)深入解析@tool注解的使用技巧,包括自定义工具名称、描述和参数说明;4)结合大模型构建更复杂的工具,如将LCEL链转换为翻译工具。这些方法使大模型能突破固有知识限制,通过与本地应用的交互实现更强大的功能扩展。

2025-06-30 13:51:56 982

原创 程序员玩转AI大模型2-构建专属聊天机器人

本文介绍了使用LangChain构建专属聊天机器人的方法,重点讲解了LangChain表达式语言(LCEL)的应用和聊天记录保存技术。通过LCEL可以实现多步骤的复杂聊天互动,包括串行处理链、并行处理链以及动态链构建。文章还演示了如何保存聊天记录,从内存存储扩展到Redis持久化存储,并展示了如何将聊天记录功能整合到LCEL处理流程中。这些技术可以帮助开发者快速构建功能丰富、支持多轮对话的智能聊天机器人。

2025-06-29 13:42:26 963

原创 程序员玩转AI大模型1-LangChain快速上手

楼兰带你玩转AI大模型。

2025-06-27 14:05:53 744

原创 程序员玩转AI大模型0-搭建开发环境

本文介绍了使用Anaconda快速搭建Python开发环境的方法。Anaconda集成了conda、Python及常用科学计算包,简化了环境管理。文章详细讲解了Anaconda的安装步骤、创建Python环境(conda create)、激活环境(conda activate)等核心命令,并对比了conda与pip的差异。同时推荐了PyCharm和Jupyter Notebook等开发工具,指导如何在IDE中配置conda环境,特别说明Jupyter需要安装ipykernel来注册内核。最后指出这是进入AI

2025-06-26 15:25:15 591

原创 java程序员,够都不--干!干的就是java程序员

面试题就是一没有体系化的基础知识作为支撑,二没有明确的项目环境作为背景,零零散散的到处聊聊天而已,却偏偏要为了一点流量装个逼。一整个机构的人,天天专业的忙乎着这点事情,赚点生活费,到头来还不如你这时不时的出来蹦跶两下?一帮帮人,从小白学java,最少也要学个年把,好不容易到了要出山的时候了,你们一个劲的鼓吹他们白学了,趁早转行。在这个连公务员,老师的饭碗都端不稳的时代,各行各业都应该要抱团取暖的时候,你们一个个来拆柱子,属实可恶。最后,java的行情确实不好,但是,这是个大环境,不是java的祸。

2025-06-20 13:24:50 303

原创 十分钟聊明白DDD领域驱动设计

​ 关于DDD,大部分朋友应该都听说过。 全称是Dmoain Driven Design,翻译过来就是领域驱动设计。这个神秘的架构思想,虽然远没有SpringBoot这类框架这么名声在外,但是却经常时不时冒出来,牵动一下大家的神经。美团、阿里每年的技术年会都会有关于DDD的经验分享,而另一方面,又有移动、电信等公司爆出DDD从入门到放弃的失败案例。​ 那么到底什么是领域驱动设计呢?是不是用上了DDD的所谓四层架构,就是在用DDD了?其实DDD这东西看起来挺抽象,但是核心就是需要搞明白三个问题。

2025-05-20 13:54:42 627

原创 程序员就不要把MCP当神话了!MCP协议深度剖析

之前给大家分享过,现在AI大模型的发展方向是希望更好的将AI大模型与传统的软件能力相结合。现在,这个方向有了更实际的突破。在2024年底,claude大模型的开发公司Anthropic提出了一个MCP(Model Context Protocol)协议。通过MCP协议,可以让应用程序以一种统一的方式向LLM大语言模型提供工具调用。

2025-04-27 17:11:28 1134

原创 大模型到底是减少了焦虑还是放大了焦虑?

​ 必不可少的谈到了焦虑。虽然生活在不断前进,也有大模型这样的技术带我们不断开启新的方向。但是,焦虑却突然的成为了时代的主题。大模型给很多小白们带来了前所未有的便利,但是同时也给另外一部分技术人带来了前所未有的焦虑。就好像我也在坚守Java,但是不得不承认,未来最主流的技术,只有一个,那就是AI。Java、Python、C#什么编程语言,对大模型来说,都是一句提示词。​ 如何调整焦虑?最近看到一篇分享如何读书的文章,里面提到了一个好玩的读书九字。我觉得很好玩,记录下来,安慰安慰未来的我把。

2025-04-17 17:12:24 677

原创 使用Redis构架你自己的私有大模型

​ Redis你通常用来做什么?缓存?分布式锁?数据过滤器?不够不够,这远远不够。之前给大家分享过基于Redis Stack提供的一系列插件,完全可以把Redis作为一个类似于Elastic Search的JSON数据库使用。不光可以存储并操作JSON格式的数据,而且可以实现各种复杂的检索。​ 而现在到了大模型时代,Redis又有了一个更加重要的用途:。基于向量数据库,可以实现一系列更贴近自然语言的检索功能。这也成了AI大模型应用落地的基石。

2025-03-31 09:28:33 827

原创 小白闯AI:Llama模型Lora中文微调实战

小白闯AI,Llama模型Lora中文微调实战。AI大模型应该是一个工具,让你能够更放心去闯的工具,而不应该成为偷懒的工具。而最终会抢掉人类饭碗的,永远是那些跑在你前面的人,而不是一个工具。

2025-03-21 14:53:40 1721

原创 【面试集锦】如何设计SSO方案?和OAuth有什么区别?

如果面试问你,你会做一个权限系统吗?那你肯定会说做过。不就是各种登录、验证吗。我做的第一个CRUD应用就是注册、登录。简单!但是,如果问你在工作中真的做过权限系统吗?其实很多人都只能默默摇摇头。因为在很多真实项目中,权限系统可能不是最复杂的,但一定是牵连最广的。因此往往大型项目中真正去做权限系统的,都只是非常核心的一小部分人。而如果你的应用越来越复杂,作为安全门户的权限系统也会随着变得更加复杂。各种方案层出不穷。

2025-02-12 22:43:34 1101

原创 【AI】用AI大模型来介绍什么是AI大模型,是一种什么样的感觉?

说明:这是一篇完全用阿里的Qwen2.5-max模型生成的文章,图片也是用的阿里Flux-Merged模型生成的。甚至连生成图片的提示词都是用大模型生成的。只是想要体验一下用AI写完整的技术文章是什么感觉。不过最终感觉还是不错的,尤其最后的总结。虽然这些技术听起来很酷炫,但我们仍然处于探索阶段,前方还有无数未知等着我们去发现呢。

2025-02-12 15:23:05 469

原创 实战演练JDK的模块化机制

​ 我们写的Java应用,都是以Jar包的形式发布的,所以对于Jar包,你一定习以为常。但是,如果你有一天打开一下JDK9以后的版本在你本地的安装目录,你会发现,JDK中那些熟悉的jar包,完全不见了。取而代之的是一些jmod文件。​ 甚至在熟悉的IDEA里,JDK的包下也不再是一个个Jar包,而变成了一个个与这些jmod文件对应的模块。​ 这些jmod文件是什么呢?​ 其实这些jmod文件可以认为是一种特殊的jar包。JMOD设计为在编译时间和链接时间使用,但不在运行时使用。

2024-12-26 22:39:47 1336

原创 2024年总结:原来你们喜欢这样的java

​ 最后,怎么又莫名其妙的提到了培训?现在互联网上一提培训,一提卖课,似乎就成了人人喊打的老鼠。外面什么技术不能白嫖,你还收钱?还是之前k=k++的分析视频,明明就只是一个跟风的面试视频,只不过比一般的面试八股可能更深了一点。不知道怎么被网友们给扯到卖课上面去了。中间截取了一段扯蛋,聊做回应吧。也算是给我自己这一年的交代。

2024-12-25 22:26:14 958

原创 【面试集锦】k=k++到底有没有执行自增操作

人生三大境界,见山是山,见山不是山,见山还是山!​ 学了好多年Java,你知道你写的java代码到底是什么样子的吗?k=k++,这样一个简单的代码,就足够考验考验Java程序员的斤两。​ 类似这样的非人类代码的面试题,其实不在少数。这一类面试题,想要考验的,从来不仅仅是程序员的代码理解能力,而是对语言底层逻辑的熟悉程度。​ 如果你是一个刚入门的Java新手,那么,对于这一类问题,只要能够推断出执行的结果就行了。

2024-12-19 20:53:32 1205

原创 【面试集锦】十分钟彻底搞懂MySQL的redolog,undolog和binlog

MySQL,是现在业界最受欢迎的关系型数据库之一,他的好处毋庸置疑。但是这也让MySQL成了面试中的重灾区。到底要怎么理解MySQL那些复杂又神秘的底层架构呢?这次楼兰就带你从日志系统出发,快速解析MySQL的整体架构设计。​ MySQL的日志文件分为redolog,undolog和binlog三种。这些复杂的日志文件分别是干什么的?有什么关系?接下来我们就一层层的来拆解MySQL。

2024-12-16 10:56:27 1055

原创 如何防止Class文件被反编译?

各位伟大的Java程序员,现在有一条财富自由的路摆在你的面前,你有没有信心为此去挑战一下自己?​ 这次我们来聊一个比较有意思的话题,如何防止Class文件被反编译。

2024-12-13 15:04:17 1285

原创 [面试集锦]海量用户信息下如何进行分库分表?

现在面试动不动就是问三高架构。应用大了,数据量多了,查询性能自然就下降了。怎么办呢?很多人自然就想到分库分表。但是一旦把底层数据库给拆分开了,在业务层面就会暴露出很多问题。那么在一个具体的业务场景下,要如何设计分库分表方案,并对方案进行优化呢?这次就以用户信息这个具体的场景来分享下如何设计分库分表方案。

2024-12-06 17:30:54 1182

原创 【面试集锦】@Autowired和@Resource有什么区别

@Autowired和@Resource这两个注解的功能都差不多,都是在Spring框架中做自动注入的。但是他们有什么区别呢?楼兰带你来分析分析

2024-12-02 16:19:09 1220

原创 程序员的AI五步提示词大法

AI大模型如火如荼,你有没有陷入过AI终将代替人类的终极焦虑?​ 使用AI大模型,提示词的重要性毋庸置疑。不管是向AI大模型问问题,还是围绕AI大模型构建应用,设计高效的提示词都是其中最重要的一个环节。尤其当你想要在一些具体的业务场景下使用AI大模型时,你不可能真的像聊天一样,慢慢跟大模型软磨硬泡,这时一个高效的提示词就显得尤为重要了。即便像LangChain4j,SpringAI这些纯面向程序员的AI大模型框架,其各种工具的背后,也是通过定制各种各样的提示词,从而让AI大模型帮助实现某种功能。

2024-11-26 10:22:55 2851

原创 轻松解读RocketMQ5.3.0核心源码

同步刷盘,异步刷盘?同步同步,异步同步?零拷贝,顺序写?你是不是曾经在各种各样的流量短视频和博客中听说过跟RocketMQ相关的这些亮瞎眼的高大上的技术名词?你有没有想过自己去RocketMQ中看看这些概念背后的Java代码是什么样的?如果你有过这样的想法,那么,楼兰到你到RocketMQ的源码当中逛逛,看看RocketMQ的大神们,是如何用简单常见的MVC思想开发出RocketMQ这样的神作的。

2024-10-24 19:27:52 1427

原创 Redis只用来做缓存吗?

比如在分布式场景下做用户登录功能,我们就可以将用户信息以JSON字符串的形式保存到Redis中,来代替单体应用中的Session,从而实现统一的登录状态管理。哈希函数的选择对过滤器的性能有很大影响,理想的哈希函数应该具有良好的散列性,使得不同的输入尽可能均匀地映射到位数组的不同位置。通常使用的 keys * 这样的指令,在生产环境一般都是直接禁用的,因为这样会产生严重的线程阻塞,影响其他的读写操作。所以,在布隆过滤器的初始化过程中,通常只需要指定过滤器的容量和误判率,就足够了。相对的,算法实现也就更复杂。

2024-10-17 20:02:36 1049

原创 性能爆炸的多线程编排神器CompletableFuture

​ 使用CompletableFuture,程序员可以很方便的控制线程的执行顺序。包括串行、并行或者多个线程的组合与转化功能。​ CompletableFuture主要实现了两个关键接口:Future:Future是一个代表异步计算结果的对象。它允许你从一个异步操作中获取结果(一旦结果可用),取消正在执行的计算,或者检查计算是否已经完成。Future 通常与 ExecutorService 结合使用来提交任务,并且是 java.util.concurrent 包的一部分.

2024-10-17 12:59:00 1718

原创 程序员短视频上瘾综合症

程序员短视频上瘾综合症

2024-08-05 15:08:48 9738 5

原创 VUE3极速上手手册

后端程序员最快速度上手最新的VUE3框架。前端和后端,小孩子才做选择,技术人的选择是都要。

2024-04-01 17:49:23 3428

水晶报表用户指南-教材文档

水晶报表用户指南,水晶报表,从零开始。我就是用这个开始学的。

2011-01-13

NettyDemo.zip

https://blog.youkuaiyun.com/roykingw Netty系列博文Demo。管饱管够。

2021-06-12

Java类加载的故事-修正终结版.zip

配合博文地址:https://blog.youkuaiyun.com/roykingw/article/details/110737366 配合视频地址:https://www.bilibili.com/video/BV11a4y1p7eP 一个完善的故事,不再怕学不懂JAVA的类加载机制

2020-12-06

c# .net示例项目 模拟QQ

使用c# .net开发的学习项目。模拟QQ,简单实现了QQ的实时聊天,图标闪烁等功能。

2010-01-27

AngularJS权威教程 PDF

AngularJS 权威教程 PDF版

2016-09-26

反编译工具

经典的反编译工具,能反编译.class文件,查看.class文件就像看代码文件一样。相信是个少不了的东西。

2008-05-27

jexcelapi-2-6-12

java 操作excel的一个框架。带有完整的源代码,文档资料以及示例。

2010-07-28

hadoop权威指南

hadoop权威指南 中文 书签 版本。

2016-09-26

VS 2005快捷键大全.txt

Visual Studio.net 2005常用的快捷键。记不住的可以下载做日常参考。

2010-03-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除