闲聊、Bun 的演进及更多内容!

MMaximilian Schwarzmüller
Computing/SoftwareJob SearchAdult EducationInternet Technology

Transcript

00:00:00那么,让我看看,让我看看,让我看看。
00:00:24快速编码预设,我有那个。
00:00:41所以,让我看看,但我仍然在 OBS 中看到那个警告。
00:01:01编码过载,但现在我把它调到了非常快的设置。
00:01:06我想知道这是否只是 OBS 的问题,因为我的系统上
00:01:15真的没有运行其他东西了。
00:01:19好吧,我想我们拭目以待。
00:01:28我希望它能保持不卡顿。
00:01:34我完全不知道为什么会这样,今天出了什么问题。
00:01:40真的完全没头绪。
00:01:49我用同样的设置已经直播了,我不知道,大概有 50 次了。
00:01:57现在突然间一切都坏了。
00:02:00是的,我想这将是最后一次尝试。
00:02:05如果又开始卡顿,我要么把它转成播客,要么就得等
00:02:14下周重试,那太糟糕了。
00:02:16那真的很糟糕。
00:02:17所以,是的。
00:02:18大家好,感谢还在收看的人。
00:02:20对于这些问题我深表歉意。
00:02:22我真的不知道是怎么回事。
00:02:27说来也巧,当我想谈论主打性能的 BUN 时,
00:02:32我现在的状况却最缺性能。
00:02:38现在完全不卡了。
00:02:40好的。
00:02:41希望它能保持这样。
00:02:43我现在都不敢碰任何东西了。
00:02:48所以我猜在接下来的直播中,你们会看到 chat.gpt 给我
00:02:54解决问题的指令。
00:02:56顺便说一下,我遵循了这里的这个指令。
00:02:59是的,YouTube 可能会比 Twitch 延迟。
00:03:03哦天哪,我碰了什么。
00:03:08让我们往好处想,非常感谢大家的坚持。
00:03:15我不认为我能控制各个平台的延迟。
00:03:19我也没改过那方面的设置。
00:03:23好了,反正我已经完全跑题了。
00:03:32BUN!
00:03:36出色的性能,奇特的进化。
00:03:40绝对会成为一个为 AI 代理量身定制的工具。
00:03:49希望看到你推出 AI 模型创建课程和更多生成式 AI 代码。
00:03:56关于 AI 的有趣之处在于,首先,AI 模型创建课程,我完全
00:04:04没有那个领域的专业知识。
00:04:06所以不会有那方面的课程。
00:04:08关于使用 AI 的课程肯定在计划中,只是有点困难,因为相关的
00:04:14东西变化太快,所以我现在还没做。
00:04:18我确实有的是,一些工具的课程,比如 Claude Code。
00:04:22但是,是的,我不想展示我如何使用 AI,因为一个月后
00:04:28我使用它的方式很可能会变得截然不同。
00:04:31所以,是的,非常感谢大家非常好的反馈。
00:04:34谢谢 Vaishnaf Dattir,但在不久的将来可能不会有这样的课程。
00:04:42AI 的难点还在于,当然,有些人喜欢它。
00:04:47也有很多人讨厌它。
00:04:48我个人对它的感情也比较复杂。
00:04:52如果没有 AI 我也不会难过,但现实是我们确实拥有它。
00:04:56所以我试着充分利用它,并且我确实在使用它。
00:05:00但目前很难制作出能吸引所有人的课程和内容。
00:05:07但我会尽力而为。
00:05:08我基本上是尝试覆盖我正在研究的、我学到的,以及在某种程度上
00:05:14我乐于研究的东西,这就是我尝试分享的内容。
00:05:18我上周一直在读 Bun 的文档,它太迷人了,我真的很想使用它的
00:05:23自带路由。
00:05:24但缺少了什么?
00:05:25像 Hono 那样的中间件结构。
00:05:26是的。
00:05:27就像我之前说的,我也是 Bun 的忠实粉丝。
00:05:32顺便说一下,提到“粉丝”(风扇),一个好迹象是我 MacBook 的风扇
00:05:39又变得安静了。
00:05:41希望那个整个编码问题已经解决了。
00:05:45我不知道问题出在哪里,但我不会再碰这里的任何东西了。
00:05:49总之,是的,我也喜欢 Bun。
00:05:53而且顺便说一下,我认为它的文档做得非常、非常出色。
00:05:57无论你是人类还是代理程序,代理程序都能很容易地从文档中
00:06:03获取信息。
00:06:04你只需要把链接扔给它们,复制页面内容,将其视为 markdown 并复制
00:06:11那个链接。
00:06:12所以这一切都做得很好。
00:06:14既然你提到了 Hono,我也会说 Hono 是一个非常好的框架,而我通常
00:06:23最近在构建 Web 应用程序时,比方说 REST API 或类似的东西,
00:06:28我的默认技术栈通常是 Bun 和 Hono。
00:06:32我很喜欢那个组合。
00:06:33我认为 Hono 是一个非常优雅、精简的框架,绝对值得仔细研究。
00:06:42它可以部署在广泛的主机上,当然也包括任何 VPS。
00:06:48它们显然有中间件、路由等功能。
00:06:52但同样不错的是,正如你提到的,Bun 也内置了很多功能,虽然不包含
00:06:58中间件部分。
00:06:59你需要自己构建中间件,但它内置了路由。
00:07:05实际上,如果你需要的话,它还有一个文件系统路由。
00:07:08所以无需安装任何其他东西,你就可以使用文件系统来定义路由,
00:07:13但它也有自己的路由 API,因此你可以像这样启动一个 Bun 服务器,
00:07:21像那样注册你的路由,并且可以更加细致,
00:07:28例如,为不同的路径定义不同的路由方法。
00:07:32在哪儿呢?
00:07:33Post。
00:07:34不在这页面上吗?
00:07:36你可以定义不同的路由方法。
00:07:43为什么不在这页面上?
00:07:50在哪儿?
00:07:51是在服务器那边吗?
00:07:52是的。
00:07:53你可以有一个路径,然后为不同的方法注册不同的函数。
00:07:58我认为那都非常优雅和漂亮。
00:08:04所以是的,Bun 和 Hono 真的很棒。
00:08:07观察 Bun 未来的发展将会很有趣,看看它是否会基本上
00:08:14继续作为一种可用于 Web 服务器的运行时来进化,看他们是否会优先考虑
00:08:20性能以及与之相关的新功能,目前看来确实是这样。
00:08:26我想表达得很清楚。
00:08:28当你查看 Bun 的 X 账号时,他们分享了很多更新,显然对
00:08:39运行时部分等很有帮助。
00:08:41所以是的,我不认为 Bun 会不再是一个出色的运行时,不再是构建
00:08:50Web 服务器的绝佳方案(无论是否配合 Hono),但看看它是保持现状,
00:08:55还是会变成那个 AI 代理工具,主要专注于成为一个
00:09:01非常适合构建 AI 代理的工具,这会很有趣,但也有些可惜,因为
00:09:06它是一个非常出色、快速、功能丰富的运行时。
00:09:10我想它会保持那样的优势。
00:09:13既然向量数据库是 AI 应用的关键,有什么好的学习资源吗?
00:09:17你会考虑出一门涵盖这方面的课程吗?
00:09:19是的,我确实考虑过出一门关于向量数据库的课程。
00:09:23我认为 Qdrant 是一个非常有趣的数据库,你也可以自行托管。
00:09:29事实上我确实做了一次直播,哎呀,那是,我不记得我自己的标签了。
00:09:40我去年确实做了一次关于 RAG 和向量数据库的直播。
00:09:47它在另一个频道,MaxMunSchwarz were extended。
00:09:49我以前常把直播内容上传到那个频道。
00:09:52我现在不那样做了。
00:09:54我会让它们直接保留在 YouTube 这边。
00:09:56总之,我在这里做了一次关于构建 RAG 的直播。
00:10:00哎呀,我挡住那个了。
00:10:02我在这里做了一次关于使用 Qdrant 构建 RAG 系统的直播。
00:10:07所以那可能对你有兴趣。
00:10:09虽然是一年前的了,但仍然很有参考价值,因为我觉得它很有趣。
00:10:13现在我会说,我不确定向量数据库是否会像我们以前认为的那样
00:10:22对 AI 应用一直那么重要,因为现在看起来未来的趋势更多是“代理式搜索”。
00:10:28也就是你有一个运行在 VPS、Cloudflare、你的 MacBook
00:10:34或 PC 上的 AI 代理,这并不重要。
00:10:36你给它一个文件系统,在那个文件系统中,你有一堆文档。
00:10:41这显然取决于具体的使用案例。
00:10:42如果我们谈论的是成千上万份文档,那可能仍然可行,但
00:10:49会变得稍微复杂一些。
00:10:51但如果我们谈论的是一个只有,比方说,一百份文档的
00:10:56使用案例,代理应该了解这些文档,或者代理可以
00:11:01获取这些文档。
00:11:03现在的趋势似乎是直接给代理文件系统并让它
00:11:08自行处理,比连接到向量数据库更高效。
00:11:13当然,一如既往,这其中存在细微差别。
00:11:15这始终取决于你具体构建的内容。语义搜索和向量数据库
00:11:20有它们的使用场景,它们在某些方面非常有用。
00:11:24但代理式搜索以及仅给你的代理一个文件系统可能也很有趣。
00:11:29我会考虑就此开设课程吗?
00:11:31是的,绝对会。
00:11:32包括创建可以访问文件系统并执行各种任务的 AI 代理,
00:11:36以及向量数据库部分。
00:11:40事实上,我已经在我的其中一门课程中涵盖了那部分。
00:11:45在我的通用 ChatGPT 生成式 AI 课程中,我去年发布了该课程的一个
00:11:51重大更新,增加了一个全新的 RAG 章节,我也在那里涵盖了基础知识。
00:12:00一门独立的课程会很有趣,我也很想做。
00:12:04只是有太多的想法,我不能保证一定会有,但这确实是我感兴趣的
00:12:07方向,是的。
00:12:12没关系,我从你的 Flutter、React、Node.js 课程中学到了很多,我五年前就开始了
00:12:16我的编程之旅,谢谢你,祝你取得巨大成功,保持不断成长。
00:12:20非常感谢。
00:12:21顺便说一下,感谢大家在这些技术问题期间一直陪着我,
00:12:25希望现在已经解决了。
00:12:27那么,让我们专注于教学吧。
00:12:29感谢大家的赞美之词。
00:12:31我读了所有的评论,它们对我意义重大。
00:12:34所以,非常感谢大家精彩的反馈。
00:12:39现在有这么多的编程代理,但核心都在于管理发送到
00:12:42LLM 模型的上下文。
00:12:43所以我们主要可以使用大公司的编程代理。
00:12:47是的,我的意思是,现在我们正处于“西部大开发”阶段,对吧?
00:12:52现在有这么多的进化正在发生。
00:12:57每天我们都会看到一个新的代理,或者一个新的代理框架,或者一个新的服务
00:13:04让我们运行代理。
00:13:06有太多的事情在发生。
00:13:07我们必须等到尘埃落定,也许一年左右,才能更好地
00:13:12了解哪些值得使用,或者我们将如何构建某些东西。
00:13:20是的。
00:13:23但说到构建东西,最初的想法是探索 BUN,我想我们已经
00:13:29做到了。
00:13:30至少涵盖了我想分享的关于它发展的内容。
00:13:34我认为如果你最近在构建任何与 JavaScript Web 开发相关的东西,BUN 都是一个
00:13:42绝佳的选择。
00:13:43是的,这很重要。
00:13:44即使你不想使用它的运行时,它也是一个好选择。
00:13:48如果你不喜欢,或者不能、不想用它,都没关系。
00:13:51但即便如此,使用它的包管理器可能也很有趣,因为 BUN 实际上
00:13:59是多种功能的集合体。
00:14:02它是一个运行时,那是你会用来构建 Web 服务器或
00:14:07构建 CLI 的东西。
00:14:09但它也是一个包管理器。
00:14:12所以你可以用它代替 NPM 来安装,你猜怎么着,安装各种包。
00:14:17这里非常棒且有用的是它有一个 bunfig 文件。
00:14:32它是 BUN 的配置文件。
00:14:34它对包管理器也起着重要作用,因为你显然可以在里面配置很多东西。
00:14:38你可以为包管理器配置一些选项。
00:14:40其中一件事就是你可以设置这个“最低发布时长”。
00:14:46这是你可以添加到这个 bunfig.toml 文件中的内容。
00:14:51这将确保每当你运行 bun install 或 bun update 等命令时,它
00:14:55只会拉取并安装发布时长至少达到你所指定要求的
00:15:02包版本。
00:15:10那个数值是以秒为单位的。
00:15:12所以例子中的那个值相当于三天。
00:15:16为什么这个很有用?
00:15:18因为我们正生活在一个几乎每天都有供应链攻击的时代。
00:15:24至少对我来说感觉是这样。
00:15:27而且至少到目前为止,大多数供应链攻击都能在
00:15:34通常几小时内被发现并得到缓解。
00:15:39但当然,如果你在包被入侵的那个时间窗口内安装了它,
00:15:46你的机器就会被入侵。
00:15:48这显然很糟糕。
00:15:49现在,如果你使用这个设置,就能大大降低受影响的风险,因为你只
00:15:57下载已经上线了几天的软件包版本。
00:16:00同样,通常到那时,供应链攻击已经得到了缓解。
00:16:04现在 Bun 并不是唯一这样做的包管理器。
00:16:07例如 pnpm 也有这个功能。
00:16:11所以你当然也可以使用它。
00:16:13我只是会推荐使用类似这样的东西。
00:16:16还有 npm,我也忘了,但他们也有一个相对较新的功能,
00:16:23你也可以在其中配置类似的东西。
00:16:35我不确定它具体叫什么,最短发布时间?
00:16:39我想是叫 min-release-age。
00:16:42在使用 npm 时,这也是你可以做的事情。
00:16:48你应该使用类似的功能。
00:16:49使用 Bun 进行包管理不仅具有可以使用该设置的优势,
00:16:53而且它的速度真的非常非常快。
00:16:56所以我在这方面也很喜欢它。
00:16:58然后你也可以使用 Bun 进行打包。
00:17:01所以可以代替 Vite 之类的,或者 Vite 从技术上讲不仅仅是一个打包器,但它
00:17:07包含一个打包器。
00:17:08它通常会在为你搭建的项目中自带一个打包器。
00:17:13所以你可以用它代替 Vite 来进行监听、运行开发服务器和构建项目。
00:17:18构建你的项目。
00:17:20它还带有一个测试运行器,所以你可以用 Bun 代替 Jest 或 Vitest。
00:17:26不过,选择使用 Vite 或 Vitest 等工具而不是 Bun 仍然是有理由的。
00:17:31它们自带的功能更多一些,可能是你感兴趣的功能。
00:17:36当然,打包只是它做的众多事情之一。
00:17:40对于 Vite 来说,这是它做的核心事情或关心的重点。
00:17:46Vite 背后的团队还构建了他们自己的打包器 Rolldown,它正被 Vite 所使用。
00:17:51所以我不太确定,我通常不使用它的打包功能。
00:17:55实际上我在测试中使用它的测试运行器,但主要我还是使用它的运行时
00:18:06和包管理器。
00:18:07但总之,Bun,我真的很喜欢它。
00:18:11它发展的方向是唯一我觉得不会成为问题,但
00:18:16有可能会成为问题的一点,是的。
00:18:19向 Berkey 问好,也谢谢 Selmetri 的推荐。
00:18:26我是你教程的超级粉丝。
00:18:27非常非常感谢。
00:18:28最近怎么样?
00:18:29现在好多了。
00:18:30遇到了一些技术问题,非常抱歉,不知道为什么,但现在一切
00:18:35似乎又稳定了,谢天谢地。
00:18:38我会做关于 Remix 3 的视频吗?
00:18:41我注意到他们现在发布 beta 版了。
00:18:42是的,我也注意到了。
00:18:44我还没来得及看,还没时间看。
00:18:51但我确实计划深入研究 Remix 3。
00:18:57我想他们说它还远未完成,还是我记错了?
00:19:06这仍然是一个预览版,还没有准备好用于生产环境,还有很多工作要做。
00:19:11是的,我想我读到了那些内容,然后我决定推迟这件事,因为我现在
00:19:16有太多事情要做,如果它现在非常简陋且完全未完成,我不想过早深入。
00:19:22还没准备好。
00:19:26但我会说,我去年看了他们的演讲,我想是在哪儿?
00:19:32某个 Remix 大会。
00:19:34我想是在他们自己的会议上。
00:19:37拭目以待会很有趣。
00:19:40我想据我了解,他们正试图构建一个框架。
00:19:45那么,什么是 Remix?
00:19:47Remix 曾是一个像 Next.js 这样的 React 框架。
00:19:50那是他们在 2020、2021 年开始时的愿景,不太确定。
00:19:57我真的很喜欢 Remix。
00:19:59事实上,Akatamite.com 我的网站过去就是用 Remix 构建的。
00:20:04现在不是了,现在我们改用 TanStack 了,但它曾是用 Remix 构建的。
00:20:10但后来他们决定脱离 React,因为他们对 React 的发展愿景并不满意,
00:20:15他们基本上决定构建一个框架,也就是 Remix 3,它专门针对
00:20:22AI 智能体进行了优化。
00:20:23它的构建方式使其非常容易被智能体理解和掌握,即便
00:20:29显然 Remix 的代码并没有成为智能体训练数据的一部分,
00:20:34因为训练数据大多是 2022 年以前的旧数据
00:20:40之类的。
00:20:41显然 Remix 3 在那时还不存在。
00:20:43它现在也还不算真正存在,或者说只有 beta 版。
00:20:47但他们想构建一种容易被智能体掌握和理解的东西。
00:20:50是的,我非常感兴趣等它更成熟一点时去尝试一下。
00:20:59我很想看看效果如何。
00:21:02我的意思是,总的来说,我认为观察整个 Web 开发格局如何
00:21:09演变会非常有趣,因为我们拥有所有这些框架,我们过去曾经历过所有这些
00:21:17框架战争,比如在 2019 年,几乎每天都有新框架发布。
00:21:23噢,它是 2021 年 11 月 22 日发布的,非常感谢。
00:21:30所以,是的,我们过去有很多 JavaScript 框架,而现在这一切
00:21:34都已经平息了,对吧?
00:21:36现在的核心显然全是关于 AI 和智能体的。
00:21:39对我来说也是一样。
00:21:40我的意思是,对我来说,一切都围绕 AI,我整天都在摆弄不同的 AI 模型
00:21:45和智能体。
00:21:47因为显然这就是我们的前进方向。
00:21:51这并不意味着了解基础知识不重要,它非常重要。
00:21:55但对我来说,了解如何使用这些 AI 工具仍然很重要,
00:22:01如何从中获得有用的东西,因为我是一名开发者,我想继续当一名开发者,
00:22:06这意味着我必须利用 AI 来开发。
00:22:10但我想说的是,在现在发布像 Remix 3 这样的新框架
00:22:16感觉非常不合时宜,这并不意味着它是错的,只是意味着
00:22:25很难获得大量的关注,因为所有这些 AI 模型和工具默认都会建议
00:22:32使用 React 应用。
00:22:34它们通常建议使用 React 和 Next.js 之类的应用。
00:22:38因此,这需要开发者明确告诉 AI 使用 Remix 3,就像现在
00:22:47需要开发者告诉 AI 使用 Angular 或 Svelte 一样,因为同样,
00:22:54默认选择通常是 React。
00:22:57所以,Remix 3 能否获得足够的关注让足够多的人开始使用它,
00:23:04这将是一件很有趣的事情。
00:23:05我当然认为这是可能的,因为在 AI 出现之前,你也必须
00:23:12说服开发者,但那时可能稍微容易一点,因为他们没有
00:23:17开着自动驾驶来做这些事。
00:23:19但它绝对是可以做到的。
00:23:24看看他们是否能在这方面取得成功将会很有趣。
00:23:27为此,我认为该框架必须提供某种显著的优势,
00:23:34因为在过去你可以说,如果一个框架提供了极佳的开发者体验,
00:23:40并能交付快速、高性能的应用,那就是一个巨大的加分项。
00:23:44顺便说一下,这正是 Angular 当时面临的一个问题,当他们从
00:23:50AngularJS(Angular 1)过渡到 Angular 2 时。
00:23:53他们打破了太多的东西,而且看起来如此复杂,以至于他们在那时流失了很多开发者,
00:24:00我想是这样。
00:24:01这为 React 打开了一个巨大的窗口,这也是 React 变得如此流行的原因。
00:24:06也许它本来就会变得那么流行,但从 Angular 1 到 Angular 2
00:24:11的过渡绝对没有起到正面作用。
00:24:13所以,过去你必须通过开发者体验等因素来说服开发者,还有
00:24:18语法——例如,我一直想使用我觉得美观或
00:24:25喜欢使用的语法,这就是为什么最初我不喜欢 JSX 和 React。
00:24:35无论如何,现在这些都不那么重要了,因为现在我们仍然应该关注代码。
00:24:43并不是所有的开发者都会关注,我当然不知道情况会如何改变。
00:24:48代码审查在未来可能会变得不那么重要,而重要的部分是
00:24:54设计应用的整体架构并做出某些技术选择,但
00:25:00因此语法在现在以及很可能的未来都变得不那么重要了。
00:25:06因此,在一个赢得开发者的旧方法不再重要的时代,看一个框架如何
00:25:14赢得开发者,将会非常有意思。
00:25:19关于 Remix 聊了这么多,这些就是我的想法。
00:25:21但我非常兴奋等它稳定一点后去尝试它。
00:25:26我在寻找 npm 的配置键时也遇到了同样的问题。
00:25:31我得说,npm 的文档做得并不好。
00:25:36谢谢你 9 年前教我 Angular,并且在今天的 AI 时代依然激励着我。
00:25:41你的内容真正塑造了我的开发者之路。
00:25:43哇,非常非常感谢,MS Athianarayanan,这对我很重要。
00:25:52非常非常感谢。
00:25:53很高兴听到你这些年来一直关注着我。
00:25:559 年时间真的非常非常长。
00:25:57那里发生了太多的变化。
00:25:59我的意思是,9 年前几乎是我刚开始的时候。
00:26:01我大概是 11 年前开始的,差不多。
00:26:05所以,哇,是的,非常非常感谢。
00:26:09很高兴你依然在关注。
00:26:10我会尽力继续分享一些有用的知识,尽管已经发生了很多变化。
00:26:16我的意思是,变化太大了。
00:26:19我制作视频的方式,在 YouTube 上获得关注的方式等等。
00:26:26别让我开始说这个。
00:26:27发生了太多变化。
00:26:28我变老了。
00:26:29如果 AI 智能体需要执行工具和代码,你认为 Bun 会进化成一个 AI 智能体
00:26:34运行时吗,还是它需要一个完全不同的架构?
00:26:38这是一个很好的问题。
00:26:40我认为 Bun 绝对可以变得更像是一个 AI 智能体运行时。
00:26:46我不确定它是否能同时保持通用运行时,然后只是在上面添加那些
00:26:53智能体功能,或者他们会把它拆分之类的。
00:26:57但我的意思是,Anthropic 收购了 Bun,构建一个
00:27:04非常强大的智能体运行时是非常合乎逻辑的。
00:27:08这对 Anthropic 来说很有意义。
00:27:11可能不会在 Web 开发者社区赢得很多好感。
00:27:14但嘿,我不确定 Anthropic 是否在那里赢得了很多好感。
00:27:18所以,是的,我绝对可以看到未来 Bun 会获得越来越多
00:27:24使其成为优秀智能体运行时的功能。
00:27:27比如沙箱化、代理网络请求、工具管理、权限管理等
00:27:33之类的东西。
00:27:34我绝对可以看到更多类似这样的功能出现在 Bun 中。
00:27:38说实话,我很惊讶我们现在还没有更多这样的功能。
00:27:51他们前进的方向非常有趣,但我很想看你的视频,谢谢
00:27:54你回答这个问题。
00:27:56是的,没问题。
00:27:57当然,当然。
00:27:58作为一名大前端开发者,我应该学习 Docker 和 Kubernetes 吗?
00:28:02关于这点有几点想法。
00:28:05首先,我认为你应该总体上考虑不要仅仅做一个前端开发者,因为
00:28:14虽然这在过去确实是一回事,但我的感觉是,随着 AI 的发展,公司的要求
00:28:21将会是拥有全栈通用型的开发者。
00:28:27至少现在是这样,我不知道五年左右会发生什么变化。
00:28:33到那时我们可能又会想要更多的专才。
00:28:36但现在,我认为成为全才才是出路。
00:28:39拥有特定专业领域的通才。
00:28:43你不需要精通每件事。
00:28:45你也做不到。
00:28:46但我认为你想要成为一个通才。
00:28:49这是其一。
00:28:50因此,要回答第二部分,是的,我认为了解 Docker 的基础知识
00:28:55对大多数开发者来说绝对是有用的。
00:28:59你不需要成为专家。
00:29:00你不需要能够构建超级高级的 Docker 镜像,或者知道
00:29:06管理 Docker Swarm 集群或复杂的多个容器 Compose 设置的所有细节。
00:29:14但尤其是现在有了 AI,编写 Docker Compose 配置文件或
00:29:20Docker 文件并理解那些 Docker 命令变得比以往任何时候都容易。
00:29:24如果你在此基础上还学习了幕后的原理,或者理解了 Docker 的工作方式以及
00:29:31它的核心概念是什么,我认为这非常有意义。
00:29:35对于 Kubernetes,我不会说它很重要。
00:29:38需要的时候再去学,但不是需要预先掌握的东西。
00:29:42但 Docker,是的,我会说基础知识你应该理解并学习。
00:29:49当 Next.js 从 Pages 切换到 App Router 时也发生了同样的情况。
00:29:52就像 Angular 1 升级到 Angular 2 一样,是的,没错,那是一个很好的例子。
00:30:01这种重大的底层变革总是如此。
00:30:07它们可能会破坏很多东西。
00:30:09我的意思是,App Router 的初衷其实是想给社区他们想要的东西,但他们实现的方式……
00:30:16老实说,我甚至不确定具体原因,
00:30:21但这种方式确实导致了社区的分歧。
00:30:26我认为当时还有其他一些问题。
00:30:28比如 Next.js 的 App Router 当时有一个问题,就是最初它的缓存机制非常激进,
00:30:33这导致开发服务器上的行为与应用构建后的行为不一致,
00:30:42这当然非常糟糕,因为你测试了一切都没问题,但构建并部署后,
00:30:46虽然你应该在部署前再次测试,但还是有人可能直接就部署了。
00:30:51结果应用的表现突然和之前看到的不一样了。
00:30:55所以那体验很糟糕。
00:30:57而且当时的开发服务器也非常慢。
00:30:59我觉得所有这些因素导致了很多问题和用户流失,也是为什么人们后来转向 Remix 的原因,就像我一样。
00:31:01我转向 Remix 是因为开发服务器的问题以及使用 App Router 开发时的体验。
00:31:06其他人则转向了其他的框架。
00:31:08不过现在根据我的经验,Next.js 的 App Router 运行得非常出色。
00:31:13是的,大部分问题都已经解决了,但这确实不是一段平稳的过渡期。
00:31:15好了,我们稍后会回到其他问题。
00:31:17但我有 Docker 课程吗?
00:31:23有的。
00:31:31就在 Academind.com 上。
00:31:34就在这里。
00:31:36我有一门 Docker 课程。
00:31:39而且这是一门很大的课程。
00:31:41你不必全部看完。
00:31:42因为我当然是从基础开始讲起的。
00:31:44如果你只完成前几个章节,你应该就能对 Docker 的工作原理有一个很好的概览。
00:31:45“对于回归基础并抛弃所有包依赖,你怎么看?”
00:31:47这也是一个很好的问题。
00:31:49这也是我过去几天一直在反复琢磨的事情。
00:31:53我正在探索如何构建几乎不使用任何包的应用。
00:31:56我尝试减少我所使用的包的数量。
00:32:01现在有了 AI,自己动手实现很多功能比以往任何时候都更容易。
00:32:03但这也有一些问题,因为使用第三方库意味着你不需要去维护那部分代码。
00:32:07这意味着由别人来负责。
00:32:15如果是开源的,其实也不完全是这样,但你明白我的意思。
00:32:18有人在为你维护它。
00:32:22而且 AI 生成的代码也远非完美。
00:32:30所以你不能用 AI 生成一切,尽管有些人想让你相信这很简单。
00:32:33但这其中是有权衡的。
00:32:36但现在替换某些包确实比以前容易多了。
00:32:40这一直是我在玩索的方向。
00:32:42例如我的个人网站 Maximilian-schwarzmueller.com,那当然是一个非常简单的网站。
00:32:46其实就是一个博客,对吧?
00:32:52但我以前用的是 Astro.js,我必须说那是一个非常棒的静态站点框架。
00:32:54但后来我决定,其实我不需要它。
00:32:55它真的只是一堆 HTML 文件。
00:33:00所以在 AI 的帮助下,我将那个 Astro 项目迁移到了原生 HTML、原生 CSS 和原生 JavaScript 应用,
00:33:04至于我的博客文章,我现在直接写文本。
00:33:10然后让 AI 把它转换成 HTML。
00:33:11不过我很快就会构建一个非常基础的 Markdown 解析器并使用它。
00:33:14所以我认为你可以减少所使用的包的数量。
00:33:22现在考虑到所有的供应链攻击,这可能是你想要做的。
00:33:25那肯定是我想要做的。
00:33:28鉴于目前频繁发生的供应链攻击,这或许是你会想要考虑的做法。
00:33:36这也是我尝试减少包使用量的部分原因。
00:33:44谢谢你念出我的名字。
00:33:47希望我没念错。
00:33:52抱歉。
00:33:58“我以前也看过你讲 Angular 2 的教程。”
00:34:04看到了吗?
00:34:05我们变老了。
00:34:10哦是的,我们老了。
00:34:19确实如此。
00:34:20是的。
00:34:23那些 Angular 2 教程。
00:34:25那真是一段美好的时光,但已经过去了。
00:34:28但是,是的。
00:34:29我的意思是,当时我在学习 Angular 2 时,我最大的优势是我从未深入研究过 Angular 1。
00:34:30所以我没有经历那种艰难的转型。
00:34:31我喜欢 Angular 2 是因为我当时有 C# 背景。
00:34:32在那之前我做了很多 C# 的工作。
00:34:33所以对我来说感觉还不错。
00:34:34所以我挺喜欢 Angular 2 的。
00:34:38我想我是少数几个喜欢它的人之一。
00:34:40“Max,老兄,我想说谢谢你在 2019 年从某种程度上开启了我的 Web 开发职业生涯。”
00:34:48非常感谢,Uncle Sam。
00:34:49我非常高兴能成为你职业生涯的一部分,并在那时给予了帮助。
00:34:51至少在 JavaScript 框架大战的黄金时代帮助开启了它。
00:34:55我们会看看 Web 开发的未来会怎样。
00:34:58但是,是的,非常非常感谢,谢谢你参加这次直播。
00:35:03“我很怀念通过你的课程和教程学习新语言和框架的那个时代。”
00:35:04是的,我也很怀念。
00:35:07总之,非常非常感谢你,也谢谢你参与这次直播。
00:35:12我很怀念那个通过你的课程和教程学习新语言、新框架的时代。
00:35:14是啊,我得说我也很怀念那段日子。
00:35:20我是说,我的频道上有那个视频,你们中有些人可能已经看过了,就是那个 “NoJoy” 视频
00:35:27我确实觉得那些 AI 工具和模型非常迷人。
00:35:30我觉得那一切都很有趣。
00:35:34但我确实怀念你在写代码时能进入的那种心流状态。
00:35:39我也很怀念学习新库的过程,因为你现在仍然可以学习新东西,而且我一直在学习新东西。
00:35:41但现在的学习方式完全不同了,我仍在探索现在该如何教授一个新的框架或库,
00:35:55因为我坚信仍有很多新东西需要学习。
00:35:59AI 并不是唯一的解决方案。
00:36:01它是一个很好的辅助,但不是唯一的。
00:36:04我绝不想在一个我不理解的技术上使用 AI。
00:36:08所以我想理解这项技术,我也在尝试找出如何最好地学习一项技术,
00:36:10以及我如何以一种有意义的方式来传授它?
00:36:16因为像我以前那样花 40 个小时教你一个库的语法,
00:36:21对我来说似乎不再是未来的趋势了。
00:36:23感觉不对,因为我知道你不会再去手写所有的代码了。
00:36:28你需要理解它。
00:36:35但为了理解它,你并不需要像为了手写代码时那样的教学方式,
00:36:37因为手写更难,而那部分正在消失。
00:36:41新的部分在于理解它,了解模式和最佳实践,
00:36:46以及关于架构和构建一个程序。
00:36:51这就是我未来想教的东西。
00:36:55那不会全是 AI 的内容。
00:37:00我对那个不感兴趣,但我仍在努力寻找该教什么以及如何去教。
00:37:04尤其是在如今日新月异的环境下,这变得格外困难。
00:37:10但这就是我的计划。
00:37:11不过是的,我确实很怀念那段日子。
00:37:15我很享受学习 Vue 或 Vue 3 的过程,也很享受为此制作课程。
00:37:19那真的很棒。
00:37:24还有一件事。
00:37:27“希望能看到 Manuel 和你一起直播。”
00:37:29也许我会邀请他来。
00:37:30好主意。
00:37:35为什么不呢?
00:37:38我想他现在已经走了。
00:37:42半小时前他还坐在我旁边的办公室里。
00:37:43我会邀请他的。
00:37:46哦,又一个不请自来的广告。
00:37:54抱歉。
00:37:59Manuel 今天其实发布了一个关于 Claude 工作流的新课程。
00:38:00那当然不是关于写代码的。
00:38:02那是一个通用的 AI 工具,你可以用它来进行数据分析之类的工作。
00:38:03如果你对这个感兴趣,并且想见见 Manuel,非常推荐去看看。
00:38:04那是今天发布的一门很棒的课程。
00:38:05我认为这是一个完美的总结。
00:38:06关于这点我没有太多要补充的了。
00:38:12不使用包有它的优势,但最大的劣势在于你必须维护所有代码。
00:38:15你可能会忽略很多边缘情况。
00:38:17你可能会面临一些在流行库中早已修复的安全漏洞。
00:38:18一如既往,这是一种权衡。
00:38:22但在某些特定的用例下,减少包的数量绝对值得考虑。
00:38:24但我大概率不会只用原生 HTML、CSS 和 JavaScript 来构建一个复杂的应用。
00:38:29虽然这可能是一个有趣的实验,但我不认为这是一个好主意。
00:38:32说到框架和库,我之前提到的另一件事是 Adonis,Adonis.js。
00:38:40我之前提过,但之前的直播太卡了,断断续续的,所以我在这里重复一下。
00:38:54大约 10 年前左右,我经常使用 PHP 框架 Laravel。
00:38:58然后在某个时刻,我不记得具体什么时候了,大概六年前吧,我开始搜索
00:39:02在 JavaScript 中是否有类似的框架,像 Laravel 一样的框架。
00:39:03然后我找到了 Adonis。
00:39:06我不确定他们现在是否还这么做,但在过去他们把
00:39:11自己标榜为“JavaScript 界的 Laravel”。
00:39:13不确定他们现在是否还沿用这个说法。
00:39:21它的理念是,它确实内置了你构建 Web 应用时通常需要的大部分功能。
00:39:26比如,页面点错了,比如身份验证,API 文档在哪里?
00:39:28好的。
00:39:37像身份验证之类的,他们会内置在框架里。
00:39:46包括管理 Session、Cookie 之类的一切。
00:39:50他们会提供一个 SQL ORM,就像 Laravel 有 Eloquent 一样。
00:39:51他们会提供自己的前端解决方案。
00:40:00他们有自己的模板引擎 EdgeJS。
00:40:08它的理念是它确实内置了所有或者说大部分
00:40:14你构建 Web 应用程序通常需要的功能。
00:40:16比如,网页找错了,比如像身份验证之类的,这里的 API 文档
00:40:21在哪呢?
00:40:26我只是在大概六年前左右玩过一下。
00:40:28但让我高兴的是,在过去几周里,在我那个不幸现在充斥着 AI 的 X 小圈子里,
00:40:34我看到 Adonis 似乎开始获得更多的关注。
00:40:37我想如果我们看看下载量的话……内部服务器错误。
00:40:45好吧,没问题。
00:40:46我记得 TanStack 也有一个趋势分析页面。
00:40:47难道没有吗?
00:40:52在这里。
00:40:57显然我们要移除一些无关项。
00:41:03我不确定这是否是正确的包名。
00:41:06大概六年前左右,我确实试用过它。
00:41:09是的,这个看起来更准确。
00:41:11Adonis.js Core。
00:41:15这就是我在找的。
00:41:16好的。
00:41:19你可以看到的是,它们确实有一点上升的趋势。
00:41:23显然不是特别强劲。
00:41:31显而易见,这仍然是一个小众框架。
00:41:37但我发现它有上升趋势这件事挺有趣的,因为我喜欢这个理念,
00:41:40而且我一直在纳闷它为什么一直没有大火起来。
00:41:46至于六年前我没有深入研究的原因,真的只是因为一个不凑巧的巧合,我当时试玩了一下,
00:41:59然后我只记得我基本上没有时间去深入钻研了。
00:42:17我当时有课程需要更新,或者有其他的大型课程想做。
00:42:24然后事情接踵而至,你忙于这个项目,忙于那个项目,就把这事给忘了。
00:42:28但我有时一直觉得这看起来很完美。
00:42:35有趣的是,在 2020 年左右,突然之间所有的全栈框架都火了起来。
00:42:50突然之间,我们不再只是讨论连接到 REST API 的单页面应用了。
00:42:52显然那仍然占据很大份额。
00:42:58但我们突然开始讨论构建全栈应用。
00:43:01使用 Next.js,使用 Remix,Angular 也开始有了自己的全栈框架 Analog.js。
00:43:02这真的是一种非常有趣的转变。
00:43:03是的,这种转变非常有趣。
00:43:08而且我认为这在很大程度上要归功于服务器端渲染(SSR)变得更加普及和重要。
00:43:10因为 SSR 能够提供更好的性能和 SEO,而全栈框架让实现 SSR 变得更加简单。
00:43:14但我认为 Adonis 的特别之处在于,它从一开始就是为了构建全栈应用而设计的。
00:43:21它的结构非常清晰,也非常容易上手,尤其是对于那些有传统 MVC 框架背景的开发者来说。
00:43:27我想这可能也是为什么它现在开始受到更多关注的原因之一。
00:43:35因为随着 Web 应用变得越来越复杂,开发者开始寻找能够提供更多内置功能和更好组织结构的框架。
00:43:38而 Adonis 正好能够满足这些需求。
00:43:43我有一些课程更新,或者想做一些其他的大型课程。
00:43:48然后事情接踵而至,你忙着做这个,又有另一个项目,然后你就
00:43:53把它忘了。
00:43:55有时我一直觉得这看起来很完美。
00:43:58有趣的是,在 2020 年左右,突然之间,所有这些全栈框架
00:44:08开始流行起来。
00:44:09突然之间,我们不再只讨论连接到 REST API 的单页面应用了。
00:44:19显然,那仍然是一件大事。
00:44:21但我们突然开始讨论构建全栈应用。
00:44:26比如 Next.js、Remix,Angular 也开始有了自己的全栈框架 Analog.js。
00:44:38框架?
00:44:46获得更多关注。
00:44:48顺便说一下,Next.js 也是如此。
00:44:50我觉得,这一切都在 2020 年左右开始获得更多关注。
00:44:57我一直在想,为什么我们总是希望 React 框架
00:45:08变成全栈框架?
00:45:09为什么一切都以 React 为中心?
00:45:12为什么我们不使用像 Adonis 这样的东西,它从一开始就是
00:45:18像 Laravel 一样的全栈框架?
00:45:19我认为原因是回到 2018、2019 年及以前,React 和 Angular
00:45:28非常风靡,对我来说也是,当时构建单页面应用是主流。
00:45:41那种感觉是对的。
00:45:42用 React 构建那样的应用非常愉快。
00:45:46如果你像我一样经历过早期的 Web 开发,你肯定还记得
00:45:52当时构建响应式交互界面是多么困难。
00:45:57所以我们都喜欢 React、Angular 之类的解决方案。
00:46:01我认为这就是为什么这种模式一直延续至今。
00:46:06然后我们觉得为 React 提供全栈解决方案是一件好事。
00:46:10我现在仍然认为这很好。
00:46:12我喜欢 TanStack Start、Next.js 等等,但我认为这可能就是为什么 Adonis
00:46:19从未真正大红大紫的原因。
00:46:24而现在,不幸的是,我没有那么多时间了,尽管我很想
00:46:28尝试一下,因为我觉得它会是许多 Web 应用的
00:46:34绝佳解决方案,因为它内置了非常多的功能。
00:46:37是的,但我认为对 Adonis 来说很遗憾,React 和那些框架变得
00:46:49如此流行,可能是由于 Web 的历史原因,让它没能获得机会。
00:46:55对于 Laravel 和 PHP 来说情况可能不同,因为对于 PHP,
00:47:00逻辑总是在后端。
00:47:01所以它不会让人觉得:”噢,构建前端太棒了。
00:47:05我们想要一个能将其扩展到后端的框架。”
00:47:08不,对于 PHP,你总是把 HTML 页面渲染成 PHP 页面。
00:47:13所以拥有一个为此服务的框架是很自然的事情。
00:47:16这就是我的解释。
00:47:20要是能有一个 Adonis JS 课程就太酷了。
00:47:22是的,我很想做一个。
00:47:24但正如我所说,不幸的是,我不确定是否能腾出更多时间来学习它。
00:47:32在直播中研究它可能会很有趣。
00:47:37也许我会抽出时间,但我必须更深入地了解它,
00:47:42才能制作出一门课程。
00:47:43但是,是的,这会很有趣。
00:47:45菲律宾的 Adonis 是一家同性恋酒吧,由于这个名字,
00:47:51世界上大概有一两个地方也是这种情况。
00:47:56你看到 Web Dev Simplified 关于内容创作者(包括你和 Theo)
00:48:02正越来越多地转向 AI 的视频了吗?
00:48:04你对此有什么看法?
00:48:05是的,我看到了,我必须说我并不是很喜欢那个视频,
00:48:14因为我觉得在视频里,至少对我来说,听起来像是
00:48:29我和 Theo 做出这种决定是因为那样能获得更多点击量。
00:48:32现在我要说,你确实能获得很多浏览量和点击量,而且这些显然很重要。
00:48:39但我总是尝试针对我正在使用的东西创作内容。
00:48:46事情就是这么简单。
00:48:50当我用那些技术写代码时,我会制作编码教程。
00:49:00而现在我更多地讨论 AI,是因为我每天都在使用 Codeium、Claude Code、
00:49:07Py 等等。
00:49:09并且我正在用它们构建东西。
00:49:11有些已经发布了,比如我正在使用的 MaxDraw 应用,或者是我的职业头像
00:49:15应用,或者是 Build My Graphic,后续还会有更多。
00:49:19所以我确实在构建东西,当然还有很多内部的东西。
00:49:24AI 纯粹是正在改变我们构建软件方式的东西。
00:49:32因此,这就是我所谈论的内容。
00:49:34所以这两者是相辅相成的。
00:49:37是的,它能带来更多点击,但它之所以带来更多点击和浏览,是因为
00:49:41很多人也有同感,并希望随时了解那里的动态。
00:49:47所以我认为这就是内容创作者转型的原因。
00:49:50对我来说,那个视频听起来好像这些都是差劲的内容创作者,
00:49:56只是在蹭下一个能带来点击量的热点。
00:49:59但事实恰恰相反。
00:50:01你是针对人们感兴趣的东西和你正在使用的东西创作内容。
00:50:06而这两者自然而然地联系在一起。
00:50:09这并不是什么宏大的预谋,突然决定,哦,那个很火,
00:50:14那我就去覆盖那个。
00:50:15它之所以流行,是因为它影响着每一个人,包括我。
00:50:19而且我每天都在处理这些东西。
00:50:21所以,是的,我觉得那个视频有点怪,但说实话,也许我也只是误解了它。
00:50:30举个例子,大约四年前,当时的巨大热潮
00:50:37全是关于 Web3、NFT 和加密货币。
00:50:41我不了解 Theo,但我不认为他当时深入参与了 Web3。
00:50:46而我肯定也没有。
00:50:48所以这并不是为了覆盖当前的热点。
00:50:50这真的是关于覆盖你正在从事的工作。
00:50:54我们应该研究克隆 Max,这样我们就能拥有所有的课程了。
00:51:01那是一个未来的项目。
00:51:07现在,我是说,这就是 AI 的现状。
00:51:10每个人都在告诉你它能做更多工作,能为你完成
00:51:18那么多任务,但我们最终只是做得更多了。
00:51:21我不确定这是否是一笔划算的交易,尤其是 AI 正在夺走一些我真正
00:51:25享受的工作,并给了我一些我不那么享受的工作,比如审查代码。
00:51:30但是,好吧。
00:51:32请问你现在以什么为生?
00:51:33除了教育课程之外还有别的吗?
00:51:35嗯,基本上和我过去 10 年做的一样。
00:51:39很大一部分是关于课程和内容创作。
00:51:43以前会有更多的客户项目之类的事情。
00:51:47随着课程变得越来越成功,我已经缩减了那部分业务。
00:51:52然后我有我的副业项目,比如我刚刚分享的那些网站,可以赚点钱。
00:51:58这真的是所有这些事情的结合。
00:52:01但教育内容绝对是最重要的部分,过去几年一直如此。
00:52:07过去几年一直如此。
00:52:10但是,是的,我尽量保持这种混合状态,因为我不想只做课程。
00:52:14我想要实际操作这些东西。
00:52:16我想要用它构建有用的东西。
00:52:19我认为人们只是倾向于默认选择使用人数最多的技术,而不是更好的
00:52:23那一个,从而导致了羊群效应。
00:52:25有时人们只是懒得去分析更好的替代方案。
00:52:28是的。
00:52:29而且我的意思是,很多人反正也没得选,因为如果你只是
00:52:34在一家公司工作,或者为有特定偏好或规则的客户服务,
00:52:42那么你没有选择权。
00:52:46你不能说:”嘿,我们要用 Adonis 之类的。”
00:52:49不,你得用 Next.js 或者其他什么,因为那是公司
00:52:54过去五年一直在用的东西。
00:52:56所以,就是这样。
00:52:59我的意思是,我其实很幸运,因为我可以选择我想使用的技术,
00:53:03以及我想用来构建项目的技术,但显然学习是需要时间的。
00:53:10精通某样东西需要更多的时间。
00:53:13而现在有这么多关于 AI 的东西需要学习和处理,
00:53:19对我来说真的很难腾出时间。
00:53:23我不确定你们大家怎么样,但对我来说,真的很难抽出时间。
00:53:28真的很难吗?
00:53:32现在被裁员后真的很难再找到工作。
00:53:37有什么建议吗?
00:53:38是的,我知道这非常困难。
00:53:42我经常读到相关消息。
00:53:44首先,我认为情况会好转,但显然这现在帮不了你。
00:53:51而现在的情况真的很艰难。
00:53:54每个人都想雇佣资深开发人员,而不是很多初级开发人员,最终公司
00:53:58会发现他们也需要初级人员。
00:54:07目前这很困难,当他们发现需要初级人员时,那些人可能已经不在了。
00:54:11所以是艰难时期。
00:54:14你现在能做些什么?
00:54:16我过去说过,且现在依然认为这是一个好主意,那就是既然
00:54:21申请人比工作多,你就需要一种脱颖而出的方式。
00:54:26那么你如何能从人群中脱颖而出呢?
00:54:28一份好的保险(注:可能指背书)、好的作品集、好的简历。
00:54:31这些都很重要,你会惊讶于有多少人投递申请时
00:54:37一点心思都不花。
00:54:39所以如果你花点心思,如果能针对你申请的公司进行微调,
00:54:44这在有了 AI 的今天比以往任何时候都容易,但请务必通读一遍,进行微调,
00:54:49加入一些个人特色。
00:54:51单凭这一点可能就能让你与众不同,但除此之外,如果你能找到任何
00:54:57积累受众、获得关注的方式,无论是一个 YouTube 频道,
00:55:07还是在 Instagram 或 LinkedIn 上的存在感,我的意思并不是说你需要
00:55:11成为一个大网红或内容创作者或类似的角色,
00:55:18但如果一个公司搜索你的名字,看到你在 YouTube 或 X 上
00:55:26有一些关注者,无论多寡,如果你的内容
00:55:32是有用的,那也能让你脱颖而出。
00:55:33所以我认为这可以是一个可行的策略,当然我意识到你是想
00:55:38找工作而不是成为网红,但那是你可以尝试脱颖而出的
00:55:42一种方式。
00:55:44因为是的,现在确实很不容易。
00:55:48过去,既然我在这里读到过,你需要通过贡献来获得项目,我认为
00:55:53一个问题是,在 AI 出现以及我们在过去六七个月里看到的
00:56:00AI 代理崛起之前,在在那之前,参与开源确实是一个
00:56:11可行的策略,比如创建拉取请求(PR)等等。
00:56:16而现在情况发生了一些反转。
00:56:18因为许多热门的开源项目,甚至是较小的项目,都正被
00:56:24AI 生成的问题和 AI 生成的拉取请求所淹没,这使得
00:56:30维护者很难维护这些项目。
00:56:34所以现在我觉得在 GitHub 上做贡献很困难,因为有相当一部分
00:56:42维护者并不欢迎这种行为,而且从人群中脱颖而出变得更难了,因为每个人
00:56:52都在让他们的代理向 GitHub 推送大量的 AI 垃圾。
00:56:58对于招聘人员来说,很难辨别你拥有的是高质量的贡献,
00:57:03还是平庸之作。
00:57:05所以我认为那仍然重要。
00:57:08如果你在那方面有所作为,那仍然是一个积极的信号,但它已经远不如
00:57:14以前那么重要了。
00:57:16我认为,其他能证明你是人类、证明你关心这份工作
00:57:21等等的方式,会更有前景。
00:57:25这只是我的个人浅见。
00:57:27当然,这些话出自一个幸运的人之口,我并不需要
00:57:33找工作,因为我有自己的事业,有自己的项目、课程、
00:57:39YouTube 频道之类的东西。
00:57:42而且我拥有可以动用的客户群来开展工作等等。
00:57:49所以我绝对处于一个优越的位置,但这些是当你想起
00:57:54申请或寻找工作时,我脑海中浮现的事情。
00:58:00但回到 Adonis,我认为在未来的某次直播中
00:58:13深入研究它可能会很有意思。
00:58:14不是今天,因为我大约半小时后就得走了,但也许是下周,或者
00:58:25我可以想出某种行得通的 YouTube 视频格式,但这真的非常难,
00:58:32因为现在的 YouTube 运作方式与以往截然不同。
00:58:38仅仅制作普通的教程现在根本行不通了。
00:58:42当然,点击量很重要。
00:58:43如果几乎没人看一个视频,那它显然就没用了。
00:58:52它不能为你赚到钱,不能为你带来曝光率,甚至会损害你的
00:58:56频道,因为如果你发布了一堆没点击量的视频,你未来的视频
00:59:01获得的点击量也会减少。
00:59:02所以你真的没有动力去制作那些你提前就知道表现会
00:59:11比其他视频差的视频。
00:59:15但也许我能在那方面想出点办法。
00:59:18关于 DSA(即数据结构与算法),你有什么建议?
00:59:24显然这在 40 年前超级重要,但现在我不确定了。
00:59:29我认为目前仍有相当多公司在招聘过程中使用它。
00:59:35我从来都不看好这种方式,而且我觉得现在它更没用了,因为如果由我来招聘,
00:59:42我想看到的是你是否理解工作中将要使用的技术基础。
00:59:50我想看到你是否能用 AI 进行研究,是否能使用 AI 助手,
00:59:55而不是看你能不能写出某种算法,因为当然,那也能证明一些基础能力,
01:00:01但不一定是我正在寻找的基础。
01:00:06我觉得这会变得不那么重要,但我不确定我们是否已经完全到了那个阶段。
01:00:12我也承认,我从来不是 DSA 专家,因为我从来没有完全——是的,
01:00:27我一直很讨厌公司在很大程度上根据
01:00:36某人是否会写算法 X、反转二叉树之类的来做招聘决定。
01:00:45对此你当然可以有不同意见,但如果这种方式消失了,我不会感到遗憾。
01:00:51我会这样表述。
01:00:54倒不是因为它影响了我,只是我觉得它没有太大价值,而且我认为
01:00:58在 AI 时代,它变得更不重要、更没价值了,所以我设想会有
01:01:04越来越多的公司不再使用它,当然我也可能错了。
01:01:08我的意思是,另一个问题是很多公司面临着
01:01:14应聘者在视频通话面试中作弊的问题,这也是为什么他们可能减少
01:01:22使用这种考核方式的原因。
01:01:24也许如果我们能通过非凡的项目来展示我们可以最大限度地利用技术,正如
01:01:29现在我正在开发教育解决方案,我是一名儿童和青少年教育者,没错,完全正确,
01:01:34那听起来是个很棒的主意。
01:01:37你能预测这个 AI 趋势的走向吗?你认为我们会达到一个停滞点吗?
01:01:42我不知道。
01:01:43我看到或者说我感觉到的是,这些工具仍在变得更好,
01:01:47现在我们有了经过微调的模型,它们非常擅长遵循指令
01:01:53和使用工具,而且我们有了围绕它们的工具,也就是我们现在所说的「harnesses」,
01:02:01它们能非常高效地利用这些模型,我们或许能从中压榨出
01:02:08更多价值,让它们变得更好,更精准地遵循指令,
01:02:15所以这很难预测,而且其中有太多因素在起作用。
01:02:22我是说,还存在算力瓶颈问题,单是这一点就可能停止 AI 发展,或者
01:02:27不是停止,而是减速,但当然,大量新产能正在上线。
01:02:35然后我们还有像这个奇怪的 sub-Q 这种东西,即亚二次稀疏注意力模型,
01:02:41我也为此制作了一个视频,它是关于一个更快、更便宜
01:02:49且比现有模型拥有更多上下文的模型。
01:02:55如果这成真了,它可能会改变游戏规则。
01:02:58如果这只是炒作(这很有可能,但我不知道),那么什么都不会
01:03:02改变。
01:03:09因此,有很多因素可能会减缓发展,我不知道是否会存在
01:03:10某个终点,在那模型不再变得更聪明,而且每获得
01:03:17一种新能力,就会失去另一种能力。
01:03:25这可能会发生,但我对此并不了解。
01:03:28但目前我确实看到了进步,特别是工具,即我们使用的 harnesses,以及
01:03:30围绕它们构建的东西,比如我们现在可以使用的沙箱,
01:03:37以及我们为安全运行这些代理而找到的不同解决方案。
01:03:43那里仍然有很多进展,所以我依然觉得它充满动力且
01:03:49在不断变化。
01:03:54特别是在过去的六个月里,速度如此之快,以至于我不敢预测
01:03:55六个月后会是什么情况,或者当前的现状会是什么样子。
01:04:02GitLab 和 GitHub 的 CI/CD 之间有什么区别?
01:04:10我无法评判其 CI/CD,因为我从未使用过 GitLab。
01:04:14总的来说,GitLab 当然是 GitHub 的替代方案,但我只用过 GitHub
01:04:19Actions。
01:04:26我从未使用过 GitLab,所以我无法评判区别在哪,或者 GitLab 在
01:04:27这方面的优劣。
01:04:32你会建议为作品集构建什么项目?
01:04:34也许是一些能脱颖而出的东西。
01:04:37在过去,我总是建议做一个亚马逊的克隆版。
01:04:40当然是一个简单的克隆,但就是类似的东西。
01:04:44但现在,我不那么确定了。
01:04:48既然 AI 已经出现了,你当然想说服招聘人员,对吧?
01:04:51所以,一些不仅在构建过程中使用 AI,而且在你构建的
01:04:58产品中也使用了 AI 的项目可能值得一试,仅仅因为它在招聘人员看来
01:05:06更有趣。
01:05:12例如,构建你自己的 agent harness,你自己对 Codex、Claude Code
01:05:15或 Plandex 的替代品。
01:05:22那可能会很有趣。
01:05:24我的意思是,你可以通过观察 Plandex 来获取灵感,它是一个非常棒的
01:05:25开源 AI 代理,你可以用它来进行编程和各种工作。
01:05:32我的意思是,是参考,而不是抄袭,从中获得一些灵感。
01:05:37构建类似的东西对你个人来说可能是一个有趣的项目,也能让你脱颖而出。
01:05:42我知道很多人都在构建代理,但这确实是招聘人员可能会
01:05:47更感兴趣的东西。
01:05:48所以,那会是个方向。
01:05:53某种利用 AI 或以有趣的方式封装 AI 的工具,我认为那会是
01:05:54一个有趣的项目。
01:05:55我认为在这个 AI 时代脱颖而出的方式与以前一样,即证明你可以
01:06:01理解系统和工具。
01:06:04现在的人们只想使用流行的工具。
01:06:09他们并不理解其工作原理。
01:06:10我认为这是一个非常好的观点。
01:06:12这也是为什么我正在制作那个系统设计和架构课程的原因。
01:06:14因为我认为在当今时代,拥有扎实的基础、稳固的基本功
01:06:16以及架构软件和整个系统的能力比以往任何时候都更重要。
01:06:24而这两者并不相同。
01:06:31软件并不一定等同于系统,但我的意思是,
01:06:36能够构建一个复杂的系统,涉及到诸如规划我在哪里需要队列、我在哪里使用
01:06:38扇出模式或发布/订阅模式之类的事情,我为我的数据使用哪种存储,
01:06:46为我应用程序生成的数据使用哪种存储,对象存储、文件存储,我使用
01:06:54哪种数据库,我正在优化什么,是为了成本,还是为了可靠性。
01:07:04在某种程度上,我认为这些问题历来都与云计算
01:07:11密切相关。
01:07:21它们现在依然相关,但我认为这类知识会变得更重要,因为
01:07:26正如我之前所说,我认为人们的期望和机会将是你
01:07:27能够且应该成为一名全才,当然在某些领域也要有专长。
01:07:32但能够设计系统,当然还有架构软件,将
01:07:39比以往任何时候都更加重要。
01:07:45这就是为什么我说,我认为仅仅做一个前端开发人员可能已经不够了。
01:07:52你可以是那里的专家,但你可能应该是一个全才,你应该
01:07:55对如何构建一个整体的 Web 应用程序有基本的了解,例如,包括
01:08:00后端。
01:08:05然后你就拥有了这些,那么在某些点上它就会涉及到系统设计。
01:08:11我认为那将非常重要。
01:08:13GitHub 是否还保持着原来的地位?
01:08:18我认为人们已经忘记了它的问题。
01:08:22嗯,我觉得 GitHub 的问题对很多人来说依然历历在目,我感觉是这样。
01:08:25GitHub 出过很多问题,不知道你有没有看到,但他们分享了
01:08:28那篇带有图表的博客文章,那些图表有点难懂,因为没有 Y 轴,我们只看到
01:08:38这个数字,但看不到我们是从哪里开始的。
01:08:46但我会说,关于 GitHub 和微软有很多负面的说法,
01:08:51例如,他们没有 CEO,他们被并入了核心 AI 部门,
01:08:54而且微软似乎并不是特别关心 GitHub。
01:09:03但有一点我非常同情他们,也不会以此来指责他们,
01:09:09那就是如果你看看那种增长速度,对任何公司来说都是非常困难的。
01:09:14当然,他们是微软的一部分,拥有云资源等等,而且他们
01:09:21也正在努力解决。
01:09:26但那种增长简直是疯狂的。
01:09:32当然你本可以预见到它的到来,但我的意思是,看看这个增长有多快。
01:09:33这太疯狂了。
01:09:35过去几个月发生的事情简直令人难以置信。
01:09:42所以从这个角度来看,我理解他们正面临许多问题。
01:09:43据我了解以及他们在文章中所写的,他们正在全力修复
01:09:47现状,释放更多容量,并为未来做准备,在那我们将
01:09:51被 AI 生成的代码淹没,而这种未来已经到来,而且可能
01:09:57还会继续加速,尽管这可能很难想象。
01:10:04我的意思是,我们有一个约束条件,那就是算力容量。
01:10:10所以也许那会稍微减缓速度,但我理解他们正面临这些问题。
01:10:14离题了,我们听说过 AI 被用于战争游戏模拟。
01:10:19在那些模拟中,AI 总是选择核打击。
01:10:26但你听说过关于光明健康社会模型的模拟研究吗?即 AI 应用于
01:10:29人类的模拟?
01:10:33这个嘛,没有,我没听说过。
01:10:39我可以想象 AI 肯定会被用于大量的制药等基础研究中。
01:10:44所以我觉得从中会有好的结果产生。
01:10:47但很明显,AI 有很多危险和负面的潜力。
01:10:58我的意思是,即使你只看深度伪造 (deepfakes)、AI 视频、图像,它也会
01:11:01对社会产生巨大影响,因为它改变了就业市场。
01:11:06我不相信它只会消灭工作。
01:11:12我坚信新的工作岗位会产生,工作只是会不断演变和改变,
01:11:20就像我的工作正在改变一样。
01:11:26我不再制作那些传统的编程教程了,我本来很想做,但时代在
01:11:29演变。
01:11:35但是,是的,它确实有非常巨大的影响。
01:11:36特别是在我居住的德国,情况甚至更糟,因为我没有感觉到
01:11:43我们在这里将 AI 用于任何有用的事情。
01:11:45感觉这个国家在 AI 上完全处于沉睡状态,就像我们面对
01:11:53任何新技术时一贯的表现一样。
01:11:59所以,没错,目前我认为有很多糟糕的事情。
01:12:02你可以看到,也许还没看到那么多好的方面。
01:12:09不确定。
01:12:12很遗憾我们在从大学到工业界的层面上学不到这些。
01:12:18是的,我的意思是,那是另一个有趣的话题。
01:12:22我觉得大学一直与工业界的需求有些脱节。
01:12:24当然,在某种程度上这是故意的,因为大学是关于学术
01:12:29之类的。
01:12:32但在过去,我发现积累实践经验一直很重要,无论是
01:12:39通过构建自己的侧边项目、做实习等等,
01:12:44还是当然通过学习像我这样的课程,或者阅读文档,自学等等。
01:12:45但我总是发现,在大学教给你的知识之外获得额外的技能非常重要,
01:12:56这样才能为就业市场做好充分准备。
01:13:03我觉得现在有了 AI,这种进程甚至在加速,或者说那种差距正在变大。
01:13:07因为当然,也有一些大学能跟上步伐。
01:13:13我确信会有。
01:13:18但我也确信有很多大学跟不上。
01:13:24可能有许多大学只是试图禁止学生使用 ChatGPT
01:13:30之类的事情。
01:13:31显然,他们无法控制这一点。
01:13:34但这可能是他们针对 AI 做的唯一一件事。
01:13:42我认为那将是一个大问题。
01:13:43这就是为什么现在在大学之外收集和获取额外知识变得更加重要的原因。
01:13:44并非针对每所大学。
01:13:49而且我已经不在大学里了。
01:13:53我可能完全错了。
01:14:00那只是根据我当年的情况而谈。
01:14:02我无法想象现在会变得好到哪里去。
01:14:03而且有了 AI,一切都移动得更快了。
01:14:05我认为在大学学习的基础上,额外教育自己是非常重要的。
01:14:06但与此同时,我也在其他直播和视频中说过,我认为
01:14:09不要盲目听信那种「如果你不做点什么就会被甩在后面」的言论也很重要。
01:14:13事实并非如此。
01:14:15一切都移动得如此之快。
01:14:21基本上不可能被甩在后面。
01:14:24因为如果某种方案在今天非常出色或重要,它可能在几个月后
01:14:35就不再重要或不再起作用了。
01:14:37所以如果你投入所有精力去精通今天的这个东西,它可能在几个月后
01:14:41变得完全无关紧要。
01:14:45所以,你当然应该保持参与、保持知情,并尝试这些工具,
01:14:53例如,如果你是一名开发人员,就去使用 Claude Code 等等。
01:14:56但不要感到压力,觉得必须现在就精通并理解一切。
01:15:02那是由于不可能的。
01:15:04而且我觉得那也是毫无意义的。
01:15:09「你好 Max,不是问题,只是想说谢谢你总是分享诚实的
01:15:13想法,而不去盲从当下的任何潮流。」
01:15:19非常感谢。
01:15:20这对我很重要,因为那对我真的很关键。
01:15:22我非常清楚一个事实,例如在 YouTube 上,我大部分的内容
01:15:27目前都是关于 AI 的,虽然并非全部。
01:15:31但每当我做一些与 AI 无关的内容时,它的表现往往会变差。
01:15:35但我还是会做。
01:15:39那些我觉得可能对开发者产生影响的内容,因为
01:15:47但目前为止,AI 占据了我大部分的内容,虽然并非全部。
01:15:50但每当我做一些与 AI 无关的内容时,表现往往会差一些。
01:15:54但我仍然会去做。
01:15:56因为我只想分享我感兴趣、对我来说很重要、或者我读到的内容,
01:16:05那些有影响力的,或者我认为可能对开发者产生影响的内容,因为
01:16:13我会一直努力分享有用的知识,帮助其他人在开发者的道路上成长,并
01:16:21驾驭好这次转型,就像我也在努力自我提升一样。
01:16:27这就是我唯一尝试在做的事。
01:16:28所以,真的非常非常感谢大家。
01:16:29这对我很重要,因为我做 YouTube 并不是为了钱。
01:16:39我没有赞助商。
01:16:40我会宣传我的课程,是的,但我会保持非常简短。
01:16:44在有些视频里,我甚至会忘了这件事。
01:16:48当然,我确实在意播放量。
01:16:49我希望能触达到观众。
01:16:51如果我制作的视频没有人看,那对我或任何人都没帮助。
01:16:56那不是我想要的。
01:16:57我希望能尽可能地向更多人传播有用的知识,但我做这些
01:17:02并不是为了钱。
01:17:05我也从未在任何视频中做过付费推广,以后也没有这个计划。
01:17:11所以我试着在那之间找到正确的平衡。
01:17:13因此,当我读到我似乎在这方面取得了成功,至少对某些人来说是这样时,
01:17:18这对我意义重大。
01:17:19显然,你无法让每个人都满意。
01:17:21但是,我也非常感谢你,Max。
01:17:24你的教育内容给了我很大的帮助。
01:17:27从你那里学到了很多东西。
01:17:28无论内容是什么形式都无所谓。
01:17:29我总是愿意听你的分享。
01:17:33也非常感谢你。
01:17:34谢谢大家。
01:17:35感谢大家今天加入这个直播间。
01:17:38刚开始遇到很多问题,非常抱歉,但至少现在稳定了。
01:17:43我会去排查原因,希望下周不会这么卡顿。
01:17:49总之,非常感谢大家的参与和友好的评论。
01:17:54我会继续努力创作有价值的内容、有价值的课程和
01:18:01有价值的视频,并在这里分享我的进展。
01:18:04我有很多很多想法。
01:18:05唯一的问题就是时间,我相信大家也一样。
01:18:10但我会继续尝试在这里分享有用的东西。
01:18:14“你有兴趣做一个训练营吗?召集一些学生,
01:18:17教他们如何进行团队合作等等?”
01:18:19我考虑过,我确实考虑过,总的来说我很有兴趣。
01:18:25不过如果我做的话,我希望它能非常出色。
01:18:29目前我真的在时间上非常吃紧。
01:18:34所以我尝试过一些想法。
01:18:37我零零散散地做过一些概念方案,但目前还没有一个让我完全满意的。
01:18:44所以现在我没有任何训练营计划。
01:18:48近期也没有,但总的来说,我喜欢做这些直播。
01:18:52所以做一些包含直播元素的教育内容——不是那种纯直播课,
01:18:58而是带有一些直播答疑环节的课程,会很有意思。
01:19:05但目前还没有什么具体的计划可以宣布。
01:19:08说到这里,我也得走了。
01:19:10非常感谢大家的参与,感谢大家在所有技术问题中
01:19:14依然坚持陪着我。直播的回放,或者说几段回放,因为我重开了两次,
01:19:21会保留在网上。下周我还会回来吗?
01:19:25让我查一下。
01:19:26不,下周四我不会在这里。
01:19:31也许在周三,我再看看。
01:19:34如果不行,那就是再下周。
01:19:375 月 21 日我会回来,也许 5 月 13 日也会。
01:19:44我想我上线时你们会看到的,时间总是一样的。
01:19:48通常会是在周四,计划是每周都直播。
01:19:55是的。
01:19:58很多友善的评论。
01:20:02非常感谢。
01:20:03还有 Yaser, Hasan 和 Liskasmael,是的,我看到你们说的了。
01:20:16总之,谢谢大家。
01:20:17谢谢大家,祝大家晚上、白天、早上愉快,无论你身处何地,
01:20:22感谢参与,希望在未来的直播中再见到你们。
01:20:25拜拜。

Key Takeaway

在 AI 驱动的开发时代,Bun 运行时正通过集成包管理安全配置(如 min-release-age)和向 AI 代理运行时转型,来应对全栈开发复杂性与供应链安全挑战。

Highlights

  • Bun 不仅是一个运行时,还具备包管理器、测试运行器和打包器功能,旨在提供全栈式的开发体验。

  • 在 Bun 的配置文件 bunfig.toml 中设置 min-release-age 参数可以有效防御供应链攻击,确保只安装发布超过指定时长的包版本。

  • 开发者可以将 Hono 框架与 Bun 运行时结合使用,以获得具备中间件支持和优雅路由系统的轻量级 REST API 开发环境。

  • Anthropic 对 Bun 的收购预示着其可能向 AI 代理运行时方向演进,增加沙箱化、工具管理和权限控制等功能。

  • Remix 3 正在针对 AI 智能体进行优化,其构建方式旨在使其核心逻辑更容易被 LLM 理解和掌握。

  • 现代 Web 开发的重点正在从单一的前端开发转向全栈通用型人才,企业更倾向于招聘能够设计整体系统架构的通才。

Timeline

Bun 的功能集成与安全实践

  • Bun 集成了运行时、快速包管理器、测试运行器和打包器,是多功能的开发工具集。
  • 通过在 bunfig.toml 中配置最低发布时长参数,可以过滤掉刚发布几小时内可能携带恶意代码的软件包。
  • Bun 内置了文件系统路由 API,允许开发者在不安装额外中间件的情况下定义细粒度的路由方法。

Bun 的设计核心在于极速性能和功能整合。包管理器的速度优势明显,且通过 min-release-age 设置(例如设置为三天,即 259200 秒),能够让开发者规避大部分在发布初期被发现的供应链攻击。虽然它缺少像 Hono 那样的内置中间件结构,但其原生的路由处理能力已足够支持构建优雅的服务器逻辑。

向量数据库与代理式搜索的演进

  • Qdrant 是一个支持自行托管且适合构建 RAG 系统的向量数据库选项。
  • AI 领域的趋势正从单纯依赖向量数据库转向直接赋予代理文件系统访问权限的“代理式搜索”。
  • 对于文档数量较少(如一百份左右)的使用场景,直接让代理处理文件系统比连接向量数据库更高效。

向量数据库在语义搜索中依然占据一席之地,但其在 AI 应用中的核心地位正面临挑战。随着 LLM 处理能力提升,直接将文件系统挂载给代理,让其自行检索和处理文档成为一种更直接的替代方案。这要求开发者不仅要掌握数据库技术,还要理解如何构建能够高效管理上下文的代理框架。

全栈框架的竞争与 Remix 3 的 AI 愿景

  • Remix 3 旨在打破与 React 的强绑定,转向一种更容易被 AI 智能体理解的架构模式。
  • Adonis.js 作为一个模仿 Laravel 设计理念的 Node.js 全栈框架,因其内置的身份验证和 ORM 功能而重新获得关注。
  • 全栈框架的流行得益于服务器端渲染(SSR)在性能和 SEO 方面的普及需求。

Web 开发格局正在从单纯的单页面应用(SPA)转向复杂的全栈架构。Remix 3 的目标是成为对智能体友好的框架,因为目前大多数 AI 模型仍默认推荐 React 和 Next.js。Adonis.js 提供了一套完整的 MVC 结构,包括 EdgeJS 模板引擎和 SQL ORM,为追求开箱即用功能的开发者提供了 React 生态之外的替代方案。

AI 时代下的职业发展与技能转型

  • 全栈通用型开发者(Generalist)在 AI 时代比单一的前端专才更具就业竞争力。
  • Docker 基础知识已成为现代开发者的必备技能,而 Kubernetes 则属于按需学习的进阶范畴。
  • 减少对第三方包的依赖并利用 AI 实现原生功能,可以降低维护成本和安全风险。

就业市场正面临结构性变化,企业对资深全栈人才的需求远超初级开发人员。掌握 Docker 等基础设施工具可以帮助开发者理解代码运行的底层环境。此外,过度依赖包库会带来维护负担,在 AI 辅助下编写原生 HTML、CSS 和 JavaScript 来替代小型库,已成为一种可行的精简策略。这种转型要求开发者从关注语法转向关注架构设计。

系统设计、算法面试与 AI 的未来局限

  • 数据结构与算法(DSA)在招聘中的重要性正在下降,取而代之的是对系统架构和 AI 工具应用能力的考核。
  • 系统设计的核心在于决策如何平衡存储成本、可靠性以及选择合适的通信模式(如发布/订阅)。
  • 开源贡献的价值因 AI 生成的垃圾拉取请求(PR)泛滥而遭到稀释。

随着 GitHub 被 AI 生成代码淹没,单纯的开源贡献已难以作为能力的唯一证明。未来的核心竞争力在于设计复杂系统的能力,包括对队列、对象存储和数据库选型的深度理解。AI 虽然能提高产出速度,但也带来了代码审查等新的工作负担。开发者应保持对新工具的尝试(如 Claude Code),但无需为无法精通每一个瞬息万变的技术而感到焦虑。

Community Posts

View all posts