从细节看品质 - 缓存策略、审计日志、定时任务与授权保护
这一篇不讲业务,专门聊聊那些藏在业务代码后面的支撑性设计:AOP 缓存拦截器、审计日志、Quartz 定时任务、License 硬件授权,以及NLog 全链路日志。
分享技术开发经验、设计思考,涵盖数字设计、系统开发、AI应用等技术与实践内容
这一篇不讲业务,专门聊聊那些藏在业务代码后面的支撑性设计:AOP 缓存拦截器、审计日志、Quartz 定时任务、License 硬件授权,以及NLog 全链路日志。
充电宝机柜分布在城市的各个角落,运维人员不可能天天跑现场。所以后台必须提供一个「远程控制中心」——能看到每台设备的在线状态、信号强度、电池槽位详情,还能远程重启、强制弹宝、查询明细。
不同角色能看到不同的菜单、操作不同的功能、查询不同的数据——如果设计得不够灵活,每加一个页面就要改一套判断逻辑,代码会越来越臃肿。我们这个项目有四个角色:平台运营、合作商户、代理、运维人员,外加两套独立前端(OPS 运营后台 + Web 商户后台)。但后端只有一套。这一篇就讲权限体系怎么设计的,以及两套前端怎么复用同一套后端。
如果你的平台不跟微信深度绑定,基本玩不转。这一篇就把我们接入微信生态的几个核心模块从头到尾拆解一遍。
高考结束,真正的难题才刚开始——志愿填报。考得好,不如报得好,这句话并不夸张。很多人以为高考决定人生,实际上,它决定的只是你的起点;而志愿填报,决定的却是你的赛道。城市、专业、大学,哪个更重要?
学会判断"做什么"比"怎么做"更重要。对于一个独立开发者来说,时间是最稀缺的资源。花一个月做一个80%的人需要的功能,比花一个月做一个20%的人需要但更酷的功能,回报大得多。
本文以 EOMS 系统的 AI Agent 模块为样本,完整解析如何在 .NET 10 项目中集成大模型,从底层 ChatClient 配置到 Agent 编排器、工具系统、会话管理,再到前端 SignalR 流式对话的全链路实现。
用户在共享充电宝前扫码、弹宝、使用、归还、支付——这五个步骤构成了一个完整的交易闭环。每一个环节都可能出问题:设备离线了怎么办?支付分没确认怎么办?归还时网络断了怎么办?
充电宝机柜本质上是一个嵌入式设备,主板上跑着 C 固件,通过 4G 模块连上互联网。想让服务器跟机柜「说话」,最直接的方式就是 TCP 长连接。但当时面临一个选择:用现成的 IoT 平台(比如阿里云 IoT、EMQ X),还是自己写 Socket 服务?
关于设备与服务端的 TCP 长连接通信、订单实时计费逻辑、支付分免押金对接、软硬件全链路调度这些核心技术,几乎没有一套完整、生产级的落地架构。