- 博客(460)
- 收藏
- 关注
原创 LangChain4j 初识,想使用Java开发AI应用?
是一个基于 Java 的开源框架,用于开发人工智能驱动的应用程序,尤其是涉及大语言模型(LLM)交互的场景。它的设计目标是简化开发者与大语言模型的集成过程,提供一套工具和组件来处理复杂的 LLM 应用逻辑,例如对话管理、提示工程、工具调用等。
2025-06-10 11:08:55
517
原创 C#代码如何影响CPU缓存速度?
CacheLine是CPU缓存中最小数据单元,当CPU从内存中读取数据时,会一次性加载64byte的数据,而不是只加载特定数据,即使只想读取1bit数据,也会加载64byte数据。因此总线数量的多少决定了可以传递内存地址的大小,比如你有32根总线,就代表你总线宽度32。可以看到,假设CPU要读取1kb的数据,你的数据总线总线只有64根,1024/8=128,你需要来回倒腾128次,才能读取完毕,这一来二去就加大了内存之间的延迟,为了优化此性能瓶颈,,这个桥梁的名字叫做内存总线。数据总线(Data Bus)
2025-06-09 17:25:50
753
原创 什么是低代码?低代码开发的意义在哪?
在数字化时代,企业对应用程序的需求呈井喷式增长,传统软件开发方式面临着开发周期长、成本高、技术门槛高的困境,难以快速响应业务变化。低代码开发的出现,如同一股春风,为软件开发领域带来了新的生机与活力。
2025-06-07 10:20:31
741
原创 为什么架构师都在偷偷练系统思维?
系统思维不是天生就有的,而是在实践中不断培养和锻炼出来的。顶级架构师会在每个项目中不断实践系统思维,从需求分析、架构设计、开发实现到系统维护,每个环节都运用系统思维去思考。在项目结束后,他们会进行总结复盘,分析系统设计中存在的问题,比如哪些地方考虑不周全,哪些技术方案不够合理,哪些模块的耦合度太高等等。通过总结复盘,不断改进自己的系统思维,提高自己的架构设计能力。比如,在一个 Java 项目中,可能会发现某个模块的异常处理不够完善,导致系统出现了一些不可预知的错误。
2025-06-05 11:28:17
972
原创 低代码时代,让“双手”再解放一点
IDC研究报告揭示惊人数据:79%的企业因开发速度滞后错失商机,43%的IT预算消耗在老旧系统维护中。:Java/Python开发岗薪资年涨15%,顶尖人才流向大厂(数据来源:BOSS直聘2023):银行信贷经理用JNPF搭建风控模型,出错率反降27%(民生银行案例)▸ 。:1张审批表单开发=3天前端+2天后端+1.5天测试(某央企IT部门实测):85%研发资源用于基础功能维护,仅15%投入AI/区块链等前沿领域。:深圳某区政府“智慧防疫平台”从立项到上线仅72小时▸ 。
2025-06-03 11:59:57
540
原创 .NET Dump 中的 Linux信号机制
简单的说Linux信号是一种进程间通信机制,大概可以做三件事情。通知进程发生了某种事件,比如:段错误。允许进程间发送简单的消息。控制进程行为,比如:终止、暂停、继续等。信号名称信号编号说明SIGQUIT3通常由 Ctrl+\ 触发SIGILL4非法指令SIGABRT6由 abort() 函数产生SIGFPE8浮点异常SIGSEGV11段错误(非法内存访问)SIGBUS7总线错误(内存访问对齐问题等)SIGSYS31错误的系统调用SIGTRAP5。
2025-05-29 17:42:10
729
原创 最近大火的AI对低代码技术的影响
AI赋能低代码开发的技术革新 AI技术正深度融入低代码平台(如JNPF),从四个维度推动变革: 效率提升:智能生成代码、自动纠错补全,减少40%-60%编码时间; 智能化增强:通过组件推荐和流程优化分析,精准匹配业务需求; 门槛降低:自然语言交互和智能引导,使非技术人员可参与开发; 质量优化:AI自动生成测试用例、监测性能瓶颈,提供解决方案。 此外,AI还推动低代码向图像/语音识别、物联网等新领域拓展,加速企业数字化转型。
2025-05-29 16:11:32
750
原创 SpringBoot性能优化的12个小技巧
一次性查询了所有的订单,全表扫描50万数据,导致接口查询性能很差,严重的时候可能会导致OOM问题。问题定位未分页查询无缓存机制未启用批量处理性能优化必须贯穿开发全流程。今天这篇文章,跟大家一起聊聊SpringBoot优化的12招,希望对你会有所帮助。问题场景默认线程池导致资源竞争优化方案10, // 核心线程50, // 最大线程在高并发业务场景中,使用Executors类创建默认的线程池,可能会导致OOM问题。因此,我们需要自定义线程池。连接池参数按业务调整。
2025-05-26 15:44:23
638
原创 使用Vite创建一个动态网页的前端项目
之所以选择使用原生JS项目没有使用框架,是因为笔者想研究一下比较底层的实现,以及对比体会一些框架的设计思路。当然不能重复造轮子,但是也不能离开这些轮子就啥都不会了,理解一些更深层次、更底层的东西,有助于我们更新换代,使用更好的轮子。
2025-05-23 17:19:04
717
原创 如何反向绘制出 .NET程序 异步方法调用栈
此外,JNPF支持全源码交付,完全支持根据公司、项目需求、业务需求进行二次改造开发或内网部署,具备多角色门户、登录认证、组织管理、角色授权、表单设计、流程设计、页面配置、报表设计、门户配置、代码生成工具等开箱即用的在线服务。这个问题源于给训练营里的一位朋友分析的卡死dump,在分析期间我需要知道某一个异步方法的调用栈,但程序是 .framework 4.8 ,没有sos后续版本独有的。,通过简单的拖拉拽操作,开发者能够高效完成软件开发,提高开发效率,减少代码编写工作。哈哈,点醒了我什么呢?
2025-05-12 17:17:20
960
原创 Java实现minio上传文件加解密操作
此外,JNPF支持全源码交付,完全支持根据公司、项目需求、业务需求进行二次改造开发或内网部署,具备多角色门户、登录认证、组织管理、角色授权、表单设计、流程设计、页面配置、报表设计、门户配置、代码生成工具等开箱即用的在线服务。JNPF基于SpringBoot+Vue.js,提供了一个适合所有水平用户的低代码学习平台,无论是有经验的开发者还是编程新手,都可以在这里找到适合自己的学习路径。,通过简单的拖拉拽操作,开发者能够高效完成软件开发,提高开发效率,减少代码编写工作。在云存储场景中,数据安全是核心需求之一。
2025-05-09 15:13:56
1003
原创 SpringBoot中的拦截器江湖
本文以梁山为背景,生动地介绍了SpringBoot中的六种拦截器及其应用场景。首先,Filter作为全局拦截器,适用于安全校验和日志记录;其次,HandlerInterceptor用于MVC控制层的权限控制;AOP拦截器则专注于业务方法级的缓存和事务管理;RestTemplate拦截器用于HTTP客户端的服务间调用;Feign拦截器在微服务通信中发挥重要作用;最后,WebFilter适用于响应式编程的全链路处理。文章还提供了使用这些拦截器的注意事项和最佳实践,强调了拦截器的顺序选择和性能监控的重要性。通过这
2025-05-09 14:50:28
891
原创 Prometheus配置docker采集器
在定义好 docker-compose.yml 和 prometheus.yml 后,使用以下命令启动服务: docker-compose up -d 使用命令可以在后台运行容器,并且你可以使用以下命令查看运行状态: docker-compose ps。此外,JNPF支持全源码交付,完全支持根据公司、项目需求、业务需求进行二次改造开发或内网部署,具备多角色门户、登录认证、组织管理、角色授权、表单设计、流程设计、页面配置、报表设计、门户配置、代码生成工具等开箱即用的在线服务。# 安装 Docker。
2025-04-23 11:36:13
854
原创 Java Streams 使用教程
Stream是Java 8引入的一个 函数式编程特性,可以让我们用声明式的方式操作集合(如等)。从集合中提取数据(流)对数据做中间操作(最后做终端操作(维度C# LINQ可读性简洁,但不支持 SQL 风格支持 SQL 风格,阅读更直观灵活性借助Collectors可以做很多操作LINQ本身功能更丰富多线程处理(粗粒度)PLINQ(细粒度)数据源支持Java 集合体系.NET 集合体系 + 数据库 IQueryable底层机制基于中间操作链和终结操作基于延迟计算迭代器。
2025-04-21 10:23:17
875
原创 MySQL 事务实现机制:从原理到实践的深度解析
事务简单来说就是一组操作的集合,要么全部执行成功,要么全部失败回滚。想象你在 ATM 机上转账,从账户 A 扣款并存入账户 B,这两步必须同时成功或同时失败,否则就会出现钱扣了但没到账,或者钱到账了但没扣款的情况。是否开始事务操作1: 从账户A扣款操作2: 向账户B存款成功?提交事务回滚事务下表总结了 MySQL 事务实现的关键机制及其作用:机制实现方式解决的问题相关参数原子性Undo Log确保事务要么全部完成要么全部回滚一致性依赖原子性和隔离性。
2025-04-18 17:22:10
757
原创 微服务架构的守护者:Redisson 分布式锁与看门狗机制实战指南
在单机应用中,可以使用 Java 内置的锁机制(如 synchronized、ReentrantLock 等)来实现线程间的同步。但在分布式环境下,由于应用部署在多台服务器上,传统的单机锁无法满足需求,这时就需要分布式锁。分布式锁是一种跨 JVM、跨服务器的锁机制,它能够在分布式系统中对共享资源进行互斥访问控制,确保在同一时间只有一个客户端可以获得锁并执行操作。Redisson 是一个在 Redis 基础上实现的 Java 驻内存数据网格(In-Memory Data Grid)。
2025-04-11 15:32:52
687
原创 微服务拆分的原则、时机、方法以及常见问题
在平常情况下,技术架构会随着业务规模大小、团队人数多少、技术债积累速度等动态变化。当然,引起架构变化最主要的因素还是业务发展速度。在以前的单体架构到微服务架构演进历程 文章2 等文章中,有一张架构演进的图,如下:(巨型单体到微服务架构的演进)这张架构演进图,说明了架构的变化和演进的总方向。演进到微服务架构,它中间有几次架构变迁和发展的过程。当然,这张架构演进图有一个缺憾,大单体应用架构后面缺一张模块化的单体架构图,也就是说把大单体拆分为模块化的大单体。
2025-04-11 15:00:55
1006
原创 企业管理中,一个好用的管理工具为何如此重要?
这是一个基于 Java Boot/.Net Core 构建的简单、跨平台快速开发框架。前后端封装了上千个常用类,方便扩展;集成了代码生成器,支持前后端业务代码生成,实现快速开发,提升工作效率;框架集成了表单、报表、图表、大屏等各种常用的 Demo 方便直接使用;后端框架支持 Vue2、Vue3。同时,强强联合还有助于企业实现规模效应,降低生产成本,提高市场占有率。通过资源的优化配置和共享,企业可以在激烈的市场竞争中占据有利地位,实现可持续发展。
2025-04-10 15:14:13
867
原创 MySQL 的四种社交障碍等级
想象一下,数据库是一个繁忙的餐厅,每个事务都是一桌客人,而数据就是美食。当甲桌客人正在吃饭时,乙桌客人能看到什么?
2025-04-10 14:32:10
926
原创 AMS行政管理系统:数字化赋能人力资源精益管理
企业行政从“成本中心”转型到“效率引擎”、从“人事管理”到“人才战略”的跨越,其价值体现在将分散的行政动作转化为标准化、可视化的数据资产,从而支撑企业敏捷响应市场变化。的技术支持下配备了6个开发人员,耗时90天开发出了AMS行政管理平台,是一种企业内部管理软件,旨在提高企业的行政管理效率和协同办公能力。万控智造股份有限公司是全国知名的电气机柜行业领军企业,拥有强大的科技研发能力,持续引领行业技术发展,是上海证券交易所主板上市企业。AMS系统已超越传统管理软件范畴,成为企业。,AMS系统通过。
2025-04-09 15:59:24
773
原创 K8s Ingress的产生背景和实现机制
本文记录了k8s中核心对象Ingress的产生背景和实现机制。我们都知道k8s Service是一种将Pods通过网络暴露出来的抽象,每个服务定义了一组有关Pod的端点, Service有几种类型这不明摆了,常规的对外暴露服务的方式只有NodePort吗?NodePort类型建立在ClusterIP服务类型之上, 意味着你创建了NodePort类型服务,k8s自动创建了ClusterIP 服务。外部客户端---> 任意节点(NodePort)---> ClusterIP服务---> Pod。
2025-04-02 15:41:12
1196
原创 什么是mysql中的分区表?
通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。
2025-04-02 11:43:58
1063
原创 模型的泛化性能度量:方法、比较与实现
模型的泛化性能度量是机器学习流程中不可或缺的一环。通过合理选择和运用不同的度量方法,我们能够全面、客观地评估模型在未知数据上的表现,为模型的优化和实际应用提供坚实的依据。在实际项目中,应根据数据特点、业务需求以及模型类型等因素,灵活选择合适的度量指标,充分发挥各指标的优势,确保模型在复杂多变的现实场景中稳定、高效地运行。
2025-03-27 13:49:15
726
原创 Vue3组合式API终极指南,彻底掌握高效开发!
在Vue3从发布到今天,组合式API已成为现代前端开发的标杆设计模式。本文通过真实项目场景,深度解析组合式API的核心特性,配以完整代码示例,助你彻底掌握企业级Vue应用开发精髓。通过本篇文章的解析,相信你已经掌握了Vue3组合式API的核心精髓。建议结合官方文档和Vue Mastery课程进行系统化学习。欢迎在评论区分享您的实战经验!
2025-03-25 14:40:05
339
原创 深入理解Base64编码原理
上篇文章有涉及到Base64编码的内容,今天我们再来详细了解一下Base64的编码原理以及应用场景。什么是Base64,为什么需要Base64?Base64的编码原理Base64的应用场景Base64是一种用于传输8bit字节数据的编码方式,Base64 的字符集包含 64 个字符(A-Z、a-z、0-9、+、/)以及补位的=⚠️需要注意的是它只是一种编码方式,并不是加密方式!!!因为对于Base64来讲,它没有密钥的概念,这意味着任何人都能轻松地将Base64编码的数据还原为原始字符。
2025-03-18 16:27:51
1005
原创 MySQL查询建表规范
因为之前一直再查找一些比较好的数据库规范,以方便在开发时连接 MySQL 进行查询/建表的时候,能根据规范来执行,达到提高 查询速度 / 执行 SQL 的性能 和提升 MySQL 的整体性能, 这里主要是存放一些比较好的一些数据库设计规范(主要用了公司某位同事整理的数据库规范,已得到该大佬的授权),我在此基础上增补了部分规则。
2025-03-17 17:58:11
770
原创 .NET Core 中如何实现缓存的预热?
缓存预热,顾名思义,就是在系统启动或缓存失效后,主动将热点数据加载到缓存中,避免用户首次请求时直接访问数据库,造成性能瓶颈。缓存预热是提升 .NET Core 应用性能的重要手段。通过合理的预热策略,可以有效提升用户体验、降低数据库压力、提高系统稳定性。希望本文能帮助你更好地理解和应用缓存预热技术。转载出处:https://www.cnblogs.com/liyongqiang-cc/p/18737994。
2025-03-14 11:09:05
901
原创 低代码是成本 “屠夫”?用过发现果然名不虚传
养程序员比养设备还贵!”这是浙江某机械厂老板的怒吼。2023年,某行业报告显示:。:一个基础MES系统开发需5名程序员+3个月:从需求调研到测试上线,动辄半年起步,市场风口早被对手抢光;:系统卡顿、Bug修复、接口升级,每年烧掉20%净利润。在当今数字化浪潮席卷的商业世界中,企业对于软件开发的需求与日俱增。然而,传统软件开发模式往往伴随着高昂的成本投入,这让众多企业望而却步。此时,低代码技术的出现,宛如一道曙光,打破了成本困境,被人们形象地称为成本 “屠夫”,其在削减成本方面的实力究竟如何。
2025-03-13 15:49:57
873
原创 太香了!Spring 官宣接入 DeepSeek
Spring AI是Spring官方推出的开源框架,旨在为Java开发者提供方便的AI集成能力。其核心是通过抽象化和模块化设计,简化AI功能的接入步骤,同时保持与Spring生态的无缝兼容。以下是其主要特点与功能:统一的抽象API:支持主流AI服务,如 OpenAI、DeepSeek、Google、和Ollama等,提供了提供标准化的接口。核心功能模块:模型交互、向量处理、检索增强生成(RAG)、函数调用。
2025-03-13 11:07:16
1366
原创 程序员在未来 20 年,会被 ChatGPT 替代吗?
在一些重复性、规律性强的编程工作中,比如创建常见的数据库表结构,或是编写固定格式的 API 接口调用代码,ChatGPT 能凭借海量的代码数据学习,快速生成符合常规标准的代码,让程序员从繁琐的基础代码编写中解放出来。它能根据自然语言描述生成代码,在简单编程任务上,比如生成基础的网站前端代码,或是简单的数据处理脚本,ChatGPT 能快速给出可用的代码片段,这能大幅提升工作效率。从理解业务需求来看,程序员要深入与客户、业务团队沟通,明白业务流程的来龙去脉,理解背后的商业逻辑,从而设计出最适合的技术方案。
2025-03-11 15:44:02
791
原创 AI与.NET技术实操系列:ML.NET篇
ML.NET是微软推出的开源机器学习框架,专为.NET开发者设计。它允许开发者在不离开.NET生态系统的情况下,构建、训练和部署机器学习模型。ML.NET支持多种机器学习任务,包括分类、回归、聚类、异常检测、推荐系统等,并提供了易于使用的API,使得开发者能够快速上手。与传统的机器学习框架如TensorFlow或PyTorch相比,ML.NET的优势在于其与.NET平台的无缝集成。开发者可以使用C#或F#等熟悉的语言进行开发,无需学习新的编程语言或环境。
2025-03-11 11:21:51
938
原创 Cython与CUDA之Add
本文介绍了使用CUDA和Cython来实现一个CUDA加法算子的方法,并介绍了使用CUDA参数来估算性能极限的算法。经过实际测试,核函数部分的算法性能优化空间已经不是很大了,更多时候可以考虑使用Stream来优化Host和Device之间的数据传输。
2025-03-10 16:18:20
783
原创 创建一个MCP服务器,并在Cline中使用,增强自定义功能
MCP 是一个开放协议,它标准化了应用程序如何向LLMs提供上下文。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种标准化的方法来将您的设备连接到各种外围设备和配件一样,MCP 提供了一种标准化的方法来将 AI 模型连接到不同的数据源和工具。MCP 帮助您在 LLMs 之上构建代理和复杂的工作流程。一个不断增长的预构建集成列表,您的 LLM 可以直接插入其中在LLM供应商和厂商之间切换的灵活性在您的基础设施内保护数据的最佳实践。
2025-03-05 11:44:12
2008
1
原创 AI与.NET技术实操系列
AI正在重塑软件开发的未来,而.NET平台为开发者提供了强大的支持,使他们能够轻松拥抱这一变革。本文通过介绍AI的基础概念、.NET平台的支持、实际应用场景以及未来展望,旨在为有一定.NET经验的开发者提供一个全面而深入的指南。从ML.NET到Semantic Kernel,再到Azure AI Services,.NET生态系统为开发者提供了多样化的工具,帮助他们将AI集成到应用程序中。无论是构建智能客服系统,还是优化业务流程,AI与.NET的结合都为开发者开辟了新的可能性。
2025-03-04 14:23:46
1071
原创 .NET内存居高不下排查怎么解决
服务内存曲线高居不下是因为容器没有被限制内存,K8s没有指定内存limit,可用内存就是节点/宿主机的物理内存,高达4GB。没有设置内存limit,但是设置了HPA,于是服务一启动经过一些时间内存超过HPA阈值造成副本数增加;GC默认是Server GC,其感知的内存足够所以不释放(包括小对象和大对象)。虽然主动调用GC.Collect则可以释放,但一般不会这样做,因为GC有自己的一套逻辑。
2025-03-04 11:55:26
1074
原创 面向研发人群,数百种功能控件+大量实用模板
一个适合所有水平的用户的低代码学习平台,无论是有经验的开发者还是编程新手,都可以在这里找到适合自己的学习路径。这些组件都是经过优化和测试的,可以满足大多数业务需求,从而减少开发人员的工作量,避免大量的编码工作和测试工作。的迭代速度,虽然低代码赛道仍有诸多竞争者,但JNPF的产品在使用上还是获得了一致好评,相信随着JNPF功能的逐步完善能够为开发者创造更多便捷和价值。,这是市面上很少会出现的机制,基于源码你可以很清晰的看到整个平台的设计思路,这对于程序员来说,收益将颇多。
2025-03-04 10:48:05
1047
原创 “码农”成长记:人要学会与时俱进
比如,在开发企业管理系统时,通过 JNPF 平台,只需简单地拖拽几个组件,配置一下数据,就能快速搭建出用户界面,实现数据的增删改查等基本功能。就在这个时候,低代码出现了,它就像是江湖中的一位神秘高手,带来了全新的解决方案。所以,对于广大程序员来说,不要害怕成长路上的困难,因为总会有像低代码、像 JNPF 这样的好帮手出现,帮助我们在代码的世界里越走越远,实现自己的价值。程序员们发现,自己花费大量时间在一些重复的、繁琐的代码编写工作上,就像陷入了一个无尽的循环,每天都在做着类似的事情,效率却越来越低。
2025-03-03 11:58:29
271
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人