<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[rwZhAVK4D的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/rwZhAVK4D</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rwZhAVK4D]]></copyright><item><title><![CDATA[DeepSeek涨价了？大白话聊聊峰谷定价]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162635797</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162635797</guid><author>rwZhAVK4D</author><pubDate>Mon, 06 Jul 2026 15:18:48 +0800</pubDate><description><![CDATA[我最近给多家企业做过提效智能体，感受很明显：企业现在不是在玩 AI，而是真的开始把 AI 接进业务了，智能体在真正地给企业提效了。它更像一个能理解任务、调用工具、读取数据、执行流程的 AI 助手。所以 DeepSeek 如果涨价后能换来更少限流、更稳定的响应、更可预期的服务，对企业来说反而是好事。这类任务用户就在等，高峰期贵一点也要跑。如果用 DeepSeek V4 做 Demo、做原型、做代码生成，不能再完全按以前的低价心态来用了。重点来了，企业以后要做的不是简单“接一个模型”，而是要做 AI 调度。]]></description><category></category></item><item><title><![CDATA[Claude Code项目越写越乱？这套清理流程能救你]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162635745</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162635745</guid><author>rwZhAVK4D</author><pubDate>Mon, 06 Jul 2026 15:17:37 +0800</pubDate><description><![CDATA[你有没有遇到过这种情况：用Claude Code开发了一段时间后，打开项目目录一看，里面堆了三四十个文件，有些是你自己写的，有些是Claude生成的，还有一些你根本不知道是干嘛用的。一位网友发帖说：“你那22万行代码的代码库可能是一团臃肿的乱麻。建议是把重构和删除死代码作为你工作流程的常规部分。”虽然说的是一个更大的项目，但这个原则适用于任何规模。Claude生成代码很快。它也会生成你不需要的代码。用Claude Code开发就是这样的。它写代码确实快，但不会管你的项目是不是已经有一个同样的功能了。]]></description><category></category></item><item><title><![CDATA[Dot Net下实现屏幕图像差异获取v2.0]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162606678</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162606678</guid><author>rwZhAVK4D</author><pubDate>Sun, 05 Jul 2026 15:36:16 +0800</pubDate><description><![CDATA[，答案很简单，因为我们不止是要比较出不同，更重要的是要把不同的部分加以利用。如果分块多，则每一个分块的数据量就小，但是比较的次数就会变多。因此选择一个合适的粒度会影响程序的性能，据文献资料的记载和他人的尝试，一般认为把屏幕分成16*8块最为合适。我们对两幅图像的比较，可以逐个像素比较，也可以先把图像分块，然后比较对应块中的数据。那么，到底分块是什么个概念，又该如何分块，分块后的数据如何比较呢？下面我将逐一进行介绍。按横向划分4块，纵向划分2块的方式，可以画出一个二行四列的网格，其中每一格就是分块数据。]]></description><category></category></item><item><title><![CDATA[什么是.NET Compact Framework]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162606664</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162606664</guid><author>rwZhAVK4D</author><pubDate>Sun, 05 Jul 2026 15:35:10 +0800</pubDate><description><![CDATA[基于.NET Compact Framework开发的程序，可以叫做托管程序，英文叫做Managed code。所谓Managed code就是使用C#,VB.NET语言来编写代码，使用.NET Compact Framework来开发，编译成平台无关的中间语言(Intermediate Lanuage, IL)的文件的程序。]]></description><category></category></item><item><title><![CDATA[Framework4.0提供了一个包装类 Lazy＜T＞，可以轻松的实现延迟加载。]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162582469</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162582469</guid><author>rwZhAVK4D</author><pubDate>Sat, 04 Jul 2026 15:43:02 +0800</pubDate><description><![CDATA[在这个例子中，使用了BlogUser对象，该对象包含多个Article对象，当加载BlogUser对象时，Article对象并不加载，当需要使用Article对象时，才加载。///如在本例中，T为string，则TestLazy.GetString方法的返回值必须也是string类型。///原型为Lazy<T> 对象名=new Lazy<T>(Fun<T>)///采用泛型委托进行构造，实例化此委托时要求必须是返回值T类型的方法。///这行代码表明：要创建一个延迟加载的字符串对象s。包含子对象的延迟加载。]]></description><category></category></item><item><title><![CDATA[一步一步教你搭建win7下的Node.js服务（来玩玩服务器端的javascript吧，这可不是前端js插件）]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162582458</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162582458</guid><author>rwZhAVK4D</author><pubDate>Sat, 04 Jul 2026 15:42:16 +0800</pubDate><description><![CDATA[打开文件夹，进入C:\cygwin\bin\ 目录中，这个是默认的安装目录，如果你修改过安装目录，自己进入到cygwin的安装目录下的bin目录中。在Choose A Download Site界面选择-》这个自己选择了，就是选择下载的镜像，推荐使用.jp结尾的日本网站，速度比较快。在命令窗口中输入 tar xf node-v0.4.7.tar.gz 回车，node-v0.4.7.tar.gz为你自己下载的版本。在命令窗口中输入 node --version 回车，看看你的node.js版本。]]></description><category></category></item><item><title><![CDATA[使用树莓派制作的远程开门器]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162559552</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162559552</guid><author>rwZhAVK4D</author><pubDate>Fri, 03 Jul 2026 19:42:29 +0800</pubDate><description><![CDATA[我厂的电子门锁的开门设备是通过一个带弹簧的开关（门内，类似墙面上开灯的开关）控制的，按下开关就能打开门，按下开关的时候能够听到明显的继电器闭合的声音，因此，趁着没人的时候我把开关拆开看了一下，证实的确是通过触电控制的一个继电器。]]></description><category></category></item><item><title><![CDATA[高性能分布式计算与存储系统设计概要（下篇） ]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162559533</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162559533</guid><author>rwZhAVK4D</author><pubDate>Fri, 03 Jul 2026 19:41:03 +0800</pubDate><description><![CDATA[在上篇里，我们主要讨论了，这个系统怎样处理大数据的“读”操作，当然还有一些细节没有讲述。下篇，我们将主要讲述，“写”操作是如何被处理的。我们都知道，如果只有“读”，那几乎是不用做任何数据同步的，也不会有并发安全问题，之所以，会产生这样那样的问题，会导致缓存和数据库的数据不一致，其实根源就在于“写”操作的存在。下面，让我们看一看，当系统需要写一条数据的时候，又会发生怎样的事情？       同样，我们还是以friend list为例。现在，我登陆了这个网站，获取了friend list之后，我添加了一个好友，]]></description><category></category></item><item><title><![CDATA[谈谈敏捷开发]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162528952</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162528952</guid><author>rwZhAVK4D</author><pubDate>Thu, 02 Jul 2026 22:07:11 +0800</pubDate><description><![CDATA[我对敏捷开发是源于10多年前看了一本关于迭代开发的书，从而对迭代开发有了一些兴趣。从那时开始有了迭代开发的概念。随着项目经验的增加迭代的重要性也越发觉得明显。随后进入了提倡敏捷开发的公司，被迫式的接触了许多“敏捷开发”，随着项目经历越来越多，慢慢的就开始有了更新的认识和想法。但是在接触敏捷开发这个体系之前，自己有机会做一个项目，那个时候我开始将自己认为更有利于项目的管理工作做了一些应用，那个阶段我的主要做法是：1、项目中开始划分更短的制品交互周期，而不是以前那样等待产品开发完毕后发布各种测试版本。]]></description><category></category></item><item><title><![CDATA[2.0 石器时代]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162528931</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162528931</guid><author>rwZhAVK4D</author><pubDate>Thu, 02 Jul 2026 22:06:28 +0800</pubDate><description><![CDATA[3.0版本上线三个月之后，系统运行的还算良好，但是我们发现数据库表项在飞速膨胀。我们的云服务用户已经有几万个，每个采集端每天平均都要上传几十条视频，所以按照这种速度，单表记录很快就来到了将近1000w。在mysql上，1000万几乎就是单表记录上限了。搞web的兄弟发现这一趋势后，做了分表方案。按照采集端的cid尾数 即(0-9)，将event，file，以及映射表分成了10张表。虽然是解决了存储方面的问题，但是随着使用云服务的用户在不断增加，数据库的访问压力也在渐增。]]></description><category></category></item><item><title><![CDATA[打破牢笼，展望更高层次的世界]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162495545</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162495545</guid><author>rwZhAVK4D</author><pubDate>Wed, 01 Jul 2026 19:35:25 +0800</pubDate><description><![CDATA[我们程序猿长期从事技术工作，有意无意的以机器的方式思考问题，擅长和机器沟通，逐渐的荒废了和人的沟通能力。程序猿的价值是由其编写的软件的价值决定的，而软件的价值是由客户的价值决定的。因此技术的价值最终是由客户的价值决定的。[袁永福原创]那么如何给客户带来价值，那就是解决客户的痛点，如何得到痛点，那就从客户需求中挖掘，如何得到客户需求，那就需要和客户足够多的有效率的沟通。笔者袁永福是一个十多年的老程序猿，一穷二白的出来创业多年，期间经历许多曲折和磨难，成功的在炮火连天的商业战场上活了下来，并持续发展中。]]></description><category></category></item><item><title><![CDATA[单系统登录机制]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162495531</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162495531</guid><author>rwZhAVK4D</author><pubDate>Wed, 01 Jul 2026 19:34:28 +0800</pubDate><description><![CDATA[可事实是，如同上面的论述，“灵活”与“局限”从来不是孤立存在的，也不是被孤立地评判的，它是需要有“语境”的，是由你的实际问题的规模和目标所决定的。如同上面所举的例子，如果你的代码复杂度不能跨过一定的基准线，你是无法真正体会到“创建不同文件夹和不同文件”的强烈需求的。在你的框架构建中，你需要找到的是一种合理的组织方式，使你的系统能够灵活地增添新的代码。所以，为了让你的“UI部分的代码成一堆”，“数据连接的代码成一堆”，“业务逻辑的代码成一堆”，你必须给予这些部分强硬的限制，让它们只能在特定的范围内出现。]]></description><category></category></item><item><title><![CDATA[思路及解答暴力]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162459387</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162459387</guid><author>rwZhAVK4D</author><pubDate>Tue, 30 Jun 2026 16:41:00 +0800</pubDate><description><![CDATA[对每个B[i]都计算A中除A[i]外所有元素的乘积，双重循环，外层遍历B的每个位置，内层遍历A数组跳过当前元素java// 根据题目要求，长度<=1时返回空数组// 遍历每个B[i]i < n;i++) {// 初始化乘积为1// 计算A中除A[i]外所有元素的乘积j < n;= i) { // 跳过当前元素A[i]// 将结果存入B[i]return B;]]></description><category></category></item><item><title><![CDATA[思路及解答递归]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162459370</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162459370</guid><author>rwZhAVK4D</author><pubDate>Tue, 30 Jun 2026 16:40:08 +0800</pubDate><description><![CDATA[注意：上⾯说的第⼀个字符是不是匹配，除了两个字符相等的情况，其实还有模式串的字符为' . '的情况。java// 模式串为空时，文本串也必须为空才匹配// 检查首字符匹配：文本串非空且字符相等或模式为'.'// 处理'*'通配符（确保模式长度≥2且第二个字符是'*'）// 两种情况：1) '*'匹配0个前驱字符 2) 匹配1个及以上前驱字符} else {// 无'*'情况：首字符匹配且剩余部分也匹配。]]></description><category></category></item><item><title><![CDATA[规划与协调-TodoWrite ]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162425690</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162425690</guid><author>rwZhAVK4D</author><pubDate>Mon, 29 Jun 2026 16:36:17 +0800</pubDate><description><![CDATA[/ --- 1. 状态管理：TodoManager ---// 任务状态枚举// 任务实体// 管理器类i++) {"[ ]" :// --- 2. 工具定义与分发 ---// 新增 todo 工具static {// ... 省略已有的工具注册// 注册 Todo 工具});// --- 3. 核心循环 ---// 新增：跟踪轮数。]]></description><category></category></item><item><title><![CDATA[返回主页Do or Not Do, Must Keep Trying To Know The Result !尝试远比想象好 - - - - 弥烟袅绕]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162425669</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162425669</guid><author>rwZhAVK4D</author><pubDate>Mon, 29 Jun 2026 16:35:30 +0800</pubDate><description><![CDATA[gRPC是Google开源的高性能RPC框架，基于HTTP/2和Protocol Buffers，支持双向流、多语言代码生成。相比REST JSON，gRPC序列化体积小3-5倍，延迟降低30%以上，是微服务间通信的首选方案。回到顶部回到顶部。]]></description><category></category></item><item><title><![CDATA[架构选型与规划]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162395405</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162395405</guid><author>rwZhAVK4D</author><pubDate>Sun, 28 Jun 2026 16:46:14 +0800</pubDate><description><![CDATA[该架构为Active/Passive（主/备）模式，只有主节点运行GitLab服务并挂载存储，备节点通过DRBD实时同步数据。将GitLab各组件拆分部署：前端负载均衡（HAProxy/Nginx）+ 多个GitLab应用节点 + PostgreSQL集群（Patroni+etcd）+ Redis Sentinel + 共享存储（NFS/Ceph）。本文推荐方案一（DRBD + Pacemaker） ，性价比高、部署相对简单，适合大多数企业场景。企业版（EE）提供更多高可用特性，生产环境建议使用企业版。]]></description><category></category></item><item><title><![CDATA[ MetaSkills ：软件工程第一性原理的工业级实践]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162395397</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162395397</guid><author>rwZhAVK4D</author><pubDate>Sun, 28 Jun 2026 16:45:23 +0800</pubDate><description><![CDATA[MetaSkills 的 30 次提交构建了一个相当厚的抽象层——声明式 DSL、DAG 引擎、LLM 路由、Checkpoint 机制。但每一层都保留了可观测性、可调试性、可审计性的逃生舱口。它没有假装本质困难不存在，而是用抽象把偶然困难压到极限低，然后把省下来的大脑带宽全部投入到 DAG 死锁检测、LLM 输出校验、失败分支恢复这些无法逃避的本质困难上。你不消灭狼，但你可以用更好的瞄准镜和更轻的枪，把子弹精准地送到该去的地方。]]></description><category></category></item><item><title><![CDATA[Linux服务器开发通用规范]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162373848</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162373848</guid><author>rwZhAVK4D</author><pubDate>Sat, 27 Jun 2026 20:23:28 +0800</pubDate><description><![CDATA[从同步阻塞到Reactor，再到主从Reactor、Proactor、半同步/半异步、领导者/追随者，以及支撑协议解析的有限状态机——这些模式不是要你背下来应付面试，而是让你在面对实际问题时，能有一套“工具箱”。当你的服务器撑不住万级连接时，Reactor会帮你当你的业务逻辑阻塞I/O时，半同步/半异步会帮你当你的协议解析变得一团乱麻时，状态机会帮你当你的建连延迟成为瓶颈时，主从Reactor会帮你。]]></description><category></category></item><item><title><![CDATA[AI Agent 框架接金融行情数据前，先检查这 7 个工程风险]]></title><link>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162373839</link><guid>https://blog.youkuaiyun.com/rwZhAVK4D/article/details/162373839</guid><author>rwZhAVK4D</author><pubDate>Sat, 27 Jun 2026 20:22:37 +0800</pubDate><description><![CDATA[为了减少数据源差异对框架评估的干扰，本文以 TickDB 的统一接口作为示例数据接入层，展示统一行情 API 应提供的字段规范、错误码约定和符号体系。文中的工程风险，即使替换为其他符合规范的行情 API，依然需要逐项检查。解法不是"换框架"，而是在 Agent 间定义数据传递契约——用 Pydantic model，不用裸 dict。无论你用哪个框架，这个契约层的原则是通用的。头的值在实测中可能是整数秒、浮点秒或日期格式（RFC 7231），当前实现覆盖了前两种，日期格式的解析逻辑是否需要额外处理？]]></description><category></category></item></channel></rss>