给开源后台做等保适配,我发现了 5 个"看起来有、其实没用"的功能
给开源后台做等保适配,我发现了 5 个"看起来有、其实没用"的功能从一个尴尬的现场测试说起等保测评有一个环节,测评师会坐在你旁边,让你现场操作。轮到身份鉴别这一项时,他提了个要求:“你把密码改成 123456 试试。
C#静态成员与静态构造函数:那些只执行一次的代码
写代码时我们总有一些"全局只该有一份"的东西:配置项、缓存、计数器、工具方法。static 就是干这个的。但它有个很多人说不清楚的地方:静态构造函数到底什么时候执行?执行几次?搞不清楚,就容易写出"初始化顺序莫名其妙"的 bug。
C# 入门实战:简易密码生成与强度校验
给测试账号批量造密码、在注册页给用户一句“你的密码强度:弱”,这两个需求都很常见,但写法差别很大。生成必须用密码学安全的随机数,校验则要把“缺什么”讲成人话。先记住一条底线:凡是用来生成密码、令牌、盐值的随机数,都不能用 Random。
C# AI开发 篇135:用户画像注入:让 AI 知道对面是谁,但别知道太多
同样一句话,对 VIP 用户和试用用户说,方式应该不一样;但如果把用户的手机号、地址、订单全塞进提示词,既费 token,又把隐私交给了模型。这篇要解决的就是这个两难:只注入"会影响回答方式"的聚合字段,可解释、可校验、可关闭。
C# 重构实战:把静态工具类改成可测试的服务
发短信的 `SmsHelper` 被 13 个地方静态调用,测试只能真发短信,而且每次调用都 `new HttpClient()`。这篇分四步把它改成能注入假实现的服务,验收标准是能写出 3 个毫秒级单测。
.NET上位机踩坑:BOOL和BIT
前言大家好,我是 wacky。今天这篇文章,来源于一个真实的疑问,什么疑问呢?就是我一个BOOL类型的数据,它的值是TRUE或者FALSE;而一个Bit类型的数据,它的值,也是TRUE或者FALSE,那么它们二者是一样的吗?能否互相替换使用?
REM做梦检测可用版本
// 引脚定义int left1Pin = A3;int left2Pin = A2;int right1Pin = A1;int right2Pin = A0;int red1Pin = 9;int red2Pin = 10;int bluePin = 11;int vibra
C# AI开发 篇124:影子模式灰度对比,新模型上线,先让它跑一遍
新模型在评测集上准确率高了 5 个点,你敢直接全量切换吗?很多团队的答案是"敢",然后在一周内收获一批从没见过的新幻觉。这篇讲影子模式(Shadow Mode):线上真实流量同时喂给新旧两个版本,旧版照常返回给用户,新版只记录、不生效,跑几天用数据决定是否放量。