- 博客(60)
- 资源 (15)
- 收藏
- 关注
原创 60 路并发出图率从 20% 到 90%:我踩的四个坑
文章摘要:作者分享了在排查串行排队调度模块性能问题时犯的四个典型错误:一是未做对照实验就盲目编码,二是混淆瞬时并发冲击与吞吐量上限问题,三是先入为主地相信直觉而忽视数据分布,四是找到解决方案后未深入分析其本质。这些错误暴露了技术人员在性能优化中容易陷入的思维陷阱——用编码替代科学方法。文章提炼出一个可复用的四层排查框架(硬件层、服务层、调度层、下游层),强调"失败分布决定排查方向"的核心原则,指出工程问题往往源于默认配置而非技术差距。最终启示:性能优化应先做科学验证,而非本能地写代码。
2026-07-27 09:14:18
212
原创 业务智能体实战笔记:分层消除不确定性(五·终)|完全脱离 LLM 的确定性判定 + 评测闭环
本文总结了业务智能体准确率优化系列的第四层方法论——完全脱离LLM的确定性判定,通过工程化手段解决结构化数据处理和业务规则校验问题。核心方案包括: data_filter工具:将数据运算完全迁移至Java代码,LLM仅负责触发工具调用,避免数值计算错误和图表结构混乱,实测提升准确率10-13个百分点。 业务硬约束:针对无法通过通用语义解决的业务口径问题,采用代码硬编码兜底,配合轻量级"记账法"管理规则膨胀,拦截高风险错误场景。 评测闭环(关键教训):强调真值集共建和自动化测试需优先于业务优化,通过开发测试协
2026-07-22 09:49:23
173
原创 业务智能体实战笔记(四):兜底修复——LLM 错了怎么救
本文是智能体准确率优化系列第四篇,聚焦兜底修复环节,通过后置纠错解决LLM输出异常问题。文章提出三大优化手段:工具加强(补充工具配置与参数校验)、响应验证(代码层识别伪调用/假阴性/图表错乱)、双时间字段补跑(合并不同统计口径数据)。这些措施可提升5~9个百分点的指标,并将随机报错转为标准化流程。作者特别指出后端映射越界的反例,强调用户意图透明的重要性。兜底修复虽能处理格式异常,但无法校验业务数值准确性,需结合后续的确定性判定方案。文末预告下一篇将详解数据过滤硬编码与评测闭环设计。
2026-07-21 11:16:17
232
原创 业务智能体实战笔记(三):收窄 LLM 决策空间
本文分享了提升业务智能体准确率的核心方法——收窄LLM决策空间。通过提示词工程(+5-8%)、采样参数调整(0.6→0.3)、业务数据预加载(+1-3%)和工具分层注册(两阶段路由+旁路开关)四项措施,将准确率从65%提升至75%。核心逻辑是压缩LLM的决策候选集以提高稳定性,但需注意提示词优化的收益边界,并保留兜底机制应对剩余失稳情况。文章预告下篇将探讨兜底修复的具体方案。
2026-07-20 08:45:52
239
原创 GB28181 跨不对称链路倍速拉流:UDP丢包→TCP断连→录像截断
摘要: 视频平台跨网级联下载历史录像时,遭遇UDP丢包导致大量丢帧,切换TCP后虽解决丢包,但出现中途断连和录像提前结束问题。断连原因是TCP发送缓冲区堆积,通过流媒体服务器增加发送完成状态检查实现自我节流修复;提前结束问题源于SIP信令与RTP媒体通道时序不同步,通过延迟信令发送和上级平台增加等待机制解决。经验包括:应用层需主动管控TCP速率、双通道协议需绑定数据状态、故障排查需覆盖完整链路。最终实现稳定下载且录像100%完整,无额外性能开销。
2026-07-19 17:29:39
231
原创 业务智能体实战笔记(二)|前置拦截:别让 LLM 做不该做的决策
摘要 本文探讨业务智能体场景下LLM静默错误的解决方案。针对LLM因信息不全生成看似合理但实际错误的回答(如漏检索、概念混淆、状态误判等无法通过后置校验捕获的问题),提出了三层前置拦截机制: 消息预处理:在意图识别前同步阻塞消除业务对象歧义,并规范化格式,可提升准确率2-4个百分点; 两步RAG:强制前置检索业务背景知识,避免LLM自主决定检索时机的不可预测性,提升1-3个百分点; 状态歧义拦截:在工具选择前按业务规则移除歧义候选工具。 三层机制整体可提升准确率5-10个百分点(区间存在重叠),核心价值在于
2026-07-14 17:07:16
371
原创 一个人的江湖:我与代码生成器的涅槃之路
《代码生成器的进化之路:一个程序员的自我重塑》记录了作者十几年间开发代码生成器的历程,从最初的字符串拼接工具到ORM框架,再到拆解为独立库的过程。文章揭示了技术演化的深层逻辑:通过不断否定旧我实现成长,如剥离过度设计的基类、重构耦合模块、引入模板引擎等。作者总结出两个核心思维模板——代码生成与框架抽象,这些方法论在后续开发中反复复用。文章强调"君子不器"的哲学,工具终将过时,但锻造工具的思维能力和破立勇气才是开发者真正的财富。这段"一个人的江湖"印证了"自胜者强"的道理,展现了技术人通过持续自我颠覆实现专业
2026-07-13 09:04:52
148
原创 DAB 项目复盘 —— 三个被埋藏在流水账下的工程判断
文章摘要: 本文通过三个关键决策点复盘了DAB设备自动化协议开发项目的核心经验。首先,作者在协议学习阶段就通过"场景验证"思维发现V1版本在多设备场景下的设计缺陷,这一判断后来被协议委员会V2版本采纳,体现了前瞻性技术评审的价值。其次,作者将Netflix的C语言OOP风格实际应用到接口设计中,又在评审过程中通过"讲解成本"这一信号识别出过度设计,主动撤回改为直接函数,展现了借鉴与克制的平衡能力。最后,作者提炼出跨部门协作的五件套方法,强调将横向需求转化为对方纵向目标才是协作杠杆,而非沟通技巧本身。这三个案
2026-07-11 10:29:50
167
原创 回顾我的软件开发经历:开发DAB
本文详细介绍了DAB(Device Automation Bus)协议的开发全过程。面对设备认证的紧迫需求,团队先后采用Node.js和C++两套方案实现:Node.js版本快速支撑了认证需求但存在兼容性问题;C++版本通过适配层设计实现了多平台支持,并将安全逻辑内聚。开发过程中,团队通过单元测试、正交性设计提升质量,采用Jira管理进度,最终在保证灵活部署的同时加快了开发速度。项目亮点包括多平台支持、文档生成代码等创新实践,但也存在安全性依赖度高等遗憾。该项目为智能家居设备自动化测试提供了有效解决方案。
2026-07-11 10:20:47
151
原创 把 20 个第三方库的交叉编译,从手工活做成框架
本文总结了作者将20个第三方开源库交叉编译到嵌入式Linux平台的经验。面对库间构建系统、依赖关系和产物形态的差异,作者没有重复手工编译,而是设计了一个Shell框架,核心包括: 用关联数组集中管理库元数据(路径+产物模式) 根脚本统一调度,各库独立实现编译适配 支持选择性编译和自动聚合产物 统一接口适配Autotools/CMake/Meson等异构构建系统 该框架使后续维护成本降低80%,编译时间减少30%,并沉淀为团队知识资产。作者强调"先抽象后实现"的工程思维,以及通过针对性练习快速掌握Shell特
2026-07-11 09:33:23
170
原创 给Skill工作流编辑器加 AI 助手
三次架构迭代搭建工作流 AI 助手,8 类代码化机制根治大模型结构性幻觉,采用无状态独立智能体实现可控、可增量的自然语言流程编排。
2026-07-11 08:16:50
307
原创 驻场客户现场一年复盘:混乱环境下的个人实践与事后反思
驻场多厂商混办公环境一年复盘:客观梳理现场各类效率损耗,区分当年落地的个人、团队简易手段与事后总结的标准化管理方案,复盘人员管理、工时规划、跨方沟通的误区与优化思路
2026-07-10 06:52:32
171
原创 业务智能体实战笔记:分层消除不确定性(一)|总纲:把不确定性从LLM 侧转移到工程侧
本文为业务智能体优化系列开篇总纲,基于运维场景 ReactAgent 落地实践,复盘端到端准确率从 65% 提升至 85% 的工程方案,核心思路是将不确定性从 LLM 侧转移至工程侧。文中说明项目技术栈、双场景真值评测集与三段式打分规则,85% 为通用可复用优化下限。文章搭建四层优化框架:前置拦截 LLM、收窄决策空间、兜底修复输出异常、工程侧独立完成确定性计算,详解预处理、采样收敛、data\_filter 等落地手段,配套架构图标注模块位置,并量化分层优化收益,纠正提示词万能误区。全文核心反思:评测闭环
2026-07-07 18:14:58
449
原创 从两天到十几分钟:一套 YT Crash 自动化分析工具完整工程复盘
以一款主流芯片平台为例,每周从市场回收 **2700 条** YT 线上 Crash 日志,全人工分类、汇总、跨版本核对需占用**两个完整工作日**;依托我持续迭代的 Python 处理工具,整套分析流程压缩至**十几分钟**,彻底消除每周数据处理带来的业务决策停滞。
2026-07-03 09:56:00
165
原创 一键部署不是为了省时间 —— 它是把“买来的 PaaS“变成“自己的平台“的拐点
本文复盘了一套外部采购实时音视频PaaS系统的一键部署改造历程。原本1-2个月未能完成的环境搭建,经过2周手工梳理后,最终实现了15分钟自动化部署,效率提升数十倍。文章揭示了"一键部署"的真正价值不在于省时,而是通过系统考古、脚本编写和边界显式化,将组织从依赖外部转变为自主掌控系统的关键拐点。作者结合视频监控打包、Docker容器化和通信设备自动化三方面经验,采用类似IaC的思路实现了本土化解决方案,并延伸建立了基于业务特性的监控体系,使系统状态可观测、可维护。
2026-07-02 22:35:29
217
原创 为电视研发团队搭一套“统一开发环境“——一次工程效率的复盘
一句话:把散在每个人硬盘、脑子、习惯里的东西,搬到团队共享的底座上;把日常重复的操作固化成脚本、交给自动化——让新人第一天就拿到老兵三年攒的工具箱,也让老兵从重复动作里脱身,日常效率保守提升 50%。
2026-07-02 13:26:11
170
原创 软件开发总结--一些关于需求的感想
一些比较细碎的感想用户/客户是谁,我们用什么打动用户/客户?我们用价值打动用户/客户,如果我们不了解用户/客户, 不去关心他们真正需要的是什么,则不知道什么对用户/客户有价值。如果我们不清楚用户/客户是谁,不知道价值是什么,很可能我们会将力气用偏。【开发人员都是完美主义者,用户不一定需要这样的完美主义者, 用户怕不能给他们提供价值,不能尽快给他们提供价值】紧盯用户和价值...
2020-03-26 10:08:34
474
原创 软件开发总结--需求与开发
需求不是越多越好,也不是越详细越好。一个好的需求属于一系列关联需求的一部分。 这一系列需求关联一个要发布的版本,这个版本要有自己希望达到的目标,这个目标的一个主要表现就是为一个或多个用户提供实用,重要或紧迫的价值。 这个需求要有验收条件,达到这些验收条件,该需求也就完成了。 该需求应该有允许讨论(妥协)和不允许讨论(妥协)的两部分。用户价值是不允许讨论(妥协)的,具体实现方案是允许讨论...
2020-03-23 13:38:46
1006
原创 对用户故事的理解及其他
概述这几年一直在思考敏捷开发中的用户故事,并尝试在工作中使用用户故事。 发现不论敏捷开发还是瀑布式开发,很多东西都是相通的(或者说一样的)。在本文的后半部分我根据对用户故事的实践和理解列出一些内容。 你会发现,这些内容与《系统分析与设计方法 第7版 》第7章 使用用例建模系统需求 P179 中的表格几乎一模一样。理解或原则下笔前,先列明几个理解或原则:1: 在开发一个...
2020-02-10 16:32:02
647
原创 根据对MVVM中ViewModel的理解写的一个前端脚本
这几天对MVVM模式做了简单的理解. MVVM中的MV是MVC中的MV, 而VM是在View之前添加了一层前端的逻辑层ViewModel. 该Model中的对象针对前端显示提供数据和接口. VM中有一部分功能是实现ViewModel和前端控件的自动绑定,包括读取和写入,我根据这个理解写了个简单的脚本,并进行了一次重构,写在这儿,权当整理.1: 展示对象展示对象很简单,本例中是一个用户信息...
2019-04-24 14:40:52
340
原创 我想写一个Linux下的C++程序库--记我的C++库设计历程:设计一个TCP服务程序
我想写一个Linux下的C++程序库,实现一些常用的功能。我首先想到的就是实现一个TCP监听程序。该程序应该具有哪些功能呢?1: 启动/停止监听2: 有客户端连接时,通知调用者3: 与客户端断开时,通知调用者4: 有消息到达时,通知调用者5: 尽量避免程序退出时有没有close的socket。该程序的大体接口及结构主要用一个类表示,内容如下:#pragma
2015-02-17 20:22:04
1244
原创 自定义快捷命令程序(VC++加批处理)
这是一个能提高用户工作效率的工具,以往需要用鼠标点击n次才能完成的操作,用它只需要敲击几下键盘就完成了。我的程序叫XBAT,在开机时自动运行。XBAT的界面为一个可见的文本框,位于左面的右上角,占据很小的位置。使用场景:1: 用户想用浏览器打开百度网站时,同时按下“Win + Z”键,XBAT文本框获得焦点2: 用户输入“bd”,按下Enter键。3: 浏览器打开百度站点。现在这个程序我自己用起来得心应手,没有这个程序,我感觉很不方便。我现在常用的是用它来打开iis,打开“服务”,打开“DE
2014-08-22 11:19:23
1688
原创 学习实践:使用模式,原则实现一个C++自动化测试程序
个人编程中比较喜欢重构,重构能够提高自己的代码质量,使代码阅读起来也更清晰。但是重构有一个问题,就是如何保证重构后带代码实现的功能与重构前的一致,如果每次重构完成后,对此不闻不问,则会有极大的风险,如果每次重构后,都进行一边测试,则工作量会很巨大,最终可能是即使代码有重构的欲望,也会尽量克制住,不去重构。除非代码能够进行自动化测试。实际上进行测试的是接口,而不是所有代码,只要能够保持接口不变,自动化测试的工作量也没有想象中的巨大。其实我们在单元测试的时候,会测试各种异常情况,只不过,没有将这些测试写成测试代
2014-08-20 17:23:05
4295
原创 学习实践:使用模式,原则实现一个C++数据库访问类
一、概述在我参与的多个项目中,大家使用libMySQL操作MySQL数据库,而且是源码即复用,在多个项目中有多套相同或相似的源码,这样的复用方式给开发带来了不变,而且libMySQL的使用比较麻烦,要应对很多的细节,很容易出错。我要写一个动态链接库,将对libMySQL的操作封装起来,以二进制复用代替源码级复用;要提供线程安全的接口,用户无需关系是否加锁这样细节性的问题,减少出错及
2014-08-18 17:18:57
3748
原创 从头开始学习JAVA 6--引入JQuery
5 JQuery:在Index.jsp中,使用到JQuery。1)添加taglib在页面头部添加如下代码:Taglib类似于自定义控件。2)添加Jquery scripttype="text/javascript"src="c:urlvalue="/resources/jquery-1.7.2.min.js"/>">script>sc
2013-03-10 07:53:50
2880
原创 从头开始学习JAVA 5--Spring MVC
4 Spring MVC1)引入Jar在IVSMDemo中,引入如下jar包: 注意引入Java EE 5 Library2)配置Web.xmlxmlversion="1.0"encoding="UTF-8"?>web-appversion="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
2013-03-10 07:42:42
5238
原创 从头开始学习JAVA 4--创建Web程序
创建Web程序1)创建项目2)运行选择“Tomcat 6.x”:“Console”中,显示Tomcat启动情况:3)访问Web页面在IE中,输入“http://localhost:8080/IVSMWebDemo/”路径,打开Web页面。4)Web程序的配置文件welcome-file-list/ welcome-fi
2013-03-09 23:10:39
1210
原创 从头开始学习JAVA 3--MyEclipse
2 MyEclipse1)安装MyEclipse略2)配置MyElipse3)如何使MyEclipse更快取消自动校验取消build取消自动构建4)配置Web服务打开MyEclipse,在“windows/preferences”下选择“/MyEclipse Enterprise Workbench/Server/Tomcat/ Tomc
2013-03-09 23:05:10
1054
原创 从头开始学习JAVA 2--Tomcat
首先关注tomcat。1 Tomcat1)前提已经下载Tomcat压缩文件。已经安装JAVA JDK。已经设置JAVA_JOME环境变量。2)启动点击“bin”文件夹下的“startup.bat”批处理文件可以启动tomcat。在IE中,输入“http://localhost:8080”会打开Tamcat首页,如果首页显示,说明tomcat启动成功。
2013-03-09 23:00:54
1129
原创 从头开始学习JAVA
0前言1)概述本人有10年使用ASP.NET的经验,在2007年时,有三个月的Java使用经验,主要是做Swing的东西,当时感觉MyEclipse真不好用,Java和C#的语法差不多,但是Java对通用编程比C#好多了。由于需要,今年(2013)2月份开始,重拾Java,主要用来做Web程序。目标:尽快掌握Java Web开发的相关知识及各项技能2)学习策略l
2013-03-09 22:55:48
1946
原创 应用GeoServer(一)
1 下载并安装GeoServer1.1. 下载从http://geoserver.org/display/GEOS/Welcome网站中下载GeoServer安装文件。当前下载的是geoserver-1.7.0-RC3。 1.1. 安装:安装geoserver-1.7.0-RC3.exe文件,当遇到下图所示的弹出窗口时,点击“确定”即可。
2008-11-28 17:16:00
1552
1
原创 对软件需求的点滴认识
做需求,首先需要了解用户需要的功能,在知道用户需要的(部分)功能后,根据这些推导出用户功能背后的业务逻辑,然后对业务逻辑做进一步的分析,根据分析结构与用户再做进一步的沟通。需求有三个特点:完整性,必须性,正确性,这三个特点是在对业务逻辑的分析后得出的 很多时候说用原型来调查需求,我想这个原型不是一段程序,而是一个完整的业务逻辑流程。 如果想创新,必须建立在对行业的理
2008-09-17 13:46:00
661
原创 ASP.NET中控件应用的思考
页面其实就做两件事情,第一件事情就是显示数据,第二件事情就是收集需要处理的数据。现在,假设有一个容器,能给页面提供显示所需要的数据,也可以收集页面的数据,则整个页面只需要与该容器打交到就可以了。后台页面甚至不需要一行代码。这只是理想状态,这种理想状态可以实现吗?别的不说,就说显示数据,至少需要this.txtName.Text="abc";这样的代码吧,总不成在页面上用吧?有这样合适的容器吗?当提
2008-08-22 17:25:00
637
原创 扩展TextBox控件
在做B/S开发中,大家经常用到TextBox控件,而且经常需要对输入其中的数据进行合法性检查。这种检查可以通过多种方式来实现。我喜欢用Javascript来检查。但是,每一个控件都要用一段Javascript代码来检查,太麻烦,可以不可以来一下抽象呢?我希望通过扩展TextBox来实现该控件数据合法性JavaSript的抽象。思路:1:扩展TextBox控件: public class Text
2008-08-04 09:21:00
1597
2
原创 扩展DataGrid
在ASP.NET编程中,经常会用到DataGrid(或GridView)。其实,用的时候,这个DataGrid与那个DataGrid,很多功能都几乎是相同的。例如,分页,排序。例如:一般情况下,Int列应该居中显示,字符串列应该靠左排序,double等应该靠右排序,且应该取到小数点后两位,时间格式应该居中,且应该按一定格式显示,例如“YYYY-MM-DD”;如果某列允许排序,则该列的排序字段一般与
2008-08-02 10:06:00
1097
原创 咀嚼代码--图学Community Server2.0--Form控件类图
咀嚼代码--图学Community Server2.0--Form控件类图
2008-07-18 14:02:00
833
原创 咀嚼代码--图学Community Server2.0--Action控件类图
最近在看CommunityServer,下面是Action控件的类图:
2008-07-18 13:33:00
903
原创 站在人的角度写代码
今天在写一个程序,其中有几个类是原来的项目中已经存在的,为了图方便我就把这几个类一个一个的拷贝过来了。每当我拷贝一个的时候我都编译一遍。当拷贝第一个类的时候,编译时出现错误,提示找不到A类,把A类再拷贝过来,编译后又说找不到B类,找到B类又说找不到C类,如此拷贝了半天才把所需要的东西拷贝过来,编译成功。觉得: 这样A类调用B类,B类调用C类,...他们之间的这
2008-07-04 10:27:00
856
原创 CommunityServer中的代码页面分离
第一步:找一个页面。首先找到一个页面:CS2008_4.0.30417.1769.sdk/source/Web/Themes/calypso/Common/login.aspx 第二步:找一个处理逻辑的控件发现该页面中有个控件:CSControl:LoginForm。代码如下:
2008-06-21 11:20:00
664
我的数据库访问类源代码
2014-08-18
我的自动化测试程序
2014-08-20
自定义快捷命令程序(VC++加批处理)--Release
2014-08-22
自定义快捷命令程序(VC++加批处理)
2014-08-22
我的C++自动化测试程序
2014-08-20
公交换乘的实现
2008-07-23
C++程序案例MFCFrmX
2008-07-10
.net2.0版代码生成器
2008-08-26
MFCFrm.rar
2008-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅