Canapin
(Coin-coin le Canapin)
1
我不是开发人员。我只有基本的编码知识。我能读懂简单的代码。
我最近创建了一个插件,主要依靠 Gemini 免费版。95% 的代码是 AI 生成的。
虽然这个插件确实能用,界面和管理员体验也相当不错,但我对代码的整洁度有切实的担忧。尽管我努力提示[^1](并手动向 AI 提供了官方代码的摘录),但我确信这段代码没有很好地利用 Discourse 环境。例如辅助函数、组件、类等等。这就是我偶尔用官方代码片段喂它的原因。
[^1]:写“努力提示”让我感到尴尬 
我听说现在很多开发人员在工作流程中使用 AI。我很好奇,如果 AI 了解 Discourse 生态系统,它生成的 Discourse 插件代码会有多好。
我被建议尝试 Claude,特别是 Opus 模型。我还被告知它非常消耗 token,因此很昂贵。
我对我的项目没有真正的雄心壮志。这只是一个爱好。我很好奇我所想象的一个插件在现实世界中会是什么样子,而 AI 在这方面相当不错。
您在使用 AI 开发插件或组件时有经验吗?您是否尝试过将 Claude Opus 集成到您的 IDE 中?它有多大帮助?
它是否能正确利用代码库来生成新代码?
它有多贵?您选择了哪个套餐?
3 个赞
我发现,如果人工智能有可以参考的示例,与它一起处理 Discourse 代码会显著更好,而 Claude Code 在这方面特别擅长(Google Gemini 的 CLI 也是如此!)。
对于业余爱好者来说,每月 20 美元的套餐可能已经能让你走很远了……但也不难达到每日限制,到那时你可以等到限制重置,或者购买一些点数。
3 个赞
Canapin
(Coin-coin le Canapin)
3
我认为我对价格的理解有误。免费/专业/最大套餐是用于通过其网页界面使用 Gemini 的(https://claude.com/pricing)。API 价格是基于 token 的(https://claude.com/pricing#api);使用他们的 API 没有月度订阅,对吗?
如果在,比如说,VSCode 中使用 AI,就需要使用他们的 API。
编辑:好吧,我下次写之前会先看一些教程的 
1 个赞
上周我花了一些时间尝试使用 ask.discourse 编写一个 Discourse 插件。我惊奇地发现,我只需描述我希望创建的插件的功能,它就能吐出很多提示和代码片段,其中一些甚至可以运行。
我是一个业余程序员。在我的 Discourse 实例旁边,我运行着另一个带有 MySQL 数据库、PHP 后端和 Jquery/Javascript 前端的服务器,但我不是专业程序员。大多数时候,在开发那个网站时,我只是把我想做的事情输入到普通的谷歌中,它(我想是 Gemini?)就会吐出代码示例。大多数代码都能直接运行,而且我的 Javascript 水平足够好,可以弄清楚那些不能运行的原因。
多年来我使用过许多编程语言,在过去,我需要花费数小时阅读、搜索和实验才能弄清楚我现在输入到谷歌中并在几分钟内完成的事情,而过去这可能需要数小时甚至数天。
ask.discourse 的出色表现让我惊叹不已,最终我成功地实现了一个插件,它大致能完成我想要的功能。经过一些样式设置(css)后,它可能/可以成为一个可用的插件。我对人工智能辅助服务可以简化代码创建的可能性感到很着迷。
2 个赞
asa
5
我为我的Discourse页面编写了一个带有Antigravity的插件,用于显示最受欢迎的动漫系列。我还创建了一个观看列表。有时它会出现故障,需要进行很多更正,但我相当满意。
2 个赞
Canapin
(Coin-coin le Canapin)
6
我在 VSCode 上使用专业版(20 美元)使其生效了。我认为消耗是合理的。3 小时的提示得到了这个结果:
到目前为止,结果并不理想。
有趣的是,可以描述在为 Discourse 创建插件或主题组件(从骨架开始)时,应该配置什么,或者应该告诉 Claude 什么。
为了最大限度地提高 CLAUDE.md 的效率,应该在其中写入哪些说明?
当 AI 在代码库中查找信息时,是否应该优先考虑某些 Discourse 目录(我想到了 controllers, models, serializers, services……)?
如何让它了解标准的文件层次结构、命名和约定?
1 个赞
sam
(Sam Saffron)
7
我们应该发布技能,@j.jaffeux 和我认为它们会非常有帮助。
6 个赞
Canapin
(Coin-coin le Canapin)
9
我查看了 https://github.com/discourse/discourse/blob/main/AI-AGENTS.md。
我有一些问题!
AI 能理解全大写的强调吗?如果写成“Never”和“Always”而不是全大写,它的行为会有所不同吗?
像“architect mode”(架构师模式)或其他“xxx mode”(xxx 模式)提示是否正在成为 AI 开发中的软性标准?它们对模型的行为有实际影响吗?它们是纯粹的约定吗?
我能看出什么是显而易见的测试,但 AI 明白什么是显而易见的测试(或任何显而易见的事情)吗?
我花了两天时间在 VSCode 中试用 Claude。看到所有事情都能自动运行,真是令人印象深刻。阅读、创建、修改文件、运行 bash 命令等…… 
关于 Claude 在插件创建方面的工作,我观察到以下几点:
-
在迭代同一段代码和解决问题时,它倾向于使用过于具体的变量名。例如,它会将一个变量命名为 original_url 而不是非常精细和简单的 url,就好像是为了指出所做的更改一样,但实际上没有必要。
-
迭代通常会导致代码变得复杂,有时还会导致查询不必要地复杂。时不时地要求 AI 审查并指出可以重构的代码部分被证明是有用的 
-
当被要求为给定问题寻找解决方案时,我对答案感到满意。
这些建议似乎是准确的。当它提出多个选项时,它可以准确地权衡每个选项的利弊。
-
在 SCSS 中,它(很少)会在不建议使用的地方使用硬编码的颜色,而不是使用 Discourse 的颜色变量。
-
它似乎没有意识到 Designing for Different Devices (Viewport Size, Touch/Hover, etc.)
-
在执行了几项任务之后,我喜欢要求 AI 审查代码,看看是否可以在不影响可维护性的情况下优化某些部分。我对结果没有遇到太多问题。有时,它会过度修改并破坏代码。
-
偶尔,它似乎会为了安全性和健壮性而创建不必要的条件,但这些情况我不太确定在现实世界中是否存在。
例如,在我关于搜索的插件中,它会检查一个帖子是否关联了任何主题。但我认为在 Discourse 中,没有关联主题的帖子是不应该存在的。如果你有一个,那是不是意味着你的实例在某个时候出了大问题,对吧?我觉得在我的插件中进行这种检查没有意义。
-
它似乎擅长搭建测试脚手架!
总而言之,到目前为止体验不错,即使没有使用高级 AI 配置。
我花了一周的配额,只用了四天就用完了,这很棒,因为它迫使我休息三天 
很好奇,当 Discourse 的技能添加进来后,它会如何变化。
3 个赞