- 博客(29)
- 收藏
- 关注
原创 在 Zustand 中实现 computed 的方式
## 性能对比与最佳实践| 方案 | 缓存粒度 | 实现复杂度 | 适用场景 ||------|---------|-----------|---------|| 直接 selector | 无缓存 | 低 | 简单计算 || 工厂函数 + useMemo | 依赖级 | 中 | 复杂计算,需要复用 || 中间件 getter | 无缓存(但依赖订阅) | 中 | 全局派生状态 |- 无额外依赖,纯函数式实现。,但通过巧妙的派生状态设计,我们可以在 Zustand 中实现等价的 computed 能力。
2026-07-31 14:15:47
164
原创 内存分区:程序运行的核心秘密
今天,我们就来扒一扒内存分区的底裤,用最接地气的例子,让你彻底搞懂程序运行时的那块“地盘”是怎么划分的。—### 一、内存分区:程序员的“领土划分”想象一下,你的程序像一个小国家,内存就是它的领土。现代操作系统和编译器,通常把进程的虚拟内存划分为以下几个关键区段:| 分区名称 | 存放内容 | 特点 ||---------|---------|------||—### 二、栈:程序的“临时工”栈是每个线程私有的,它像一个弹簧床——你往上跳(压栈),它往下压;(4000万int,约160MB),必崩无疑。
2026-07-31 14:14:39
201
原创 扣子Coze实战:零基础搭建数据分析智能体,分钟完成复盘,流量翻倍
# 第二步:进阶用法——自动化每日复盘在实战中,我们通常需要每日自动分析流量数据,找出增长点和问题。### 场景:分析网站流量数据,输出复盘报告数据源:假设每天从API获取JSON格式的流量数据,包含浏览量(PV)、独立访客(UV)和转化率。扣子Coze(Coze)作为一款低代码/无代码的智能体构建平台,允许用户通过自然语言和简单配置,快速搭建数据分析智能体。扣子Coze降低了数据分析的门槛,让非技术人员也能快速构建智能体,帮助团队分钟级完成复盘,并根据数据洞察快速调整策略,从而提升流量和转化率。
2026-07-30 14:07:23
202
原创 Spring 调试新姿势:一眼看清运行时,用 Spring Debugger 少踩 % 坑
但说实话,每次遇到Spring的运行时问题,比如依赖注入失败、AOP代理失效、循环依赖异常等,我们往往只能靠猜——看源码、加日志、反复重启,效率低得让人抓狂。## 二、Spring Debugger:让运行时“可视化”Spring Debugger是一个轻量级的调试工具,核心思想是。## 四、进阶:分析AOP代理的运行时行为AOP是Spring的另一大核心特性,但代理对象的调试非常困难。## 三、代码示例:用Spring Debugger定位循环依赖循环依赖是Spring开发中最头疼的问题之一。
2026-07-29 13:32:53
186
原创 免费SSL申请并使用Yarp实现支持内网穿透
csharp// 1. 创建项目// dotnet new web -n YarpProxy// cd YarpProxy// 2. 安装Yarp包// dotnet add package Yarp.ReverseProxy// Program.cs - 完整配置using System.Net;// 配置HTTP端口和HTTPS端口builder.WebHost.UseUrls("http://0.0.0.0:80", "https://0.0.0.0:443");
2026-07-29 13:30:18
185
原创 货拉拉开源两款三方库,为鸿蒙应用高效开发贡献力量
其实,货拉拉的技术团队一直很活跃,他们内部在开发鸿蒙应用时积累了不少经验,觉得好东西不能藏着掖着,就开源出来分享给大家。它们就像两个得力的助手,一个帮你搞定网络通信的“脏活累活”,一个帮你处理日常开发的“琐碎杂事”。好了,今天的分享就到这里。## 深入解读:这两款库的设计哲学货拉拉的开源库之所以受欢迎,不仅仅是因为它们提供了功能,更在于设计上的“克制”和“实用”。今天我们来聊聊一个让鸿蒙开发者们振奋的消息:货拉拉(没错,就是那个拉货的货拉拉)最近开源了两款专门为鸿蒙(HarmonyOS)打造的三方库。
2026-07-28 15:20:14
197
原创 夜莺监控新版表格配置图文讲解
而在新版夜莺监控中,通过表格配置的方式,我们可以更直观、更高效地管理告警规则,尤其适合那些需要批量处理相似规则的场景。简单来说,表格配置就是把原本需要手写的复杂配置,转化为一个类似Excel表格的界面。## 实战场景:为多台服务器配置CPU使用率告警假设我们有一个监控目标:为5台Web服务器配置CPU使用率超过80%的告警,并且每台服务器的告警级别不同(如“警告”或“严重”)。## 总结夜莺监控新版表格配置是一个面向运维人员的实用功能,它通过表格化的界面和CSV导入/导出,极大地简化了批量告警规则的管理。
2026-07-28 15:19:07
254
原创 漏洞解析--CSRF
## 实战演练:带CSRF防护的转账系统(完整代码)下面是一个用Flask实现的、带有CSRF Token防护的简单转账系统。—## 总结| 要点 | 说明 ||------|------||攻击者无法获取用户的session中的Token,所以构造的请求里没有正确的Token,会被服务器拒绝。只要用户登录了,任何携带Cookie的请求都会被服务器认为是“用户本人”的操作。就像有人拿着你的钥匙,进了你家门,把你家的电视卖了——而你本人根本不知道。| 利用用户已登录的身份,伪造请求执行恶意操作 ||
2026-07-27 13:49:02
231
原创 地址的变量,其本质是一个独立的变量,拥有自己的内存空间,存储的内容是目标变量的地址(通常为 字节或 字节,取决于系统位数)。 . ...
指针不是目标变量的“影子”,而是一个独立的变量,它像一座桥梁,通过存储地址的方式间接操作目标数据。## 实战代码:C语言中的指针内存操作为了清晰展示指针的独立内存空间和存储内容,我们使用 C 语言编写第二个示例。)存储的是另一个变量的内存地址。指针本身作为一个变量,在内存中占用独立的空间(32位系统占4字节,64位系统占8字节),用于存放这个地址值。:指针的大小取决于系统位数,32位系统为4字节,64位系统为8字节。它占用固定大小的内存空间(32位系统4字节,64位系统8字节),用于存储目标变量的地址。
2026-07-26 13:41:05
174
原创 Go 程序员为什么更喜欢把函数值叫做闭包
## 总结从基础函数值到捕获变量的闭包,再到并发和高级模式,Go 程序员之所以更偏爱“闭包”这一术语,是因为它准确描述了 Go 中函数值最常见的用途:携带状态、封装逻辑和简化并发。在 Go 语言的学习和实践中,一个有趣的现象是:Go 程序员很少直接称“函数值”,而更习惯于使用“闭包”这个术语。由于这些模式在 Go 中极为普遍,程序员自然而然地用“闭包”来指代带有捕获变量的函数值,因为这是它们最常见的用途。此外,Go 的闭包实现高效且自然,没有额外的性能开销,这让“闭包”成为日常交流中的默认术语。
2026-07-26 13:39:50
183
原创 从零开始:c#如何优雅的操作临时文件/数据?以ASP文件下载为例
本文将从原理出发,结合C#和ASP.NET Core,深入探讨如何优雅地操作临时文件和数据,并以文件下载场景为例,提供可运行的代码示例。### 进阶实现:使用临时文件+流式清理对于大文件,我们需要临时文件来避免内存溢出,但必须确保文件被清理。## 场景:ASP.NET Core动态文件下载假设我们需要实现一个文件下载端点,它从数据库或外部API获取数据,生成一个CSV文件,然后返回给客户端。回调在响应结束后异步执行,但需注意线程安全:如果多个请求并发,每个临时文件路径是唯一的,因此不会冲突。
2026-07-25 13:48:58
203
原创 学习 React 前,你必须掌握的 个 JavaScript 核心概念
本文将用实战代码演示的方式,带你掌握学习 React 前必须理解的 5 个 JavaScript 核心概念。## 1. 解构赋值:从对象和数组中提取数据解构赋值是 ES6 引入的语法糖,它让从数组或对象中提取数据变得极其简洁。:React 应用本质上就是模块的组合,理解模块化能帮助你构建可维护的大型应用这些概念不仅是 React 的基础,也是现代 JavaScript 开发的核心技能。## 3. 箭头函数与 this 绑定箭头函数是 JavaScript 中函数的一种简写形式,更重要的是它没有自己的。
2026-07-25 13:47:48
160
原创 咖啡机(K.F.J)
python# 咖啡机基础状态water_level = 500 # 单位:毫升,假设水箱有500ml水bean_count = 30 # 单位:克,假设有30克咖啡豆# 判断能否制作一杯咖啡(需要200ml水和20克豆)if water_level >= 200 and bean_count >= 20: print("✅ 可以制作一杯美式咖啡!")else: print("❌ 原料不足,请检查水箱或豆仓。")这段代码做了什么?return基础。
2026-07-24 13:18:04
233
原创 关于对 C# 中 ImplicitUsings,GlobalUsings 的讨论
但用“隐式”解决“显式带来的认知负担”,本质上是在把成本从“写代码的人”转移给“读代码和排错的人”。结合大佬们的讨论,回头看 C# 10 以来一直被宣传的 ImplicitUsings,我在 C# 14 / .NET 10 的项目里重新评估了它,结论是:关掉它。读到这里,我心里警铃大作——如果这落地了,未来想关闭隐式 using 的阻力会更大,甚至很多开发者会根本不知道这个开关的存在。代码的“简洁”是写给此刻的自己看的,代码的“清晰”是写给未来的自己和同伴看的。两者冲突时,我选清晰。
2026-07-22 13:42:35
187
原创 通过 C++ 写入数据到 Excel 表格
当需要批量写入大量数据时,逐单元格写入的效率较低。sheet->GetRange(1, 1)->SetText(L"姓名");sheet->GetRange(1, 2)->SetText(L"年龄");sheet->GetRange(1, 3)->SetText(L"部门");sheet->GetRange(1, 1)->SetText(L"姓名");sheet->GetRange(1, 2)->SetText(L"年龄");sheet->GetRange(1, 3)->SetText(L"部门");
2026-07-22 13:41:56
238
原创 没有完美的系统:辩证法视角下的计算机架构演进与实践论
即使某些部件使用了及其不稳定的代码,有严重的内存泄漏问题,每隔几分钟就会崩溃一次,但在整体系统设计得当、关键部件高可用、有自动化错误熔断和重建机制的依托下,在外部看来,系统整体仍然呈现出健壮和稳定的服务能力。当主要问题在一定程度上得到了解决的时候,主要问题便不再是主要的问题,而是成为了次要的问题,取而代之的是其他次要问题中最主要的方面,这一过程就是主次矛盾相互转化的过程。类似的,对于系统中性能要求较高的部分,也应当使用性能较高的部件,对于需要稳定运行的部分,则应使用中规中矩最不容易出问题的部件。
2026-07-21 14:12:56
237
原创 源码深入篇:RocketMQ 核心源码精读指南
这与 Kafka 按分区存储的设计不同——Kafka 在 Topic 和分区数量增长时,写入性能会下降,而 RocketMQ 的表现则稳定得多。💡 阅读建议:如果你第一次读 RocketMQ 源码,建议按这个顺序入手:remoting(通信基础)→ namesrv(路由)→ store(存储)→ broker(服务端)→ client(客户端)。事务消息是 RocketMQ 最复杂的特性之一,其核心是半消息(Half Message) 和事务回查(Transaction Check) 机制。
2026-07-21 14:12:12
191
原创 嵌入式Linux C应用编程——Framebuffer应用编程
什么是 FrameBufferFrameBuffer(帧缓冲) 是 Linux 系统中的一种显示驱动接口。它将显示设备(如 LCD)进行抽象,屏蔽了不同显示设备硬件的实现差异,对应用层呈现为一块显示内存(显存),允许上层应用程序直接对显示缓冲区进行读写操作,而无需关心物理显存的位置等具体细节,这些都由 FrameBuffer 设备驱动来完成。在 Linux 系统中,显示设备被称为 FrameBuffer 设备(帧缓冲设备),LCD 显示屏即属于 FrameBuffer 设备。
2026-07-20 13:49:50
196
原创 从零开始构建你的RAG项目第二弹:API 调用大模型问答
一、为什么选择 API 调用轻量:无需本地部署 GPU,只需一行请求即可调用大模型。灵活:支持多种模型(qwen-turbo / qwen-plus / qwen-max),可按需切换。兼容:DashScope 提供了 OpenAI API 兼容模式,能直接复用 LangChain、OpenAI SDK 等生态。二、准备工作:配置 API Key参考阿里云百炼的官方教程,注册账号后获取 API Key(国内用户需实名认证):获取并使用 API Key。
2026-07-20 13:49:15
248
原创 高性能进程内队列 BufferQueue 1.0 版本发布
创建新的 Consumer Group 时,BufferQueue 会在它被分配到的每个 Partition 上,从 earliest.offset 写入初始 consumer.offset。使用默认的 MessagePackSerializerOptions.Standard 时,自定义类型应声明 [MessagePackObject] 和稳定的数字 [Key],应用项目也应直接引用 MessagePack,让 Analyzer 和 Source Generator 在应用侧运行。
2026-07-19 14:41:21
147
原创 AI 学习笔记: 深度学习的训练与评估
1logpθxi∣xi,其中pθxi∣xi是模型在已知前文xi条件下对当前 token 的预测概率。Perplexity 越低代表模型对文本越不 “惊讶”。注意 Perplexity 工程上常用 测试集/验证集 计算,用来衡量模型对未见文本的概率建模能力(即泛化水平),不是直接的下游任务表现:这一点在 LLM 评测中常被误用。
2026-07-19 14:40:35
227
原创 搞懂LangChain开发库,还有dotenv实战
构,是所有上层组件与集成能力的底层依赖。langchain-classic:历史版本兼容包,仅用于存量旧项目的平滑兼容与运维支撑,不推荐新项目引入使用。langchain_v1:当前官方主推的生产级主用版本,核心聚焦大模型智能体(Agent)的全链路构建,封装了开箱即用的核心开发能力。partners 集成库:由 LangChain 官方维护的第三方生态集成集合;
2026-07-18 14:19:41
233
原创 大模型套餐深度分析:国内外主流平台全景对比
官网:chatglm.cn · 开发者平台:bigmodel.cn / docs.z.ai · 主体:智谱 AI(北京),国内首家上市 AI 大模型公司。首月免费试用(新用户)。官网(海螺 AI):hailuoai.com · 开发者平台:platform.minimaxi.com · 主体:MiniMax(上海)企业版:Grok Business $30/seat/月起;Pro $20 $200(≈$16.7/月) 无限 Pro 搜索,可选 GPT/Claude/Gemini,文件上传,API 积分。
2026-07-18 14:19:05
963
原创 如何在EDKII中编译UNIX风格C语言
通过阅读前面的 EDKII 相关代码实现,我们可以很容易发现其虽使用的是 C 语言语法,但编写规则与我们在 IDE 或者操作系统上运行的 C 语言代码不太一样。以简单的 HelloWorld 程序为例。EDKII 中的代码为:EFI_STATUSEFIAPIUefiMain () {\n");UNIX 风格代码如下:\n");return 0;对比以上两个程序,下面的代码可以使用我们常见的 C 语言库函数。
2026-07-17 13:36:18
251
原创 一个简单案例理解OpenClaw的做梦过程
memory.md = AI 的大脑(真正记住的)dreams.md = AI 的做梦日记(做梦过程,醒了就不记得)咱们可以这样理解:“我叫Wade,做OpenClaw开发,用GLM-5.1”→ 进memory.md“今天吃了米饭、天气很好、刚才卡了一下”→ 只在 dreams.md 里被标记为“低价值 → 丢弃”→不会进 memory.md。
2026-07-17 13:35:36
360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅