作者声明:创作过程中使用了AI辅助 平时写业务或者造框架的时候,反射肯定少不了。依赖注入、ORM、序列化这些底层全靠它撑着。但大家一直都在吐槽“反射慢”,它到底能有多慢?有救吗? 最近专门花时间跑了个微基准测试,把老熟人 Method.invoke 和稍微新一点的 MethodHandle 拉出来溜了溜。为了摸清底细,我不仅测了“直接调”和“加缓存”的性能差距,还把反射里的各个前置操作(比如查字段、查方法、读写属性)全拆开测了一遍。 测试场景 先简单交代下测试场景: 我搞了个很普通的 Target 类,里面有公共字段 value、私有字段 hidden 和...
作者声明:创作过程中使用了AI辅助 上篇:Fabric 模组开发:怎么用反射搞定多版本兼容? 上篇聊了反射框架,但有个前置问题没解决:既然整个反射体系的前提是“不能引入任何MC依赖”,Forge包又和Minecraft强绑定,那主类上的@Mod注解怎么过编译? 答案就是Compile-Time Stub。 为什么必须用Stub? 在纯反射框架下,由于Forge包与Min...
作者声明:文章创作过程中使用了AI辅助 本文的正经风格版本:https://blog.star-dust.link/posts/note/fabric-mod-reflection-multi-version-compatibility 观前必读 ⚠️ 重要声明:阅读本文前请仔细阅读以下条款 一、虚构性...
作者声明:创作过程中使用了AI辅助 搞 Fabric 开发的小伙伴可能都遇到过一个头疼的问题:Minecraft 每个大版本更新,底层代码就像重写了一样。如果你想弄一个一套代码兼容 1.18 到 26.1+ 的模组,还不能用 Mixin,甚至编译的时候连 Minecraft 的 jar 包都引用不了,还怎么玩? 今天咱就来聊聊,在这种极端约束下,怎么纯靠反射搭起一套稳健的多版本兼容体系。 一、为什么非得用反射? MC 版本更新对底层类的重构可以说是毫不留情。举个例子,跨几个版本你会发现类名、包名全变了: | 逻辑含义 | 1.18–1.21 (Yarn 映射) |...
收到可疑邮件 最近,我收到了来自renvolve.biz的这样一封看似专业的邮件: ` Hi [我的名字], Your work weaving GLSL and TypeScript feels both precise and creatively flexible, a rare combo for a developer balancing raw graphics with clean logic. What's the most stubborn technical hurdle you're currently facing in that stack, w...
作者声明:创作过程中使用了AI辅助 以下提及的项目全部是 Minecraft 模组或插件项目。 引言 把一套 Bukkit 命令系统搬到 Fabric 时,最劝退的不是 Brigadier 本身,而是要为了一个平台把所有命令逻辑全部重写一遍的痛苦。 由于之前有给一个其他项目写多平台的经历,因为那个项目代码少所以各平台的逻辑全部重复写了很多遍,造成更新时需要修改所有平台的代码,非常痛苦,因此这次给项目做多平台兼容没有使用这种方法,而是构建了 core 和 common 桥接接口。 但在编写 Fabric 平台逻辑的时候又遇到了 Brigadier 给每个命令建节点的问题...
最近发现了一个很喜欢的博客框架Mx Space,于是准备把之前的框架换掉,由于官方文档实际上过时,中间踩了很多坑。 坑1:Docker Ccompose中健康检查调用的API版本不对 在Mx Space Core v13中,API已由v2升级为v3,但官方文档给出的命令拉到的docker-compose.yml中仍为v2,导致容器状态一直为starting。 解决方法:在docker-compose.yml中将http://127.0.0.1:2333/api/v2/ping中的v2改为v3 坑2:配置与云函数已改名 在老版本的Mx Spa...
最近找轮子时偶然读到Innel大佬的文章,颇有共鸣。在这个连思考都快被AI代劳的时代,能静下心来写点东西实属难得。这大抵是我近两年来头一回正式提笔(其实是键盘)写博客,主要想聊聊AI时代对我的影响,以及自己的心路历程。 2021年底,ChatGPT横空出世。那时的它,还受限于4096的上下文窗口,稍微长点的文档就会“失忆”,甚至不足以完成一个完整的翻译任务;写代码更是频频出错,经常一本正经地胡说八道。那时,大家只把它当成一个聪明的玩具。 又过了一年,GitHub Copilot开始公测。我申请了测试资格,头回体验到注释和代码自动补全的惊艳。但说实话,那时它更像是一个“高级自动补全”工具,充...