- 博客(78)
- 收藏
- 关注
原创 LangChain与LangGraph详解:用法、差异与实战指南
在大语言模型(LLM)应用开发领域,LangChain和LangGraph是两款由LangChain公司推出的核心框架,二者相辅相成,却又定位迥异。LangChain以“组件化拼接”降低LLM应用开发门槛,是新手入门的首选工具;LangGraph以“图结构编排”解决复杂流程控制问题,是生产级复杂智能体(Agent)开发的核心引擎。本文将从框架定位、核心用法、实操案例、核心差异四个维度,全面解析两者的特点与应用场景,帮助开发者精准选型、高效落地。
2026-05-20 13:51:01
1649
原创 大模型学习规划
摘要:本文为零基础学习者提供大模型应用开发的系统学习指南。作者通过自身踩坑经历,明确"专注上层应用开发"的学习定位,避免底层算法研究。文章梳理了AI技术层级关系,通俗解释机器学习、神经网络等核心概念,重点介绍Transformer架构及大模型关键技术名词。详细讲解了RAG知识库和Agent智能体的开发逻辑,并划分了必学、了解和无需学习的内容范围。最后提出从Python基础到项目实战的简明学习路线,强调应用开发的核心是整合能力和业务落地,而非数学推导。全文采用通俗易懂的表达方式,帮助初学者
2026-05-11 22:03:10
438
1
原创 Redis详解|从基础到面试高频题
Redis是高性能键值数据库,被称为“缓存之王”,广泛应用于后端开发。本文系统讲解Redis核心知识,包括:1)基础特性:内存存储、单线程模型、丰富数据结构;2)5种核心数据类型及应用场景;3)高频面试题解析:单线程高效原因、缓存一致性问题、分布式锁实现等;4)实战优化:热key处理、大key拆分、持久化配置等。文章涵盖Redis从基础到高级的内容,兼顾学习与面试需求,帮助开发者全面掌握这一必备中间件。
2026-04-24 17:41:46
436
原创 从网络基础到吃透 Linux 高并发 I/O 核心(epoll+零拷贝 完整版)
本文是 Linux 高并发 I/O 核心知识点的系统性总结,从网络通信底层原理入手,逐步拆解 I/O 多路复用(select/poll/epoll)、epoll 原理与实现、零拷贝技术。
2026-04-07 17:37:20
465
原创 彻底搞懂内存、进程与线程,一篇就够
内存管理、进程线程调度、并发控制是基础且核心的内容,以下通过问答形式,系统梳理相关知识点,帮你打通从硬件到软件的完整逻辑,理解各概念的关联与本质。
2026-04-03 17:07:54
366
原创 深度剖析:从 URL 请求到页面渲染的完整链路
用户输入URL → DNS域名解析(获取服务器IP) → TCP三次握手(建立可靠连接) → (HTTPS场景)TLS握手(加密传输) → 浏览器发送HTTP请求 → 负载均衡/网关转发 → 后端服务处理请求(业务逻辑+缓存/数据库操作) → 服务器返回HTTP响应 → TCP四次挥手(关闭连接) → 浏览器解析渲染
2026-04-01 14:50:32
376
原创 Protobuf详解(从安装到实战)
本文介绍了Google开发的Protobuf协议及其应用。首先概述了Protobuf的核心优势:二进制编码效率高、跨语言跨平台支持、强类型约束等,适用于RPC通信、数据存储等场景。接着详细讲解了Linux环境下Protobuf的安装步骤,包括依赖安装、源码编译配置等。最后通过一个C++项目实战演示了Protobuf的使用流程:定义.proto文件结构、生成代码、序列化/反序列化操作,并提供了完整的CMake构建配置。文中特别强调了版本一致性、路径配置等关键注意事项,为开发者提供了完整的Protobuf应用指
2025-12-20 13:46:42
2852
原创 golang之go modules
GoModules三个阶段。GOPATH全局共享依赖但易冲突,GoVendor实现项目隔离但维护繁琐,GoModules通过go.mod/go.sum文件实现版本控制、自动解析依赖、缓存共享和安全校验,支持语义化版本管理。
2025-09-09 14:24:50
1250
原创 uml图学习应用,实战项目
UML(Unified Modeling Language,统一建模语言)是一种标准化的图形化建模语言,用于软件系统的分析、设计、实现和文档化
2025-07-24 13:32:28
1117
原创 CGO:Go 调用 C++ 代码
CGO 为 Go 提供了强大的扩展能力,可以重用现有的 C/C++ 代码库。然而,它也需要开发者注意内存管理、类型安全和构建复杂性等问题。
2025-07-17 15:09:08
634
原创 关联远程Gitee仓库并上传代码详细教程
1. 登录gitee,点击右上角头像,选择“设置”,选择“SSH公钥”,点击“添加SSH公钥”,将本地的SSH公钥粘贴到输入框中,点击“添加SSH公钥”按钮。# 登录gitee,点击右上角头像,选择“设置”,选择“SSH公钥”,点击“添加SSH公钥”,将本地的SSH公钥粘贴到输入框中,点击“添加SSH公钥”按钮。4. 点击左侧活动栏中的“源代码管理”,点击右上角的“Gitee”,点击“克隆”按钮,输入gitee仓库的地址,点击“克隆”按钮。# 创建你的个人分支(从develop分支创建)
2025-06-27 13:29:53
675
原创 struct和union大小计算规则
一:联合类型的定义联合也是一种特殊的自定义类型,这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)比如:共用了 i 这个较大的空间二: 联合的特点联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员)。由图可知: c 和 i 的起始地址一致。三: 联合大小的计算联合的大小至少是最大成员的大小。
2024-05-09 21:18:51
784
原创 stat 详细介绍及用法
n 或 --numeric:显示 IP 地址和端口号的数字格式,而不进行反向解析。-c 或 --continuous:连续显示结果,而不只显示一次。-p 或 --program:显示对应的进程 ID 和进程名称。-l 或 --listening:显示仅处于监听状态的端口。-s 或 --statistics:显示网络统计数据。-t 或 --tcp:显示 TCP 协议相关的连接。-u 或 --udp:显示 UDP 协议相关的连接。-a 或 --all:显示所有连接和监听端口。二、Netstat 的常见选项。
2024-04-25 13:52:36
500
原创 epoll合集
用于在 Linux 中管理异步 I/O 事件。组成部分:用法: 函数用于向文件描述符 引用的 实例执行控制操作。具体而言:以下是 函数的参数说明: 可以是以下几个宏的集合: 函数用于在 Linux 中创建一个 实例。让我们详细了解一下:定义:用法:优势:最大链接数 是 Linux 下的一个函数,用于等待事件的发生。它是 接口的一部分,用于高效地处理大量文件描述符的 I/O 事件。以下是 函数的详细描述:定义:返回值:
2024-03-16 21:25:46
962
原创 Linux线程(一)剖析
教材观点:线程就是一个执行分支、执行粒度比进程更细、调度成本更低线程就是进程内部的一个执行流内核观点:进程是承担系统资源分配的基本实体,而线程是CPU运行的基本单位线程是对以往进程概念的补充完善,正确理解线程概念是一件十分重要的事1.2 线程理解理解线程之前需要先简单回顾一下进程程序运行后,相关的代码和数据会被load到内存中,然后操作系统为其创建对应的PCB数据结构、生成虚拟地址空间、分配对应的资源,并通过页表建立映射关系进程之间是相互独立即使是父子进程,他们也有各自的。
2024-02-26 17:44:31
1090
原创 Linux进程 ----- 信号产生
信号 是信息传递的承载方式,一种信号往往代表着一种执行动作:上课铃声,红绿灯,电话铃声当然这些都是生活中的 信号,当产生这些 信号 时,我们会立马想到对应的 动作 ,这是因为 我们认识并能处理这些信号我们能进行处理是因为受过教育,学习了执行动作,但对进程来说,它可没有接受过九年义务教育,也不知道什么时候该干什么事于是程序员们给操作系统植入了一批 指令,一个指令表示一种特殊动作,而这些指令就是 信号(进程信号)
2024-02-20 18:06:42
930
原创 Linux进程间通信(三)-----System V消息队列
消息队列实际上就是在系统当中创建了一个队列,队列当中的每个成员都是一个数据块,这些数据块都由类型和信息两部分构成,两个互相通信的进程通过某种方式看到同一个消息队列,这两个进程向对方发数据时,都在消息队列的队尾添加数据块,这两个进程获取数据块时,都在消息队列的队头取数据块。其中消息队列当中的某一个数据块是由谁发送给谁的,取决于数据块的类型。生命周期是随内核的。
2024-02-17 15:55:53
966
1
原创 Linux进程间通信(二)-----system V共享内存
共享内存让不同进程看到同一份资源的方式就是,在物理内存当中申请一块内存空间,然后将这块内存空间分别与各个进程各自的页表之间建立映射,再在虚拟地址空间当中开辟空间并将虚拟地址填充到各自页表的对应位置,使得虚拟地址和物理地址之间建立起对应关系,至此这些进程便看到了同一份物理内存,这块物理内存就叫做共享内存。这里所说的开辟物理空间、建立映射等操作都是调用系统接口完成的,也就是说这些动作都由操作系统来完成。
2024-02-16 18:34:06
907
原创 Linux进程间通信(一)-----管道
管道是Unix中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的数据流称为一个“管道”。例如,统计我们当前使用云服务器上的登录用户个数。其中,who命令和wc命令都是两个程序,当它们运行起来后就变成了两个进程,who进程通过标准输出将数据打到“管道”当中,wc进程再通过标准输入从“管道”当中读取数据,至此便完成了数据的传输,进而完成数据的进一步加工处理。who命令用于查看当前云服务器的登录用户(一行显示一个用户),wc -l用于统计当前的行数。
2024-02-15 17:45:49
1263
原创 Linux环境变量剖析
概念:环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序所将使用到的信息,总结用户一般通过shell跟内核通信,对于linux系统,具体的shell就是bash,从而就有了bash环境,在bash环境中就会有很多默认的环境变量,例如PATH,环境中储粮有环境变量还有自定义变量。如何理解变量:变量就是可以随意给其赋值的一个存储单元,其作用要么是被赋值要么是被读取值。
2023-12-24 14:25:12
987
原创 C++异常剖析
只有C++标准库自带的异常类型肯定是不够用的,我们实际工作中还需要根据项目需求定义新的异常类型。class DivisionZeroException :public exception//基于exception类定义新的异常类型除以0导致的异常类public://这里重载了父类的虚函数what()//throw ()的括号里面没有东西,这表示这个函数不会抛出任何异常//const 是常量的关键字,常量在定义后无法被修改return "出现了除以0的错误\n";trythrow e;
2023-12-08 21:59:31
1102
原创 C++智能指针剖析
memoryLeak1函数中,new了一个字符串指针,但是没有delete就已经return结束函数了,导致内存没有被释放,内存泄露!memoryLeak2函数中,new了一个字符串指针,虽然在函数末尾有些释放内存的代码delete str,但是在delete之前就已经return了,所以内存也没有被释放,内存泄露!使用指针,我们没有释放,就会造成内存泄露。但是我们使用普通对象却不会!智能指针就是通过这个原理来解决指针自动释放的问题!自动调用了析构函数。???
2023-12-06 15:45:36
896
原创 C++11新特性(上)
相比C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。相比较而言,C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率。
2023-11-29 16:37:10
964
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅