这一年我写书过程中使用 AI写作、 编程的感受

154 阅读9分钟

昨晚熬夜到凌晨 3 点,把我今年即将出版的书《从零开发企业级 Go 应用》重新打磨了一遍。这本书,我花了很多精力打磨,全书的逻辑、内容、文字打磨了不下 7 遍。

书中的实战项目 miniblog(github.com/onexstack/m… miniblog 中的绝大多数变量命名方式,背后都可能经过反复推敲,使其更加简洁、易懂、易展现。

本文来分享下我在使用 AI 工具写书、开发 miniblog 项目过程中的一些真实感受。

写作书稿内容时的感受

在书稿第一版写好后,出版社编辑当时提醒我可以试试用 ChatGPT 之类的工具来润色下。因为自己日常工作,也有用 GPT 之类的工具,也了解 GPT 工具对日常工作、编程的帮助。

所以,书稿第一版出来后,书中的不少表述,我都用 AI 类工具润色了一遍,而且有些时候,会尝试用不同的 LLM 去润色。

这里来分享下,在写书及打磨书稿过程中对 GPT 写作的一些感受:

  • AI 工具润色带来的优点:
    • AI 工具润色的语句,在细节上有优势,并且有时候可以帮助补充一些遗漏的点;
    • AI 工具润色出来的语句,没有错别字,表述风格也能保持一致。
  • AI 工具润色的缺点:
    • 因为幻觉问题,AI 工具润色出来的语句,可能有一半的语句跟我实际想表达的意思有偏差、不准确;

    • AI 还不能从更上层的视角去规划设计整个知识体系和结构,导致润色出来的语句,逻辑断层、不准确;

    • AI 润色出来的语句格式多半如下,个人感觉如果通篇都是这种格式,会显得很机械、缺乏灵魂、缺乏共鸣:

    • AI 工具润色出来的文章表述“官味”十足,并且有很多润色出来的语句,乍一看,板板整整,有模有样。但细致阅读,会发现语句缺乏逻辑,甚至不通顺;

去年年底,我重新打磨了一遍书稿,去除了很多 AI 润色的语句,核心原因如下:

  1. 确保书中的语句表述符合我想表达的意思,确保这些语句逻辑通顺、表述正确;
  2. 去除机械感和“官味”,重新加入作者的人性化表述和思考,给全书注入作者的灵魂。用人的视角去写书,而非用机器的视角去写书。

上述 2 个原因,每一个都是重新打磨,优化或修正 AI 语句的核心原因。日常,在我阅读一篇文章或者一本书的时候,很多时候,我很希望能够听到来自作者自己的思考和见解,无关对错。因为总是希望知道另一个是怎么思考、选择或行动的,因为很多时候,同类才有参考意义。我也希望我的书能呈现出我的风格和思维。

我目前正在写一本新书。这本书,其中有很小一部分,可能会让 AI 协助润色,但是主体我会用自己的语言来写作。因为我想让我的书呈现出我的思维和写作风格,另外,我也不想再花费时间,去打磨 AI 润色的语句。

开发 miniblog 项目时的感受

《从零开发企业级 Go 应用》这本书通过介绍一个高质量的实战项目 miniblog 的开发过程,来介绍如何开发 Go 应用。

在开发 miniblog 项目时,里面的很多地方也借助了 AI 工具。整体感觉是,AI 工具在编程上的帮助会比写作时的帮助更大、更有参考和使用价值。

以下是开发过程中,整体的使用感觉:

  • AI 项目理解能力偏弱: AI 当前还不能很好的理解整个项目,也无法系统化的给出整个项目的设计和实现;
  • AI 设计能力偏弱: 当前 AI 还不能很好的从更上层视角去设计软件架构、功能实现方式等。在使用 AI 的过程中,AI 会给出一些设计和实现方法,但这些设计和实现方式很多是网上现有的实现,在我看来,并不是最优解。所谓的最优解,应该是基于现在,进一步升华,AI 当前缺乏思考、升华能力;
  • AI 生成代码偏低中阶: 在我看来 AI 能够给出一些不错的代码实现,但在使用过程中,发现很多实现属于初级、中级阶段的实现方式,如果想达到更高级的实现方法,需要一个有经验的人进一步引导 AI 如何去实现。
  • AI 是一个好的执行者: 在使用 AI 的过程中, 感觉 AI 是一个很好的执行者。只要你能把你的设计友好的表达给 AI,它便可以很快的生成需要的代码,而且生成的代码很规范、细节考虑到位。但是,在生成的过程中,需要你不断引导 AI 以生成预期的代码(相当于你是一个代码架构师)。当然了,最大的好处是,你不用去一行一行的撸代码了,大大提高了开发效率;
  • AI 有自己擅长的领域: 在使用 AI 的过程中,发现有些领域 AI 能带来极大的帮助,例如:单元测试用例生成、代码注释生成、代码优化(AI 给出的不少优化,都有参考价值)、具体的搬砖任务。

总结下借助 AI 编程的感受:AI 是一个好的执行者,但不是一个好的设计者。AI 具备设计能力,但设计能力偏向于初级、中级阶段,对于一些高阶的设计,甚至创意性的设计,AI 目前能力还很弱,不能满足需求。

如果再让我写一个 Go 实战项目,我的选择如下:

  • 做好一个设计者: 我会扮演好一个设计者的角色,从项目维度,结合自己的开发经验等 Token 数非常大的上下文(我脑海中的 Token 数,远超当前 AI 的 Token 阈值),去设计整个项目的架构、开发方式及具体功能设计;
  • 做好一个指挥官: 根据自己的设计、思考,编写优秀的 Prompt 去让 AI 执行。核心点就是,AI 写出来的代码(风格、实现方式、逻辑等)是我想让它写的,只是我自己懒得写而已;
  • 做好一个学习者: 在开发过程中, 也会尝试让 AI 优化代码,参考 AI 生成代码中的好的实现、命名方式等。

人能做到,而 AI 做不到的

上面介绍了 AI 的能力。这里再介绍下由人主导编写的《从零开发企业级 Go 应用》课程,相较于 AI 有什么更突出的地方。核心点如下:

  • 课程内容体系化: AI 当前还不能系统化的给出整个项目的设计及实现。本书基于我过去的 Go 项目开发、架构经验,非常系统的介绍了 Go 项目的设计和实现方式,包括项目开发中的各个阶段,例如:设计阶段、开发阶段、测试阶段、部署阶段等;
  • 课程架构更优:AI 当前可以给出一些小范围的架构设计,但这些架构设计偏初、中级,在我看来并不是最优解。本书基于对其他 Go 项目的设计和实现,基于个人的思考,设计了一个更优的架构和实现方式;
  • 课程实现更优: AI 给出的代码实现可以满足初级或者中级的代码实现要求,但本书,期望给出一种更高级的设计和实现,所以其中的实现基本都是基于个人经验、思考来设计和实现的;
  • 课程说的是人话: 现在网上充斥了大量的 AI 生成内容,看起来很机械,缺少了一些人的灵魂在里面。在我学习过程中,很多时候,我期望能够看到一个作者自己的思考,而无关对错。如果你想知道一个一线 Go 开发者的思考和实现,那么可以认真学习本书。

一些其他恐怖发现

最后,再来分享下,我写「如何开发企业级 LLMOPS 平台」这节课过程中,网上调研过程中发现的一些很恐怖的事情。

  • 百度搜索:搜索,「如何开发企业级智能体平台」,搜索结果我发现很多是广告和 AI 生产类文章,例如:

  • 谷歌搜索:谷歌搜索出来的结果很多能符合预期,并且广告也没那么多。

这些搜索结果,一方面,让我对 AI 软文产生一种呕吐的感觉,另一方面也让我担心未来某平台的文章会不会被这些缺乏深度思考、一件生成的 AI 引流文章所充斥。

如何提前学习这本书

《从零开发企业级 Go 应用》这本书中的课程,目前已经在我的知识星球按计划更新:

  • 欢迎加入 令飞编程实战营 知识星球。P8 技术专家出品,12+ 高质量体系课、20+ 高质量实战项目,助你在 AI 浪潮中建立不可替代的技术竞争力,冲击百万年薪!实战营聚焦 Go、云原生、AI Infra 三大领域;
  • 欢迎关注公众号 令飞编程,Go、云原生、AI Infra、职场干货不错过!回复「资料」可免费下载 Go、云原生等学习资料;
  • 欢迎关注 B 站:令飞编程,会分享技术、职场和课程等视频、及直播课。