插件窝 干货文章 处理问题

处理问题

问题 使用 github issues 472    来源:    2024-10-20

我制作了explainer.js,一个用于处理文件并输出代码块和解释的 CLI 工具。如果您不知道文件中发生了什么,那么这可能会有所帮助。
使用 Commander.js 和 Groq SDK 构建!
看看@ https://github.com/aamfahim/explainer.js

即时响应

为了进行代码审查,我和我的合作伙伴 @sych_andrii 又名 Andrii 使用了不和谐的通话功能。通常,对于代码审查,我更喜欢同步方法。跳上视频通话和屏幕共享并实时进行可以帮助快速跟踪流程,而不是在 git 问题中异步进行。虽然如果有很多细节,异步也是可行的,但这种情况很少见。所以,如果可能的话,我更喜欢同步进行。

这不是我们的第一次牛仔竞技表演

我们都非常熟悉代码审查。我们俩都审查过彼此的代码。我认为评论部分容易多了,因为我们事先就认识了。

我先做你的,然后你做我的

正如标题所示。我的伙伴首先检查了我的代码。由于我的大部分问题都与 README.md 相关,所以他有很多问题。我让他使用我的工具。正如他所希望的,最初的问题是他尝试使用 OpenAI API 密钥,但 Groq 抛出错误。因此,我们使用 Groq 生成的 API 密钥进行了尝试,结果成功了。然后我们尝试了 OpenAI 基本 URL,该 URL 可以正常工作(技术上),但响应表明提供的基本 URL 不正确。然后我们尝试了不同的模型,发现只能使用 Groq 支持的模型。

这些是他在我的存储库上提交的问题

在我的存储库上提交的问题

  1. https://github.com/aamfahim/explainer.js/issues/9 README.md 生成的比较仓促,所以有很多不准确的信息,也有一些地方不正确。
  2. https://github.com/aamfahim/explainer.js/issues/10 Andrii 尝试使用 gpt-4o 模型,但我认为 Groq 不支持该模型。然后我们尝试了一个支持内容安全的模型,这为他提供了有关该问题的输出。所以,我也不得不提到 README.md 中的限制。
  3. https://github.com/aamfahim/explainer.js/issues/11 --outout 尚未实现,但已在 README.md 和帮助说明中。
  4. https://github.com/aamfahim/explainer.js/issues/12 -t 标志未正确解析
  5. https://github.com/aamfahim/explainer.js/issues/13 描述不清楚预期的参数是文件路径。

WSL 还是 Powershell?

那么,接下来就轮到我复习了。第一个障碍是安装。最初我使用默认终端 WSL 和 Ubuntu 作为我的发行版。老实说,我不经常使用 python,而且我的版本也很旧。我什至不记得安装过python。因此,由于版本问题,我无法安装依赖项,并且由于某种原因无法更新我的版本。所以我切换到 cmd,我知道我的 Windows 笔记本电脑上安装了 python。因此,我必须使用 cmd,但问题是在每个命令之后我都必须提及 --python 版本。为此,我还必须传递文件目录中某处的文件路径。设置好后运行起来效果非常好。我没有发现任何错误,但我确实有关于自述文件结构的反馈。我还请求了 .env 支持,因为为了运行该工具,我每次都必须复制粘贴 API 密钥,这有点乏味。他也是用Python来做的。真是个疯子!

在 Andrii 的存储库上提交的问题

  1. https://github.com/SychAndrii/infusion/issues/8 我发现 README.md 有点难以理解,所以我添加了一些建议。
  2. https://github.com/SychAndrii/infusion/issues/9 请求 .env 支持,这样我就不必每次使用时都粘贴 api。
  3. https://github.com/SychAndrii/infusion/issues/10 帮助部分的特定部分需要进行一些重构。
  4. https://github.com/SychAndrii/infusion/issues/11 如果文件有不相关的内容,有时会抛出错误,有时则不会。

一切都解决了吗?

我解决了所有问题。没花太多时间,因为问题很简单。大部分工作是浏览 Commander.js 文档。中间也进行了一些重构。

通过测试和审核的过程您学到了什么?

经验教训

有时在开发过程中很容易迷失在酱汁中。我非常专注于让代码更干净,所以我把 README.md 作为第二个想法。我认为与代码一样,文档也应该受到同样的重视。另外,在 Node 中使用纯 JS 和 ESM 并不有趣。学到了很多关于纯 JS 的东西,这些东西我从来不知道或忘记,比如 + 是将 sting 转换为适当数据类型的简写,而参数在箭头方法中不可用。我完全同意这个评论。