kitlau
kitlau

kitlau's blog

All Posts in 2023.4


如何实现 AI 虚拟小镇?我与 NewBing 和 GPT-4 讨论了一下

基于Phaser游戏引擎和FAISS向量数据库构建的RPG游戏框架实现了NPC决策系统交互系统及环境互动功能通过初始化Phaser场景和FAISS索引定义NPC类并集成记忆向量化方法利用GPT生成决策文本驱动角色行为在update循环中通过makeDecision方法触发决策逻辑调用interactWithEnvironment和communicateWithOtherNPC方法处理物理碰撞及对话交互设计了床书架等环境元素的交互接口并通过距离阈值判断NPC间对话条件代码实现了NPC向量存储决策生成环境响应及角色互动的核心流程并建议通过模块化设计扩展UI剧情等游戏要素--Qwen3

AI Phaser.js FAISS RPG Game NPC Logic Environment Interaction

C# 3 年前的 record 你现在用上了吗?

C# 9.0引入的record类型通过不可变性和值语义重构了数据建模逻辑,其简洁语法让DTO、领域事件等场景的代码质量显著提升,但三年来却鲜有开发者真正拥抱这一特性。文章从内存层面解析了record作为引用类型与class、struct的本质差异——它在托管堆上与class共享垃圾回收机制,却通过不可变设计规避了引用类型常见的状态污染问题。这种设计哲学与IReadOnlyCollection等只读集合形成呼应,共同构建了防御性编程的基石。然而在行业实践中,record的冷遇暴露了开发者对代码质量的集体忽视:当市场更关注交付速度而非长期维护性时,不可变性带来的线程安全、可预测性等优势反而成为效率的"枷锁"。更吊诡的是,AI代码生成工具的崛起正在重塑开发者的价值体系——当GPT-4能自动生产符合规范的代码时,开发者是否还会为record的类型安全买单?文章最后抛出尖锐质疑:在追求效率的时代,代码质量是否正在被牺牲?当AI接管编码工作时,record的不可变性是否反而成为阻碍快速迭代的绊脚石?这些拷问指向一个更深层的命题:当工具逐渐替代人力,我们是否正在失去对代码质量的掌控?--Qwen3

.NET C# Record Immutability Value Semantics Data Modeling