保持对代码的理解,不要完全依赖AI Coding——由一段Babylon.js开发出现的bug引发的感慨
子曰AI Coding并不知道自己在干什么。子曰如果一段代码的bug找不到不要整晚死磕好好睡一觉很可能第二天早上就找到了。子还曰保持清醒比无脑努力重要136.25倍。子路重要程度需要精确到小数点后两位吗子曰需要使用cursor开发一个基于Babylonjs引擎的内容cursor通过opus4.8帮我写了如下代码注意的两段代码中关于attach的部分import { Observable, TransformNode, type Behavior } from babylonjs/core; export default abstract class LerpBehavior implements BehaviorTransformNode { public get name(): string { return LerpBehavior; } public static readonly behaviorName: string LerpBehavior; private _uuid: string ; public get uuid(): string { return this._uuid; } protected _setUuid(uuid: string): void { this._uuid uuid; } protected _target: TransformNode | null null; public get target(): TransformNode | null { return this._target; } public readonly onSetProcessObservable new Observablenumber(); public readonly onDetachObservable new Observablevoid(); init() { } protected _isInitialized: boolean false; protected _attached: boolean false; attach(target: TransformNode) { if (this._attached) return; this._attached true; this._target target; } detach() { this.onDetachObservable.notifyObservers(); this.onDetachObservable.clear(); this._target null; this._attached false; this._isInitialized false; } public dispose(): void { this._target?.dispose(); } public setProcess(process: number): void { if (!this._isInitialized this._target) { this._initialize(); } this._applyProcess(process); } protected abstract _applyProcess(process: number): void; protected abstract _initialize(): void; }import LerpBehavior from ./LerpBehavior; import { Vector3, TransformNode, Axis, Space, Scalar } from babylonjs/core; import { DTO_LerpPosition } from ../../../../../Shared/TScripts/DTO/DTO_RuntimeSystem; export default class LerpPosition extends LerpBehavior{ public get name():string{return LerpPosition;} public static readonly behaviorName LerpPosition; public static createFromJson(trNode: TransformNode, jsonBehav: string): LerpPosition | undefined{ try { if(trNode){ const data: DTO_LerpPosition JSON.parse(jsonBehav); if (!data) return undefined; const s data.start; const e data.end; const offsetStart new Vector3(s.x, s.y, s.z); const offsetEnd new Vector3(e.x, e.y, e.z); const behavior new LerpPosition(offsetStart, offsetEnd); behavior._setUuid(data.uuid); trNode.addBehavior(behavior, true); behavior.setProcess(data.process || 0); return behavior; } return undefined; } catch (error) { console.error(Failed to create LerpPosition:, error); return undefined; } } private _offsetStart:Vector3; private _offsetEnd:Vector3; private _posStart: Vector3 | null null; private _posEnd: Vector3 | null null; constructor(offsetStart:Vector3, offsetEnd:Vector3){ super(); this._offsetStart offsetStart; this._offsetEnd offsetEnd; } public override attach(target: TransformNode): void { if (this._attached) return; this._attached true; super.attach(target); } /** * 初始化起始和结束位置 * 使用局部空间的translate来计算相对于当前位置的偏移 */ protected override _initialize(): void { if (!this._target || this._isInitialized) return; const currentPosition this._target.position.clone(); this._target.translate(Axis.X, this._offsetStart.x, Space.LOCAL); this._target.translate(Axis.Y, this._offsetStart.y, Space.LOCAL); this._target.translate(Axis.Z, this._offsetStart.z, Space.LOCAL); this._posStart this._target.position.clone(); this._target.position currentPosition; this._target.translate(Axis.X, this._offsetEnd.x, Space.LOCAL); this._target.translate(Axis.Y, this._offsetEnd.y, Space.LOCAL); this._target.translate(Axis.Z, this._offsetEnd.z, Space.LOCAL); this._posEnd this._target.position.clone(); this._target.position currentPosition; this._isInitialized true; } protected override _applyProcess(process: number): void { if (!this._target) { return; } if (this._posStart this._posEnd) { const p Scalar.Clamp(process, 0, 1); this._target.position Vector3.Lerp(this._posStart, this._posEnd, p); this.onSetProcessObservable.notifyObservers(process); } } }注意这中写法会导致子类中的this._target target;这行代码永远得不到执行所以this._target 一直是null 让opus4.8在debug模型调试了一晚上都找不到问题回家睡觉第二天早上一眼就看到了只要把LerpPosition里面的public override attach(target: TransformNode): void { if (this._attached) return; this._attached true; super.attach(target); }写成public override attach(target: TransformNode): void { if (this._attached) return; super.attach(target); this._attached true; }就好了。当然这种 override 代码本来就没个P用我不明白cursor写他干嘛因为这几行狗P根本就是直接删除了也行子最后曰有了AI Coding也不要当甩手掌柜的。

相关新闻

10 个使用 Spring Boot 4 的开发技巧,太惊艳了!

10 个使用 Spring Boot 4 的开发技巧,太惊艳了!

大家好,我是Java1234_小锋老师。Spring Boot 4 在 2025 年底正式发布,底层换成了 Spring Framework 7,很多以前要「自己造轮子」的事情,现在框架直接帮你做好了。这篇文章挑了 10 个我觉得最实用、最容易上手的技巧,每…

2026/7/17 7:27:41阅读更多 →
2026 AI 标书工具综合排名与技术评测:5 款主流产品分梯队解析

2026 AI 标书工具综合排名与技术评测:5 款主流产品分梯队解析

前言随着招投标领域智能化政策落地加速,AI 标书工具已从尝鲜属性转向生产力工具属性。但当前市场产品技术路线分化显著,从通用大模型套壳、模板化填充到垂直全流程方案,能力差距悬殊,大量营销噱头也让企业选型容易陷入认知误区。为…

2026/7/16 14:38:19阅读更多 →
跨平台获取macOS系统镜像:告别苹果硬件的限制

跨平台获取macOS系统镜像:告别苹果硬件的限制

跨平台获取macOS系统镜像:告别苹果硬件的限制 【免费下载链接】gibMacOS Py2/py3 script that can download macOS components direct from Apple 项目地址: https://gitcode.com/gh_mirrors/gi/gibMacOS 你是否曾经需要在Windows或Linux电脑上获取macOS系统…

2026/7/18 7:43:04阅读更多 →
方便我开发的好东西(Claude、gpt、glm)

方便我开发的好东西(Claude、gpt、glm)

个人开发自用,且嫖且珍惜。排名不分先后,推荐指数纯个人主观意向。 网址注册渠道是否可签到可使用方式个人推荐指数优点备注vip-ai邮箱否cli⭐⭐⭐⭐⭐注册方便、稳、耐用非常耐用!倍率非常低pro aiL站或秋否cli⭐⭐⭐⭐⭐注册方便、稳、耐用…

2026/7/18 8:56:27阅读更多 →
ncmdump:彻底解决网易云音乐NCM加密格式的终极转换指南

ncmdump:彻底解决网易云音乐NCM加密格式的终极转换指南

ncmdump:彻底解决网易云音乐NCM加密格式的终极转换指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲,却发现在其他播放器或设备上无法播放?这正是NCM加…

2026/7/18 8:56:27阅读更多 →
Superset 自定义配置指南:从入门到生产环境实战

Superset 自定义配置指南:从入门到生产环境实战

1. Superset 配置入门:为什么需要自定义配置 Superset 作为 Apache 旗下的开源数据可视化工具,其核心配置文件 config.py 暴露了数百个可配置参数。这个设计理念源于 Flask 框架的模块化思想——通过继承和覆盖实现灵活配置,而非直接修改源…

2026/7/18 8:56:27阅读更多 →
Python OCR与机器翻译实战:开发漫画翻页即译工具

Python OCR与机器翻译实战:开发漫画翻页即译工具

最近在追更国外漫画时,总是被生肉(未翻译版本)困扰,要么等汉化组更新等到花儿都谢了,要么自己查词典效率极低。作为一名开发者,自然想到能不能做一个工具,实现翻页自动翻译,真正实现…

2026/7/18 8:56:27阅读更多 →
GPT-5.6技术解析:多智能体协作与程序化工具调用的开发实践

GPT-5.6技术解析:多智能体协作与程序化工具调用的开发实践

如果你正在关注AI大模型的最新动态,可能会注意到一个有趣的现象:OpenAI在2026年7月刚刚发布了GPT-5.6系列,但业界已经开始热议GPT-6的紧迫性。这种"版本焦虑"背后,实际上是AI领域竞争格局的深刻变化。 从官方发布的GPT…

2026/7/18 8:56:27阅读更多 →
企业官网SEO优化:提升搜索引擎首页排名的关键策略

企业官网SEO优化:提升搜索引擎首页排名的关键策略

1. 为什么企业官网需要出现在搜索引擎首页? 当潜在客户在搜索引擎输入行业关键词时,如果您的企业官网能稳定出现在首页结果中,相当于每天都有数百次免费的精准广告曝光。根据2023年SEMrush的行业数据,排名首位的自然搜索结果平均点…

2026/7/18 8:51:26阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/17 10:42:55阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/18 8:49:08阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/17 13:22:23阅读更多 →
从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

2026/7/18 0:00:14阅读更多 →
Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

2026/7/18 0:00:14阅读更多 →
某智驾大牛创业

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 0:00:14阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/17 22:48:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/17 13:22:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/17 17:26:50阅读更多 →