当我的代码评审开始 “AI 打工”:聊聊这个让我摸鱼更心安的神器技术分享作为一个每天和代码打交道的打工人,最头疼的莫过于提完MR后漫长的等待—— reviewer可能在开会、可能在改bug、可能在摸鱼,而你的代码只能在“进行中”状态里默默吃灰。更惨的是偶尔遇到“人工漏检”,上线后发现奇奇怪怪的bug,只能对着屏幕疯狂道歉:“这锅我背,下次一定仔细查!” 直到我发现了这个藏在云效里的神器——**yunxiao-LLM-reviewer**,现在我的MR终于有了一个24小时在线的“AI监工”,不仅能秒级反馈问题,还能把代码漏洞掰碎了讲给我听,甚至连摸鱼时都忍不住夸两句:这才是打工人的神仙辅助啊!2025-7-2 AI
云效Flow 自定义AI代码审核步骤技术分享云效流水线Flow提供了灵活的集成机制,企业可以在云效Flow内开发一个自定义步骤来调用DeepSeek等大模型,对云效Codeup提交的代码评审进行智能评审,并通过云效的API,将这些评审意见回写到合并请求中。 同时,结合云效流水线Flow的能力还可以对提交的代码进行单元测试、代码扫描等任务,并将这些结果一并展示回云效Codeup的提交历史中,反馈每个commit的代码质量状态 • AI 代码审查:使用大模型(Qwen、DeepSeek 等)对 MR 进行代码审查。 • 问题检测:聚焦于冗余代码、逻辑错误、潜在问题、SQL 性能优化等关键维度。 • 自动生成评论:根据模型输出的问题,自动在 MR 上提交评论。 • 支持多种模型:可选择不同的大模型进行代码审查。2025-7-1 AI
Java 多线程全文深度剖析学习思考Java 多线程编程是 Java 开发中的核心技术之一,它涉及到线程基础、锁机制、线程间通信、并发工具类等多个方面的知识。通过深入理解多线程的核心原理,熟练掌握 JUC 包中的各类工具类和工具方法,结合线程池等技术,我们可以高效地解决各种复杂的并发问题,提升系统的性能和可靠性。在实际开发中,要根据具体的应用场景合理地选择和使用多线程技术,避免过度设计或滥用,从而实现高效、稳定的并发程序。2025-6-26 Java 多线程
Spring Boot加载与Bean处理的细节剖析学习思考本文深入剖析了Spring Boot的加载与Bean处理过程,详细介绍了启动核心流程、Bean处理细节、优化策略等关键内容。从Bean的实例化、加载策略到依赖注入,再到优化Bean处理、配置文件加载、性能监控等多方面进行了全面探讨,并提供了具体的优化方法和实践建议,旨在帮助读者更好地理解和优化Spring Boot应用的启动过程与性能。2025-6-23 Spring
Spring Boot项目启动优化学习思考本文系统分析并优化了一个Spring Boot项目启动耗时高达280秒的问题。通过追踪各阶段耗时、识别瓶颈、优化分库分表加载逻辑、异步初始化耗时任务等手段,最终将启动耗时缩短至159秒,提升近50%。文章详细介绍了启动流程分析、性能热点识别、异步初始化设计等关键技术细节,为大型Spring Boot项目性能优化提供了参考。 2025-6-23 Spring
Spring AI 中的 DocumentTransformer 与 RAG 深度解析技术分享本文将深入解析 Spring AI 中的 DocumentTransformer 和检索增强生成(RAG)模块,详细讲解每个核心类的功能、参数、使用方法以及高级技巧。通过结合实际代码示例和应用场景,帮助开发者全面掌握这些组件的使用。2025-6-20 AI SpringAI
Spring AI 架构解析与核心模块实践技术分享Spring AI 架构解析与核心模块实践 在当今数字化转型的浪潮中,人工智能(AI)技术正逐渐成为推动业务创新的关键力量。Spring AI 作为 Spring 生态系统中的一员,为开发者提供了一种简单而高效的方式来集成 AI 功能。作为一名专注于 Java 技术的开发者,我深入研究了 Spring AI 的架构、核心模块以及其实现方式,并在此分享我的学习心得和实践代码。2025-6-19 WebFlux 学习 AI SpringAI
流程条件表达式技术方案技术分享本条件表达式模块是流程引擎的核心决策组件,采用Spring Expression Language(SpEL)实现动态逻辑判断,支撑复杂业务流程的智能化路由。通过灵活的条件配置和强大的表达式解析能力,为企业级审批流系统提供高效、可靠的决策支持。2025-4-16 流程引擎 低代码 审批流
一个超实用的Java集合处理库——collection-complete技术分享在Java开发中,我们经常需要对集合数据进行各种操作,比如批量获取用户信息、订单信息等。如果处理不当,很容易导致代码冗余、性能低下等问题。今天给大家介绍一个我最近发现的超实用的Java集合处理库——collection-complete。 collection-complete是一个用于处理集合数据并补充相关信息的Java库。它提供了链式调用的功能,可以方便地对集合中的元素进行批量操作和属性补充。这个库的设计理念是简化集合数据的处理流程,让开发者能够更高效地完成业务逻辑的实现。2025-2-24 Java 工具 异步编程
Java IO — NIO Channel学习思考在上一章NIO Channel篇中我们解释了它在NIO中的作用。Channel(通道)是一个核心概念,它提供了与IO设备(如文件、网络套接字等)进行数据传输的能力。下面我将从多个方面详细讲解NIO的Channel。Channel本身不直接存储数据,它通过与Buffer(缓冲区)的交互来实现数据的读写。数据首先被读入到Buffer中,然后再从Buffer中写入到Channel,或者从Channel读入到Buffer。 Channel的工作原理 • 与Buffer的交互:Channel本身不直接存储数据,它通过与Buffer(缓冲区)的交互来实现数据的读写。数据首先被读入到Buffer中,然后再从Buffer中写入到Channel,或者从Channel读入到Buffer。 • 非阻塞模式:Channel支持非阻塞模式,这意味着线程可以在等待IO操作完成时继续执行其他任务,而不是被阻塞。这大大提高了程序的并发处理能力。 • Selector机制:NIO还提供了Selector机制,它允许单个线程同时处理多个Channel的IO事件。Selector会不断地轮询注册在其上的Channel,检查是否有IO事件发生,并通知相应的线程进行处理。2024-10-21 Java NIO 异步编程 学习 IO
Java IO — NIO Buffer学习思考在上一章中我们介绍的 NIO模型的核心组件 以及其运行流程 知道如何简单使用 buffer 之后,下面就来探究一下 buffer 的底层原理。 Buffer 的原理主要在于它的四个属性: • mark:在缓冲区操作过程当中,可以将当前的 position 的值临时存入 mark 属性中,需要的时候再取出,恢复到之前的 position,重新从之前的 position 位置开始处理。调用 mark() 方法来设置 mark=position,再调用 reset() 可以让 position 恢复到 mark 标记的位置,即 position=mark • position:位置,读或写都会改变位置 • limit:表示缓冲区的当前终点,不能对缓冲区超过极限的位置进行读写操作,极限可以修改 • capacity:容量,在缓冲区创建时设定且不可修改,比如前面创建的缓冲区容量就是 1024 且不可修改2024-10-21 Java IO NIO 学习 异步编程
Java IO — IO/NIO模型学习思考在Java中,IO(输入/输出)操作是核心组成部分,尤其是在网络编程和文件操作中。随着Java的发展,IO模型也在不断进化,以适应不同的应用场景和性能需求。本文将详细介绍Java中的三种主要IO模型:阻塞IO(BIO)、非阻塞IO(NIO)和异步非阻塞IO(AIO)。2024-10-21 Java 异步编程 多线程 学习 IO NIO