- 博客(28)
- 收藏
- 关注
原创 再谈团队,项目,产品
作为最终保障,更多的价值在于最终产品质量保障,对于产品代码状况,设计质量无法涉及,而代码作为最终产出,其质量直接关系产品质量,性能等,应该有充分的测试保障,核心代码的白盒/单元测试,系统集成测试,以及最重要的对于业务设计的测试都不可或缺,测试驱动是一个可参考的实践,业界对于TDD评价颇高,可惜笔者目前未有实践机会。往往分层架构会导致有些业务处理出现在不合适的位置,比如向UI层渗透,或领域服务暴露不当等,理想状况应该做到领域层的平台无关性,当然这是理想化,笔者认为领域可测试性,业务可验收性是最为重要的。
2026-07-05 14:47:04
199
原创 VS2010 中 ASP.NET MVC2 网站编译任务的几个问题
使用它可以自动化处理设置正确的 ToolPath 路径,并且将发布和打包的 ASP.NET MVC2 的网站应用程序输出到一个相邻的文件夹,使你在发布之后不会得到创建错误,如果需要的话,它还提供了众多的配置选项供你选择,即使直接使用它,在不需要修改项目文件的情况下,也是一个理想的创建 ASP.NET MVC2 程序的解决方案。由于这个选项延后了编译任务,所以,这就是你可以在页面文件存在错误的情况下调试代码程序,而不会看到错误,直到页面的时候才会出现错误的原因。继续往下看这个文件,你会看到下面的一段。
2026-07-05 14:46:17
202
原创 Programming.log - a place to keep my thoughts on programming
程序员的百宝箱中可供选择的宝贝是越来多了,而社区中关于语言间的比较和争论也更为热烈,我们常常见到关于“面向过程和面向对象的比较”、“动态语言和静态语言的比较”、“命令式和函数式范式的比较”等比较。例如,在基于Socket连接的分布式系统中服务器端和客户端通过二进制的字节数据进行通信,通信双方只要事先定义共用的结构体,发送方先创建相应的结构体变量并填充字段,然后把变量对应的内存块copy到Socket,接收方从Socket读取字节块,然后把字节块强制类型转换为相应的结构体指针即可读取个字段信息。
2026-07-04 14:52:33
233
原创 横刀天笑的碎碎念
我原来是使用C#语言的,和现在的Java语言相比,现在的Java语言语法就停留在C# 2.0这个年代。语法结构都非常传统,中规中矩。很突出的一点是,因为缺少对闭包的支持,有些用C#很容易做到的,用Java需要写很多废话代码。前几天InfoQ上发表了一篇英国卫报逐步采用Scala替换Java的文章里一句话用的很好:看Java的代码很容易让你只见树木,不见森林。因为为了实现某个功能,你需要太多的支撑代码,而实现功能的关键代码却迷失了。举个例子:我需要一个排好序的用户列表,排序的依据是用户名字。
2026-07-04 14:49:39
180
原创 程序集是什么
Windows文件首部(知道有这么一个东西就行):就是告诉windows操作系统,本应用程序是ASP.NET 还是Winform还是控制台应用程序。那怎么查文件首部信息呢?打开VS的命令行工具 然后输入CLR 首部信息:运行于.NET 的程序都是需要这个标志哦!
2026-07-03 17:24:53
250
原创 DDD社区官网上一篇关于聚合设计的几个原则的简单讨论:
上面这几条原则,作者通过一个例子来逐步阐述。下面我按照我的理解对每个原则做一个简单的描述。
2026-07-03 17:23:53
174
原创 关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
这些请求编号1,2不代表执行的先后顺序,正式的场景下,应该是 100台服务器每个服务器持有一个请求去访问负责管理红包的妹子(服务),那在管红包的妹子那里同时会接收到100个请求,这个时候就需要在负责红包的妹子那里加个锁就可以了(抛绣球),你们100个服务器谁拿到锁(抢到绣球),谁就进来和我谈,我给你分,其他人就等着去吧。但是这块有一个问题,也就是,不光你服务器2可能会发现服务器1超时了,服务器3也可能会发现,如果刚好,服务器2,setnx操作完成,服务器3就接着删除,是不是服务器3也可以setnx成功了?
2026-07-02 21:16:26
185
原创 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)
在计算机里,是没有人这么灵活的,一般在阻塞时,选在干等,因为这最容易实现,只需要挂起线程,让出CPU即可。注:一定要去体会“多个事物”,多个线程是多个事物,多个方法是多个事物,多个语句是多个事物,多个CPU指令是多个事物。因此,可以认为,同步更希望关注的是从宏观整体来看,多个事物是一种逐个逐个的串行化关系,绝对不会出现交叉的情况。只是有些人素质太差,非要往上挤,售票大厅迫不得已,采用排队这种形式来达到自己的目的,即一个一个的买票。所以IO就包括两个过程,一个是等待数据的过程,一个是读写(拷贝)数据的过程。
2026-07-02 21:15:44
175
原创 我老大写Bug啦——记一次MessageQueue的优化
MessageQueue,顾名思义消息队列,在系统开发中也是用的比较多的一个中间件吧。我们这里主要用它来做日志管理和订单管理的,记得老老大(恩,是的,就是老老大,因为他已经跳槽了)还在的时候,当时也是为了赶项目进度,他也参与开发了,那时候我才刚刚入职,他负责写后端这块,我来了就把他手上的任务接过来了,(接着接着……就辞职了)。之后我们的开发仍然有条不紊的开发着,直到今年的一月份吧,才上线开始运行,然后就出现了常规状态,上线之后就开始爆炸,
2026-07-01 16:35:03
161
原创 分布式系统关注点(8)——99%的人都能看懂的「熔断」以及最佳实践
举个夸张的例子来形容:一幢楼的下水管是从最高楼直通到最低楼的,这个时候如果你家楼下的管道口堵住了,那么所有楼上的污水就会倒灌到你家。但是,由于分布式系统被建立在一个并不是100%可靠的网络上,所以上述的情况总有发生,因此我们不能将偶发的瞬时异常等同于系统“不可用”(避免以偏概全)。一旦通过了衡量是否“可用”的验证,整个系统就恢复到了“正常”状态,此时需要重新开启识别“不可用”的策略。切断联系要尽可能的“果断”,既然已经认定了对方“不可用”,那么索性就默认“失败”,避免做无用功,也顺带能缓解对方的压力。
2026-07-01 16:34:16
207
原创 今天我们一起来聊一聊 JVM 堆内存。
都会优先分配到 Eden 区(除非是超大对象直接进入老年代)。(伊甸园区):新对象的 "默认出生地",(幸存者区0,占新生代。(幸存者区1,占新生代。(伊甸园区,占新生代。
2026-06-30 15:11:00
223
原创 shared_future
可以使用shared_futureget():与不同,的get()可多次调用:多个线程可同时调用get(),但返回引用类型时要小心数据竞争:异常会被存储,每次get()都会重新抛出:共享状态由所有副本共同管理,最后一个副本销毁时释放资源:复制操作只增加引用计数,适合传递到多个线程:尽量返回值类型而非引用类型,避免悬挂引用:使用前检查valid(),避免操作空的get()提供语义,确保结果可见性。
2026-06-30 15:10:01
200
原创 Python列表去重的20种实现方式
列表(数组)去重是最常见的算法,非常简单,但不同实现方式背后的差异巨大。AI时代,可以不手写代码了,但需要知道代码背后的原理,这样才能更好地指导AI编程。
2026-06-29 15:33:07
353
原创 泡泡玛特LABUBU冰箱的炒作现象经济学解读
本例中999台供给 vs 数万IP粉丝需求 → 理论溢价空间达16倍。泡泡玛特LABUBU冰箱的炒作现象可从三大经济学原理深度解读。
2026-06-29 15:32:22
212
原创 . 问题背景与现象
在近期开发 AR 程序时,受限于公司测试设备的匮乏,笔者只能使用一台多年前的旧机型 Huawei P30 进行真机调试。相比之下,我个人的 vivo X Fold5 在 AR 能力上远不及这台 P30(新不如旧,原因未知),因此它成为了本次适配的核心测试机。值得一提的是,这台 Huawei P30 已升级至鸿蒙系统。理论上,由于众所周知的历史原因,鸿蒙设备无法安装谷歌的 ARCore 框架。但诡异的是,这台早期机型却成功安装了该框架。
2026-06-28 15:42:20
212
原创 在影子里验证比较对象:随机指纹和哈希的数学原理
程序里经常会遇到一种看似朴素、实际很贵的问题:两个东西是不是一样?它可能是两个字符串、两个文件、两个集合、一段文本里的子串,或者三个矩阵是否满足 A⋅B=CA⋅B=C。如果对象本身很大,尤其是在对象需要跨机器通信、被反复比较、以流式方式到达,或者比较结果只需要高概率可靠时,直接逐个字节比较往往不是最想要的方案。随机指纹法处理的正是这类问题。它不试图完整保留对象,而是把对象映射成一个短得多的值,然后比较这些短值。这个短值可能丢失信息,所以它不是压缩意义上的可逆编码,而更像一个可快速比较的影子。
2026-06-27 17:24:44
159
原创 完整学习LLM(五):Embedding是什么,为什么文本能变成向量
如果是专门做检索的 embedding 模型,它通常会把一段文本压成一个向量.比如 Word2Vec 论文里就强调,词向量可以从大量文本中学到词之间的关系.Embedding 要做的事情,就是让这种语义关系在数字空间里也能体现出来.它是通过训练,把语言里的统计关系和语义关系压到向量空间里.然后拿这个问题向量,去向量库里找最接近的文档向量.而语义检索背后的关键,就是 Embedding.真实的向量维度可能很高,不是二维图能画出来的.真实的 Embedding 是模型训练出来的.
2026-06-27 17:24:05
216
原创 AI Coding Agent 时代:代码越便宜,约束越贵
今天Agent一次可以生成过去几天的工作量,如果前面没有足够清晰的边界和约束,技术债也会以同样的速度被放大。过去,一个功能从想法变成代码,最大的瓶颈往往是人力:谁来写、写多久、熟不熟悉框架、会不会踩API的坑。当代码生成的成本下降,真正变贵的是那些决定代码是否值得存在的东西:架构判断、模块边界、接口契约、不变量表达、测试体系、依赖规则、Review标准、上线后的反馈闭环。因为真正变便宜的,不是"软件"本身,而是代码文本的生成成本。写代码的人按回车键的频率变高了,但让代码变得可信的那些工作,并没有自动发生。
2026-06-25 16:33:59
240
原创 在AI时代,如何从0接手一个项目?
AI推广普及之后,我们在网上见过最多的有关于AI编程的内容无非就两种,一种是“非专业背景如何氛围编程一个新项目”,另一种就是“我/别人氛围编程的项目产生了什么效果”。但其实还有第三种——锐评前两种。某些只有前端页面的网页根本不配称之为“项目”;就算你做出了完整的项目,你没办法盈利,你的商业模式不完整,甚至于没有。所以你的项目只能算个玩具。
2026-06-25 16:31:53
153
原创 深度学习进阶(九)池化技术的初步改进:RoI Pooling
首先要说明的是,Fast R-CNN 并不像现在主流的 YOLO 一样是端到端模型,它的目标检测逻辑是。也正因为这一点,在不显著改变语义的前提下,Pooling 还可以间接扩大后续网络的感受野。因此,Pooling 的第一步改进就出现在检测任务中,我们继续。换句话说,它的行为是“刚性的”:窗口位置固定、采样方式固定、这里的 表示池化窗口,我们用最大池化来筛选“最强响应”。现在,我们得到了将候选框映射到特征图中的区域,下一步是。要说明的是,这里并不是把区域切成 个正方形,而是。
2026-06-24 15:49:02
220
原创 OpenAI 官方出手:把 Codex 接进 Claude Code
官方也顺手给了警告:这个机制可能让 Claude 和 Codex 形成长循环,额度消耗会很快,只有在你准备盯着会话看的时候才建议开启。比如权限收敛、数据库迁移、回滚策略、并发处理、可靠性兜底,这些地方普通 review 往往只看写法,对抗式 review 才更容易把坑挖出来。比如你刚改了缓存策略、重试逻辑、回滚链路、权限判断,这时候让它来“挑刺”,往往比普通 review 更有价值。可以直接把问题甩给 Codex,让它去查 bug、试修复、续接上一次任务,或者换个更小的模型跑一遍更快的版本。
2026-06-23 16:19:13
229
原创 太强了!GLM-5.1 第一手实测,平替Claude Opus 4.6?
这次发布,官方公告很是低调,只有寥寥一句话:GLM-5.1现已面向GLM Coding Plan全部用户(Lite/Pro/Max)开放。别的没再多说,只是默默甩出评测结果——在编程能力上跑分45.3,相比上一代GLM-5直接飙升近。甚至嘛,距离当前全球最强编程模型Claude Opus 4.6,也就只有之差!!!这不是渐进式的进步,这是降维打击。此外值得一提的是,此次的GLM-5.1版本率先向开放,是的,你没听错,面向所有GLM coding plan用户。(Lite用户也能用了~)
2026-06-23 16:18:28
316
原创 WEB-2026DASCTF夏季赛-CorpGate
【1】index0f()方法用来过滤BLOCKED_ROOTS以及BLOCKED_KEYS的,起到一个黑名单的作用,即不在黑名单里的就返回-1,也就是不在黑名单的不会执行continue重新进入for循环,会进行后面的merge合并,导致js原型链污染。结合前面的,deepmerge用来合并res.body到setting中的(即我们的目的是合并没有的属性pending给所有对象的最终对象object.prototype,因为所有对象最终都继承于它)
2026-06-22 19:25:27
176
原创 拒绝算法黑盒!XGBoost + SHAP 一键生成 10 张出版级模型解释图
在很多实际业务中(比如做城市规划、经济地理分析),我们的特征变量通常是中文(如“人均GDP”、“交通可达性”)。这一步是所有可视化的基础,它会计算出每个样本、每个特征对最终预测结果的贡献度(SHAP Value)。改成你自己的数据路径,调整一下映射字典,运行后在同级目录下就会自动生成 10 张高清美图和一个模型指标评估表(包含 R², RMSE, MAE)。画出来的默认图表,颜色比较暗淡。脚本里我对 Matplotlib 进行了深度的客制化,统一使用了。亮红),并去除了冗余的边框,非常适合直接放进论文里。
2026-06-22 19:24:36
203
原创 人机Agent团队协同:从Managed Agents原理到Multica实践
Multica 是一个开源的 Managed Agents 平台,定位为遵循 Managed Agents 架构规范、厂商中立的开源 AI 智能体团队协作平台。Multica 目标并非自建Agent,而是搭建跨 AI Agent 的托管调度层,将分散在本地、多终端、多厂商(Claude Code、Codex、OpenCode)的智能体收拢,把 AI Agent 转化为人机团队内和开发人员平权的正式成员,落地 Managed Agents 工程化、团队化实践。
2026-06-21 23:40:08
371
原创 15天学会AI应用开发(五)使用AI摘要来压缩上下文消息
snownlp专门做中文的文本处理,内置自动摘要功能,体积小且速度快。"""自动生成摘要:param text: 原文:param limit: 提取几条摘要(默认2条):return: 摘要句子列表"""return s.summary(limit) # 自动提取关键句# 测试text = """火山方舟是火山引擎推出的大模型平台,提供模型训练、推理、评测、精调等全方位功能与服务。平台支持多种主流大模型接入,具有稳定可靠、安全互信的特点。
2026-06-21 23:39:34
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅