- 博客(27)
- 收藏
- 关注
原创 NET 分布式架构开发实战之一 故事起源
半年之后问题就开始出现了(其实问题就一开始就出现了,只是大家还认为问题不大):因为当初在设计的时候,项目的架构是由项目组的其他两个人设计的,整个项目开发基本上就没有采用面向对象的思想来开发,而且虽然在架构设计上分了:数据层,业务层,服务层,和UI层,但是各层之前是紧紧的耦合,可以说是“牵一发而动全身”:如数据访问层稍微一改,业务层就跟着动,然后改变一层层的开始波及。:因为项目是首次采用"新技术"(因为以前没有使用WCF,Linq,所以被称为新技术),项目就这样开始进行了。
2026-07-05 14:53:24
180
原创 我的HTC Hero(G3)用户体验续
而Sogou的设计很好的解决了这个问题,比如当你点击了字母“q”的区域时,它假设了你想点击的是“w”,因为“w”比“q”更常用,你再点击“i”时,屏幕上显示的是“qi”,因为输入法意识到你很可能想输入“qi”而不是“wi”,因为后面从拼音规则上讲是不对的。:有CPU主频400M以下的,也有主频1G以上的,有分辨率240像素x320像素的,还有480像素x800像素的,造成很多应用的体验大打折扣。智能手机的屏幕往往太小,输入、观看都不方便,G3自带的输入法做的还是比较好了,但是用起来仍然很不方便。
2026-07-05 14:52:43
222
原创 20日学习汇编语言的感受
到这里,我不得不告诉大家一个很残酷的现实啊!虽然我们之前已经写了几个小程序了,但是你发现没有,我们写的那些小程序要么是数据声明,要么是对HLA标准库的调用,一点汇编语言的影子都没有啊。唉!沮丧啊!不过也别急了!我们学习HLA高级汇编的目的就是让学习真正汇编语言更轻松啊,这个HLA的意义所在啊,那么我们现在开始了解下Intel 80x86处理器,因为不理解处理器的基本结果,机器指令将没有任何意义。我们之前不是了解过了嘛,在前几节笔记中,但是我这里要说明的是,现在我们所学习的方向是32位操作系统中的汇编语言。
2026-07-04 14:59:40
247
原创 Kinect for Windows SDK开发初体验(三)骨骼追踪
到这里, Kinect最精华的部分“骨骼追踪”已经介绍给大家了,大家可以去写一些有趣的应用了。接下来,我们会介绍另外一个Kinect的核心功能——Depth Data,景深数据。
2026-07-04 14:58:42
174
原创 关于bug分析与异常处理的一些思考
但是,这些东西如果不做,一旦出现问题,可能是很大的问题,但是如果做了,可能就没有问题了,从投入产出比来看,只是多敲一些代码,多花费一些时间而已,换来的却是,产品更高的可靠性和稳定性。对于比较容易复现的bug,所谓比较容易复现,就是通过不太复杂操作,尝试几次、十几次,现象就可出现的bug,因为复现操作变得复杂,所以,为了每次复现能够获得更多的信息,尽量多地增加调试信息,以期望问题复现后,极大地缩小问题原因的范围。我将bug依据复现的难易程度分为:必现的bug,比较容易复现的bug,很难复现的bug。
2026-07-03 17:33:11
223
原创 为什么是Chrome
而我想嘛,一个小测试程序,没必要分开吧,直接写一起不就行了吗?结果javascript死活执行不了,我翻来覆去找不到原因,还以为弹出的小窗口不支持javascript,在网上搜索了半天又没有结果,最后才发现是这个原因,浪费了许多时间,这个事情也一定程度上说明了:细节决定成败。manifest.json中的内容也非常显而易见,我选择其中几个属性讲一下:],"manifest_version":现在应该总是2。
2026-07-03 17:32:31
198
原创 Linux的内存分页管理
简单地说,内存就是一个数据货架。内存有一个最小的存储单位,大多数都是一个字节。内存用内存地址(memory address)来为每个字节的数据顺序编号。因此,内存地址说明了数据在内存中的位置。内存地址从0开始,每次增加1。这种线性增加的存储器地址称为线性地址(linear address)。为了方便,我们用十六进制数来表示内存地址,比如0x00000003、0x1A010CB0。这里的“0x”用来表示十六进制。“0x”后面跟着的,就是作为内存地址的十六进制数。内存地址的编号有上限。
2026-07-02 21:25:08
169
原创 我是怎么把一个项目带崩的
开发计划交付与了客户,而答应了的事情就要做到,所以在整个项目过程中,我对进度管控很严。但我没有在正确的时候给予他们正确的指引,项目中出现的困难点,我也没有帮助他们解决,甚至于没有给出思路。基于对他们的放心,加上其他项目事情繁杂,对此项目关注度,对他们的关注度就不够了。而项目中有三个开发。代码质量的问题,淋漓尽致的体现的在项目中,项目中的诸多bug,都是因为代码不规范引起的。项目开发中的需求变更,客户反馈意见,我我都仅仅是告知他们一声,未做详细的修改规划,所有事情都靠嘴说,所有变动都放在了我和他们的脑子里。
2026-07-02 21:23:52
224
原创 现在,我们可以通过ILDASM工具(一款查看程序集IL代码的软件,在Microsoft SDKs目录中的子目录中)来查看该程序集的元数据表和Main方法中间码。
c#源码第一行代码:string rootDirectory = Environment.CurrentDirectory;被翻译成IL代码: call string [mscorlib/*23000001*/]System.Environment/*01000004*/::get_CurrentDirectory() /* 0A000003 */
2026-07-01 16:41:55
242
原创 FastAPI异步方法中调用同步方法
FastAPI支持定义同步路由,FastAPI会自动在一个外部线程池中运行该函数。不过出于代码整体设计的考虑,个人不建议这么做。
2026-06-30 15:34:38
207
原创 项目包含项目源码、项目文档、数据库脚本、软件工具等资料;
本文阐述了网上音乐专辑销售系统的设计与实现。本系统由两个模块组成:前端用户和后台管理人员。它包含了顾客的注册登录、网站信息的浏览、专辑查询、购物并填写订单,并且由管理者来进行网站的维护和升级,在注册之后,顾客可以通过注册的方式来进行自己喜爱的歌曲选择,并对其进行专辑购买;在后台管理中,通过对网站上的歌曲专辑进行更新,包括添加新专辑、更新歌曲等。本设计采用B/S结构进行网上音乐专辑销售系统的开发,以 JAVA为开发语言,设计采用现在比较流行的MySQL数据库系统作为网站的后台数据库。
2026-06-30 15:33:15
205
原创 抓住StandardServer整体类依赖结构来理解
xml-- 1.属性说明port:指定一个端口,这个端口负责监听关闭Tomcat的请求shutdown:向以上端口发送的关闭服务器的命令字符串-->-- 2.Listener 相关 -->-- 3.GlobalNamingResources 相关 -->-- 4.service 相关 --></Service></Server>
2026-06-29 15:41:04
161
原创 被头条爬虫单日狂爬5600万次后,我们的JT808车载监控服务器稳如磐石
这次意外的爬虫冲击,对我们而言,更像是一次免费的“实战演练”,也让我们更加坚定了“以技术为核心,保障业务稳定”的理念——对于车载定位监控领域而言,服务器稳定性就是生命线,任何一次卡顿、崩溃,都可能造成不可挽回的损失。我们的核心业务的是JT/T 808车载定位监控软件系统,涵盖:JT808协议解析与开发(兼容各类车载终端);车载定位监控平台搭建(实时定位、轨迹回放、报警提醒、车队管理);服务器架构优化(高并发适配、爬虫防护、数据安全);
2026-06-29 15:39:54
237
原创 线程池这个问题,平时写业务时好像没什么存在感,很多代码里随手就是一个:
看起来也能跑,任务也能异步执行,线上一开始也不一定会出问题。但如果面试官问一句:你们项目里的线程池是怎么用的?怎么管理的?这时候如果只回答一句“用”,基本就比较危险了。因为生产环境里,线程池不是简单创建几个线程来跑任务,而是要控制资源、控制队列、控制拒绝策略,还要能监控和调整。Executors。
2026-06-28 15:50:09
158
原创 从一个比喻开始:人类如何完成一项复杂任务?
你会怎么做?规划、记忆、工具、执行循环,这四件事你每天都在做,只是不叫这个名字。现在,OpenAI前安全主管Lilian Weng在她的著名博文《LLM Powered Autonomous Agents》中,把这个过程精确地映射到了AI Agent的架构上。
2026-06-28 15:49:14
257
原创 Claude Code 装了一堆 Skill,用了三个月,我删掉了 80%
去年底,我看到 GitHub 上一个叫的仓库冲上了 Trending,37K stars,1400+ Skills,还有人在评论区喊"装完这个直接满级"。我信了。一口气装了三十多个 Skill,Superpowers 全家桶、各种 lark-xxx 套件、前端设计工具、浏览器自动化……结果用了两个礼拜,Claude Code 打开巨慢、上下文预算经常被 Skill 描述撑爆、/skills列表长得根本找不到自己想要的。删掉了 80%。现在留下 10 个,在后端日常开发里高频使用。
2026-06-27 19:31:05
402
原创 踩坑实录:接口正常Feign调用字段值为空
这里需要特别注意JavaBeans规范的一个特殊规则:当属性名的第二个字母为大写时,getter/setter方法的首字母也需要大写。Jackson在反序列化过程中,并不直接根据字段名进行映射,而是基于getter/setter方法名进行推断。总结而言,对接老系统时遇到的问题往往不是技术难点,而是命名习惯的冲突。通过Postman直接调用接口,数据能够正常返回,确认JSON字段名确实是。从表面上看,字段名与JSON中的键值一一对应,似乎没有问题。,由于大小写不匹配,导致反序列化失败。
2026-06-27 19:30:27
199
原创 霍尔定理——用“子集检查“判断能不能匹配
若对于所有 S⊆XS⊆X 都有 ∣N(S)∣≥∣S∣+k∣N(S)∣≥∣S∣+k,则存在大小为 ∣X∣+k∣X∣+k 的匹配(允许部分节点不匹配)。:最大匹配的大小 = ∣X∣−maxS⊆X(∣S∣−∣N(S)∣)∣X∣−maxS⊆X(∣S∣−∣N(S)∣):最大匹配数 = ∣X∣−maxS⊆X(∣S∣−∣N(S)∣)∣X∣−maxS⊆X(∣S∣−∣N(S)∣)比如:甲→A、乙→B、丙→C(或其他组合)。:∣X∣<∣Y∣∣X∣<∣Y∣ 或 ∣X∣>∣Y∣∣X∣>∣Y∣。
2026-06-25 17:36:56
257
原创 同样有测试需求的小伙伴可以直接参考这个配置,简单高效,但注意密码的地方
建议要改成自己的哈~ 另外external的那些外部卷提前手工建好,保留你自己的数据,防止以后重建导致数据丢失~)可以看到这个配置中,已经充分考虑到了数据持久化的设计,在数据卷的配置使用中,除了定义的之外,还额外用到一个本地的目录做绑定挂载,方便做一些双向操作。
2026-06-25 17:35:37
249
原创 CogVideo与CogVideoX模型结构
可以说,VQ-VAE做生成模型的思路,源于PixelRNN、PixelCNN之类的自回归模型,这类模型留意到我们要生成的图像,实际上是离散的而不是连续的。不过和通常的方法不同的是,这里虽然序列的长度是固定的,但是实际上对应的视频的长度是可变的。要注意,根据VQ-VAE的最邻近搜索的设计,我们应该期望和z是很接近的(事实上编码表E的每个向量类似各个z的聚类中心出现),但事实上未必如此,即使和都很小,也不意味着和z差别很小(即不意味着)。这样,对于比较长的视频,可以设置两帧之间相隔较多帧,反之亦然。
2026-06-24 15:59:41
170
原创 万字详解 RAG 向量索引算法和向量数据库
向量索引算法是向量数据库的核心,它的核心任务是解决一个数学难题:如何在海量的高维向量中,极速地找到和给定查询向量最相似的那几个。它的本质,是一种空间划分和数据组织的艺术。如果没有索引,我们要找一个相似向量,就必须把数据库里所有的向量都比较一遍,这叫暴力搜索。在百万、亿级的数据量下,这种方法的延迟是灾难性的。向量索引的目标,就是通过预先组织好数据,让我们在查询时能够智能地跳过绝大部分不相关的向量,只在一个很小的候选集里进行精确比较。没有索引= 在整个城市挨家挨户找一个人有索引。
2026-06-24 15:58:56
192
原创 从零开始学Flink:TopN 榜单
在上一篇结尾提到过,下一篇要把讲清楚。窗口负责把无界流切成可统计的时间片,TopN 负责把“统计结果”变成榜单输出;两者组合起来,PV/UV、订单量、热销榜、实时大屏基本都能覆盖。但这块也最容易踩坑:SQL 明明在跑却一直没输出、TopN 结果频繁更新/撤回下游写不进去、滑动窗口一上来状态就撑爆。本文直接用可复现的 Kafka 数据流把这些问题跑出来,并给出对应的处理方式。本文基于 Flink 1.20+,用 SQL Client 直接在本地 standalone 集群验证。
2026-06-23 16:26:29
234
原创 Google 开源了啥,让 AI Agent 碰数据库不再是定时炸弹
具体来说,它在你的应用和数据库之间插入了一个控制平面(Control Plane)。你用 YAML 文件预先定义好所有允许的数据库操作,LLM 只能调用这些预定义好的「工具」,无法自行生成任意 SQL。
2026-06-22 19:36:49
279
原创 现场直击:那场让人崩溃的深夜生产事故
过去我们使用大语言模型(LLM),它更像是一个“闭门造车”的学者:知识渊博,但无法感知外部世界,也无法操作任何工具。而AI Agent(智能体)的出现改变了这一切。如果说大模型是智能体的“大脑”,那么Skills(技能)就是智能体的“双手”和“工具箱”。未来的软件工程,不仅包含写给机器运行的代码,更包含写给 AI 调用的技能(Skills)。通过将专家经验工程化为 AI Agent Skills,我们不仅是在解决一次生产告警,更是为系统构建了一套 7x24 小时不眠不休的“全自动AI守护者”。
2026-06-22 19:35:45
216
原创 数据库查询优化器<1>查询重写 / 逻辑优化
逻辑查询计划就是数据库把 SQL 转换成的“关系代数操作树”。它回答的是:这个查询在逻辑上需要扫描哪些表、过滤哪些行、保留哪些列、执行哪些连接、做哪些聚合。但它还不回答:具体用哪个索引、哪个连接算法、哪个扫描方式、多少并行度。这些要到物理执行计划阶段才决定。优化类型关系代数规则作用选择合并合并多个过滤条件选择交换调整过滤顺序选择下推尽早减少行数投影合并消除多余列裁剪投影下推尽早减少列数积转连接避免笛卡尔积连接交换改变连接顺序连接结合多表连接重排半连接改写优化EXISTSIN。
2026-06-21 23:54:06
200
原创 莫比乌斯反演 学习笔记
对于一个函数 �(�)f(x), 如果满足对于任意的 $(a, b) | ���(�,�)=1,�∈�,�∈�gcd(a,b)=1,a∈Z,b∈Z, �(��)=�(�)�(�)f(ab)=f(a)f(b), 那么称这个函数为。特别地, 如果对于所有的 (�,�)∣�∈�,�∈�(a,b)∣a∈Z,b∈Z 都有 �(��)=�(�)�(�)f(ab)=f(a)f(b) 的话, 函数 �f 被称为。我们将一些问题的复杂度从最初的 �(�2����)O(n2logn) 降为了 �(�)O(n)!
2026-06-21 23:53:34
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅