📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Markdown as a CMS is a bad idea

Syntax1:03:06

Transcription

欢迎来到 Syntax。今天我们有一期“自带食物”的节目,意思是你们提问,我们回答。今天我们收到了一些非常好的问题,比如:我应该用 Markdown 而不是 CMS 吗?不,永远不要。拜托。我和 Scott 有数千个 Markdown 文件作为 CMS,这太糟糕了。为了工作而离开国家。我应该打包我的全家离开这个国家,但收入却减少了吗? Scott,我该如何掌握键盘快捷键?我和他有一些关于掌握键盘快捷键的绝佳技巧。年轻人应该因为 AI 而进入 Web 开发吗?这是我们从各个年龄段的人那里收到的问题,但我们可以尝试回答。最后,备份策略。嗯,在万圣节节目之后,每个人都在为他们糟糕的备份策略而恐慌。所以,我和 Scott 会谈谈这个。让我们开始吧。你准备好迎接一些“自带食物”的问题了吗,Scott? >> 哦,等等。我喜欢你的 Figma 帽子。真酷。你在哪儿弄到的? >> 嗯,GitHub Universe 是那些赠品之一。我连续两年都这样做了,我跟他们说了“你知道我是谁吗”这张牌 [笑声],我走上前去,他们说“哦,你想了解 Figma 吗?”我说“老实说,我只是为了帽子来的”,但我确实为 Figma 的网站做了你们非常早期的教程视频,那是在 2015 年,他们会说“哦,好吧,给你一顶帽子”[笑声],就像 >> 我比你出现得早得多。是的,我曾被邀请成为 Figma 的第八名员工之类的。我拒绝了,所以才一直工作到现在。 >> 嗯,我不认为那些人也得到了他们的回报,因为 Adobe 的事情也被取消了,我敢肯定,当事情没有成功时,一定有一些员工很不高兴。 >> 哦,伙计。你能想象吗? >> 法拉利已预订。 >> 你能想象吗?而且在《WeWork》的纪录片中,不是纪录片,是他们拍的《WeWork》剧集里有一个场景,>> 非常好看。 >> 是的,那部剧非常好看。他们让员工在公开之前添加东西并点击购买,然后就像,天哪,知道有这么多钱在里面,而且有一个未来你可以拥有那种钱,但它却被从你身边夺走了。说实话,那会让我崩溃。是的。[笑声] >> [喘气] >> 哦,残酷,残酷,残酷。好了,让我们来回答第一个问题。Scott,你想拿那个吗? >> 是的。来自 Josh Doveham。我最近一直沉迷于学习键盘快捷键。从 macOS 快捷键到 Chrome VS Code 的一切。我的目标是随着时间的推移逐渐摆脱鼠标,看看我能获得多少额外的生产力,以及更深层次的流畅感。你们对键盘快捷键有什么看法?它们真的能让你更有效率,还是只是节省微小时间的工具,对开发者的帮助不大?来自温哥华的爱。嗯,就我个人而言,是的,我喜欢键盘快捷键,而且我确实经常使用它们。我最常用的快捷键是窗口管理之类的,我把所有东西都设置成了“hyper”,比如“hyper F”来全屏,但不是真正的全屏,只是让它最大化,就像那样。我还有“hyperl”可以将当前行包装成一个 console.log。但我已经以一种我感觉非常舒适的方式调整了我的个人快捷键,尤其是在我的文本编辑器中,我可以轻松地用键盘进行导航,然后在我的系统也是如此。但我认为学习任何东西中存在的快捷键都能带来巨大的价值。就像我教我的孩子如何使用电脑时,我不会告诉他去点击那个 X。我会告诉他按 Command W 或者其他什么。我会告诉他按 Command Q 或者 Command V,Command,你知道,那些东西,因为如果你只知道这样做,它整体上就会变得快得多。但有一个地方,我一直觉得对我来说在视频或快捷键方面非常有用,那就是视频编辑之类的东西,我为所有东西都设置了自己的自定义快捷键,而且我基本上是在视频编辑时像弹钢琴一样弹奏我的键盘,因为一旦你掌握了它,人们就会购买宏键盘,他们会购买巨大的旋钮,各种东西,而且你只用键盘就能做很多事情。键盘上有按钮。我忘了有多少按钮,但有很多按钮。所以,你可以在上面设置一个 hyper key,你就有了一整套新的按钮。这很酷。>> Hyper key 非常关键,它就是你将 Control、Shift、Option 和 Command 映射到 Caps Lock 键。这基本上为你打开了一个全新的组合世界。我认为很多人对键盘快捷键感到沮丧,因为他们永远记不住它们。就像,就像那个是什么,那个小帽子符号是什么?但是,如果你只知道它是 Caps Lock 加上其他东西,你就可以疯狂地使用它。我有一个>> 扩展的 Mac 键盘。>> 它给了我整个数字键盘,然后还有>> F16 到 F19,它给了你所有这些>> 哦,我的键盘太恶心了。>> 是的,我快要吐了。>> 是的,我需要清理一下。它给了你 Home、Page Up、End、Page Down、Page Up。所以,这些键在大多数应用程序中几乎都没有被使用。将这些键与 hyper 加上任何一个键组合起来对我来说是一个巨大的改变。唯一的缺点是你不能在笔记本电脑上使用它,但我并不经常直接使用笔记本电脑。>> 我几乎只使用笔记本电脑键盘。我从不使用外接键盘。我喜欢笔记本电脑键盘。>> 然后我也使用 BetterTouchTool。我做了一个视频,我们实际上还没有编辑好并上传到频道。我与 John Linquist 合作制作了一个视频,只是谈论>> John 是的,John Linquist 是最懂生产力的人。他有一个叫做 Script Kit 的应用程序等等,但他向我展示了他如何使用鼠标,因为我一直觉得“是的,摆脱鼠标,别碰鼠标。”但他也使用组合键然后点击。>> 所以现在,如果你按住任何一个键>> 然后点击或右键点击或中键点击或点击并拖动,你就可以做任何事情。我们会编辑好视频并在 YouTube 频道上发布,因为它很有启发性,在键盘上添加鼠标手势和按住一个键就像是另一个世界。我用我的>> 是的,是的,当我按下它时,我可以按一个按钮然后向上或向下,它会>> 有很多很酷的东西,手势等等。是的,暴露。>> 推下去然后向右鼠标,它会把它移到下一个空间。有很多事情可以做,这是一个无底洞。你可以花一整天的时间来提高效率,但我确实认为学习键盘快捷键,尤其是内置的快捷键,是非常值得的。我的一个建议是,如果一个应用程序没有像 VS Code 那样的命令面板,在 macOS 的帮助菜单中,点击帮助,里面有一个小搜索栏,而不是到处寻找菜单,你只需要在那里输入。还有一个 Raycast 扩展,它会显示它们在菜单中的位置,并显示它们的快捷键。这是一个快速找到你想要的东西并记住快捷键的方法。>> 我知道我的 MXM 上有什么。我把撤销和重做绑定到了这个中间滚动条,这个水平滚动条或滚动条。所以我可以向左滑动撤销,向右滑动重做。>> 我太喜欢摆弄它了,以至于我做不到。我用它来水平滚动,因为我经常使用 TweetDeck 进行水平滚动。>> 但我一整天都在摆弄它,所以我做不到。我在 Photoshop 中设置了撤销重做,我不断地意外地撤销了东西。[笑声]>> 是的,[喘气] 我喜欢那个。>> 好了,下一个问题来自 Anan,他说在第 956 集,你提到了 Git Lens 的一个替代品叫做 Air Lens,但我找不到任何关于它的信息。你能多说一点吗?那不是 Air Lens,那是 Error Lens。这是一个我非常喜欢的 VS Code 扩展。我现在在视频里展示了它。它能做的就是,当你遇到任何错误时,比如 TypeScript 错误、linting 错误、Markdown 错误,你知道代码中发生的任何事情,它通常会在你的东西下面加一个小的波浪线。我所做的是,我使用 Error Lens 将它们内联到代码旁边。所以你可以在这里看到我有一些“不能重新声明块作用域变量”,找不到名称“cool”,我已经安装了它。但然后我进入了我的设置并做了一些更改。首先,我把字体大小调小了很多,这样它就不会那么刺眼了。所以,当你现在看它的时候,它很小,我猜我现在放大了点,但我发现这个尺寸很好。然后我还把它设置为错误、警告和提示,并且我还自定义了每个的颜色。所以背景和前景,这样它就不会那么刺眼了。我发现默认情况下它太刺眼了。比如整行会变成红色或黄色,太刺眼了。所以我把它调低了很多。最后,我还设置了 airline.exclude。然后是一些我不在乎的常见东西,因为我知道它们会被修复,要么由我修复,因为已经有波浪线了,要么在我保存时就会被修复。我的 ESLint 或 Prettier 会启动并修复它们。比如我忽略了任何“这个变量从未使用过或从未读取过”之类的东西,因为我已经有了波浪线,而且这种情况经常发生。我创建一个变量,然后它会说“嘿,你从未使用过这个变量”。我说“我正在处理它,就在下一行”。或者“未知单词”。这只是拼写检查,我忽略了所有内联的拼写检查。然后>> 新的换行符 ESLint 错误,当你有空格时,它会一直弹出。我不在乎,一旦我保存,它就会自动修复。所以,>> 你可以看到,实际上这个设置已经被弃用了,取而代之的是 error lens.exclude。exclude by message。所以 Error Lens 本身就显示了我配置 Error Lens 的一个错误,这很有帮助。对于那些很长的错误,它会有点刺眼,但你只需要将鼠标悬停在上面就可以阅读它。>> 是的,是的,我喜欢那个。是的,谢谢分享。我自己也使用 airlines,它很棒。酷。下一个问题来自 Josh。Scott 在讨论他的 Syntax 网站重写时,用一个非常酷的 Svelte 5 service worker 吊了我们胃口。他能为此做一个教程吗?特别是,我们希望在我们的网站上看到这些超级能力。它看起来很酷,社区可以从这些信息中受益。所以,我做的 service worker 基本上是拦截查询,拦截远程函数。它会拦截它们,并使用 IndexedDB 进行 stale-while-revalidate。它实际上非常好。它最初会从你的 IndexedDB 加载,基本上给你闪电般快速的初始数据加载。唯一的问题是,我还没有在这个 service worker 中加入任何代码来处理突变时的无效化。>> 当你更新数据,然后浏览到数据,但数据是陈旧的。所以它是原始的。我会把链接贴到这个视频的 gist 中。如果有人想处理这个,或者阐述这个,或者修改它,请随意。我认为这是一个非常酷的、巧妙的小东西,但还没有时间真正巩固它。只是,我有很多工作要做。>> 是的。>> 我对此有一个问题。比如,每次你请求一个 API 来获取最新的播客之类的,它都会拦截它,检查你是否已经执行过那个查询,数据是否存储在本地,如果是,它就会从缓存中返回,而不是实际访问服务器。这就是它的作用,对吧?>> 是的。>> 这与在服务器返回的请求上放置缓存头有什么区别,这样客户端就可以重用响应了?>> 是的,因为我认为你还不能在远程函数上设置缓存头。>> 哦,来自 SvelteKit。>> 是的。>> 哦,好吧。我不这么认为。我认为你可以为页面路由等设置缓存头,但对于单个函数,这可能已经改变了。所以 Svelte 的朋友们,如果这是不正确的,请在下面评论,但是的,这就是它这样做的原因。另外,就像你刚才说的,如果你想拥有关于无效化查询的自定义逻辑,>> 比如一个小时的缓存,如果你不能清除你的缓存,没有打开开发者工具,那么它就会在浏览器中缓存一个小时。而有了这个,你至少可以放一些逻辑在里面来显式地无效化它,或者当某些东西被突变时,你可以手动进入缓存并清除它。>> 是的。>> Blaze 说,刚听了 Remix 的节目,让我想到了 AI 辅助编码的快速崛起,框架的选择还真的重要吗?如果生成式 AI 已经能产生 80% 到 90% 的可靠代码,而开发者可以用他们的经验修复剩下的 10% 到 20%,我们应该如何考虑为新的 Web 或移动应用程序选择技术栈?我们应该坚持我们现在所知道的,比如经过时间考验的 React 生态系统,还是探索更符合 Web 标准和性能优化的框架,比如 Remix 或 Svelte?或者我们应该完全专注于使用生成式 AI 最能有效交互并生成生产质量代码的、得到良好支持和文档的工具?是的,这实际上是我几天前与在 Chrome 工作的一些人谈论过的事情,因为我说,伙计,我们有可定制的下拉菜单,我们有 CSS 锚点,我们有滚动快照,我们有滚动驱动动画,>> 我知道这还很早,但很多人并没有使用这些东西。他们只是 npm install blah blah blah,然后它就能立即工作。我一直在想,为什么人们不使用这些东西?是因为直接 npm install 一个他们已经知道的框架更容易吗?所以问题是,框架的选择真的重要吗?我认为 AI 能理解如何生成你的框架很重要,但我不认为这会阻止这些东西的进步,因为我们会达到一个点,比如 [清嗓子],我们在 React 生态系统中已经看到了很多这种情况,它会直接安装 Tailwind 3 和大量的 UI 框架,然后添加很多东西,但有更好的东西。有新技术,而且我认为你会开始看到,尤其是关于性能和可访问性以及所有这些东西,你的网站会开始变得缓慢和卡顿,如果你只是安装所有这些垃圾,而有更好的选择,你就会遇到性能问题。框架的选择很重要,但我认为这不会阻止一切都集中在 React 生态系统上的事实。我认为我们将继续看到更多使用浏览器原语的 Web 标准框架,更多地使用 Web Fetch、Web Request、Web Response,这样你就可以掌握这些新东西。>> 是的,是的。最终,我认为这真的很重要。有些人会说,只要代码能工作就行,但天哪,有些代码的性能非常差。它非常糟糕,到处都在复制东西。>> 很难维护。>> 很难维护。你编辑了一件事,你的 CSS 就不会级联,因为所有东西都用单独的微样式设置在每个单独的元素上。所以现在你正在编辑无数的东西。这很艰难。我希望的是,随着 AI 的成熟,生成代码的系统将开始能够利用更现代的技术,更高效的技术,而不是仅仅是那天 GitHub 上最多的代码。>> 这是有问题的,对吧?这很有趣,因为每次我都在想,为什么 AI 写的 CSS,甚至是 AI 写的 Tailwind 都是糟糕的,而它写的 CSS 也是糟糕的。我总是想,是因为真的有太多人 CSS 写得不好,然后我去了任何一个开源项目,比如我的服务器,不是像 Plex 那样,而是我的音频书架或音频书架。我有 Copy Party。我拥有我个人运行的所有这些应用程序。然后你看看这些大型开源项目的 CSS,它们在每个地方都设置了背景颜色。它们在每个地方都有字体大小,你就会想,“哦,这里没有系统,难怪 AI 写不好,因为其中很多 CSS 都很糟糕。这让我很生气。”>> 是的。>> 你在很多项目中都会看到这种情况,尤其是>> 比如一个后端 Python 开发者构建了它,你需要一个 UI,你知道,你伸手去拿一些东西,而且它们已经存在了十年了。>> 是的。HTML 很糟糕,CSS 很糟糕。>> 是的。所以我认为,是的,我希望并祈祷一切都会好起来,尤其是随着像这些 UI 框架开始采用很多新的内置原语,你知道,这些 UI 框架不会消失,但它们将开始使用 Popover 和 Anchor,这将减少很多必要的代码,它将更具声明性。我们将使用新的 Invokers API,这可能是一个大问题,我认为这些东西会更简单,AI 喜欢漂亮、干净、声明性、简单的 UI。>> 是的,太棒了。好了,下一个问题来自 Pointy。对于一个全新的 SaaS 应用程序,你会选择一个包含所有功能的框架,比如 Laravel 或 Rails,还是选择一个极简的堆栈?什么具体的标准能让这个选择面向未来?是的,我认为大多数人会想选择一个成熟的、得到广泛支持的、流行的东西,人们喜欢并使用它。很多时候,当你构建这些堆栈时,你会想,我认识的哪个好开发者会从事这个工作,他们知道什么,他们擅长什么,让我们围绕我们最舒适的东西来构建这个堆栈。我的意思是,Rails 这样的东西肯定对很多人都有效。React 在任何节点生态系统中,你都会有各种各样的开发者可以从事这些系统。你知道,数据库技术等等。这真的取决于今天的 SaaS 是什么。所以,仅仅说对于全新的 SaaS,你不能给出一个通用的答案,因为如果你要构建 Sentry,Sentry 的数据需求与电子邮件应用程序或 FreshBooks 或财务跟踪应用程序非常不同。所有这些在他们存储的数据类型、存储方式以及访问方式上都有非常不同的需求。如果你问我个人,我正在使用 Svelte 和 Drizzle,而且我过得更好,因为这是我喜欢的堆栈,而且它不是最成熟的堆栈,但我喜欢它,所以我会选择它。我对此很有效。所以,这真的取决于你正在构建什么。是的,我选择了一个包含所有功能的元框架。我不会选择太新、太疯狂的东西。我不想花我的时间追赶更新和改变事情。但它绝对是 100% 的 TypeScript 堆栈,这样所有的类型都能流畅地流动。你不会纠结于服务器渲染还是客户端渲染。你不会在任何时候跳过这个障碍。我们将继续下一个问题,因为它有点类似。Kurt Motus 说,“你好,Wes 和 Scott。他包含了一个非常好的信息,我不会读,但谢谢 Kurt。我是一名 PHP Laravel 的开发者,过去七个月一直在深入研究我们主站的 Next.js 重写,它是多租户、多语言、某种 headless,之前是从 jQuery 背景过来的,没有 React 经验。现在我对 SvelteKit 如此着迷,并考虑终于将我乐队的网站从 localhost 上移走。>> 是的。[笑声]>> 是的,localhost 是新的车库。你知道,你只需要把它从 localhost 上移走。我用一个 headless Next.js 网站和一个 WordPress 作为 CMS 构建了一个原型。它工作得还可以。我可以创建页面,更新内容,并通过 WordPress API 拉取到 Next。但我正在自我怀疑。我感觉陷入了经典的开发困境。Next.js 对于乐队网站来说是不是有点大材小用了?像 Payload 或其他 headless CMS 会更明智吗?或者一个 repo 作为 CMS,也就是 Markdown、MDX 文件和 Git,实际上是最简单、最适合的吗?对于这样的事情,你会多大程度上依赖 Vercel 这样的平台?所以问题是,如果你今天正在为一个乐队网站构建一个带有媒体演出日期、巡演更新的网站,你会选择什么作为你的堆栈?以及你如何平衡一个有趣的开发者游乐场与简单且可持续的维护?是的。所以,作为一个拥有两个非常大的基于 Markdown 的网站的人,我自己的个人博客,大约有 1200 个 Markdown 文件。在 Syntax 网站上,大概有近千个 Markdown 文件。>> Markdown 作为>> 内容>> 作为 CMS 太糟糕了。别这么做。[清嗓子]我们只为我自己这样做,因为我希望人们能够编辑,我希望我能用 Markdown 写,我希望我能编辑它,我希望其他人能发送 pull request,出于同样的原因,我们在 Syntax 上这样做。但对于一个想要创建内容并将其发布出去并拥有漂亮 UI 的人来说,这太糟糕了,因为你必须重建网站,而且你还有所有这些奇怪的插件需要安装,而且这太糟糕了。所以,首先,别这么做。[笑声][喘气]>> 你必须通过 Git 来管理。>> 是的。>> 是的,不好玩。老实说,最好的办法是选择某种从现有 CMS 中提取内容的框架,而这个 CMS 非常好。如果你想更新你的网站,你只需登录 CMS,输入你想要的内容,发布你想要的内容,然后它就会显示在你的网站上,当你点击发布时。而且说实话,选择 WordPress 可能是个不错的选择。Payload 可能也是一个非常好的解决方案。Keystone 也在这个领域。Strappy 也在这个领域。Ghost CMS 似乎仍然很受欢迎。>> 是的,Ghost 很棒。>> 是的,我不知道我是否会把它从 WordPress 移走,因为你只需要一个漂亮的 UI 来编辑你的内容,并通过 JSON API 来消费它。而且我认为你拥有这个。我不知道你有什么问题可以通过迁移到另一个 CMS 来解决。然后关于实际的框架,Next.js 对于乐队网站来说是不是有点大材小用?我不这么认为。不。如果你需要服务器渲染,你需要所有这些东西。如果我要构建一个乐队网站,我肯定会选择一个元框架。>> 是的。比如 TanStack、Next.js、Remix、SvelteKit,你知道,Next,类似的东西。>> 如果我选择一个演示,我会选择 SvelteKit。[笑声]你知道,元框架。我不是 Next 的粉丝。所以我不会说 Next,但就我个人而言,它们现在感觉非常轻量级,你知道,Svelte 版本是 SV Create 这个东西。你得到了这个东西,你拥有了你所有的东西,然后如果你想添加,我不知道。你开箱即用地获得了 SSR,你获得了路由,>> 你不必配置路由器。>> 哦,我几乎离不开它。>> 是的。>> 是的,我肯定认为你应该这样做。你得到了一切。你得到了所有的服务器函数,你知道,比如如果你决定,哦,我确实想做一些 WordPress 之外的事情。>> 是的,你只需要放一个服务器函数进去,就可以了。>> 是的。>> 所以,是的,我认为你处于一个很好的位置。我给你的最后一个建议是,尽量让你的内容易于更新。>> 因为>> 是的。>> 当内容难以发布时,你实际上就不会发布。>> 而且我也有这个,我的博客文章。有时我想快速发布一些东西。>> 你知道,然后我只是发布到 Twitter,因为这就像,唉,我不想弄一个文件夹,为它找一张图片,写下来,>> 写下 front matter。>> 是的,是的, exactly。而且我有一些脚本让这更容易,但它仍然有点障碍。我经常想,也许我应该使用一个 CMS,或者我需要像 Tina 这样的东西,你知道,Tina CMS 是一个 headless CMS,它提供了一个可视化编辑器,但你可以用 Markdown 或其他东西来支持它。>> Tina 还在吗?>> 是的。哦,是的,他们已经完成了。他们有很多客户非常喜欢它。他们现在有 Tina Cloud。哦,你知道他们什么时候完成了,当他们有了云产品时。>> 他们有了云产品。>> 是的。[笑声]>> 好了,下一个问题来自 Matt。我应该为了更少的钱搬到另一个国家,但可能有机会吗?我一直在为一家公司做大约 7 年的合同工作,为他们的业务构建定制软件。起初我独自一人完成,但随着时间的推移,公司不断发展。在过去的几年里,又有一位开发者加入了我们。我们基本上为这家公司提供全职工作和月薪。到目前为止,这都是远程工作,我们居住的国家与公司运营的国家不同。现在,有一个机会出现了,公司希望改进开发流程中的反馈循环,并可能给其中一位给我们一个机会,让我们更接近业务并更深入地参与其中。这包括一些在办公室工作的时间,并与直接使用我们正在构建的软件的员工见面。公司已经提供了加薪来支付最初的搬迁费用,这很棒。但公司所在的国家和目前我居住的国家的生活成本差异很大。我算了一下,在支付了账单、房租和税费等之后,我实际到手的钱会比我现在作为承包商在生活成本更高的国家工作时少,这让我犹豫不决。我知道两个地方都有优点和缺点。我有一个家庭,这可能对长远来看对搬家有利,但个人而言,我很难权衡这些选择。嗯,这是一个沉重的问题。嗯,这对我来说很难,因为搬到另一个国家不是搬到另一个州。你知道,那里有很多东西。这取决于,距离。这个机会是他们可以给你一份工作六个月然后让你走吗?他们有没有任何保证会让你继续留在这里?如果你打包你的全家搬到另一个国家,你有什么保证这份工作一年后还在那里?因为如果他们把你解雇了,你该怎么办?我的意思是,你可以这样做,但天哪,这太难了。尤其是如果你要搬家,这意味着你有孩子。孩子在学校。把孩子搬到一个新的社区,新的朋友。>> 这取决于。如果为了更少的钱,如果是我的话,我可能不会搬。但如果不知道更多细节,我认为我无法给出其他答案。事实上,有趣的是,Figma 在给我提供工作时,我必须搬到旧金山,当时我还没有家庭,但我有两个狗。我和我妻子看着提供的薪水,再看看搬到丹佛这样的地方。这就像看着生活成本加上他们给的薪水,对我们来说将是相当大的生活降级。而且我们并不富裕。我的意思是,我当时在一个机构工作,年薪大约 48,000 美元。所以,这会是一次艰难的搬迁,而且这只是搬到另一个州。所以,我拒绝了,对我来说,没有这些保证,没有那些钱,如果你能得到一些保证或更多的钱什么的。我不知道。你觉得呢,Wes?>> 是的,我认为你应该让他们知道你的担忧。我也有过类似的情况。你只需要说,嘿,这就是我的想法。让他们知道有一些好处,你知道,比如如果你这样做是为了更少的钱,但你说这对你的家庭有潜在的好处。这很令人兴奋。我知道很多人都做出了这样的重大跳跃,而且对他们来说非常值得。你知道,我知道很多人都做过那种“我要去旧金山住一年半,然后就成功了”。他们找到了另一份工作。他们能够横向调动,因为那是一个更好的就业市场。你知道,这也有巨大的好处。也许你会认识一些非常好的朋友。显然,你结婚了,所以你不会认识另一个伴侣。对你的家庭有好处,这很重要。就像,就像什么好呢?>> 我知道钱少了,但如果你说这最终对你的家庭更好,这值得吗?>> 但我会直接问他们要更多的钱,看看他们怎么说。你知道,这并没有太大的坏处。他们可能会说不,你仍然回到了起点。你仍然可以决定以相同的金额做这件事,或者留在原地。但另一方面,我只是觉得,是的,我不想为了那个而搬家。我喜欢能够随心所欲地生活。>> 你是无法驯服的,Wes。>> 是的,我是一匹烈马。>> 这就是我总是告诉大家的。我是一匹烈马。>> 而且我无法被驯服。所以,一部分的我就是,唉,这取决于在哪里。你知道,我可能会搬。我们总是看那个节目《房屋猎人》。>> 你知道,那些人说,“哦,他们要搬到瑞士了。”>> 是的。>> 为了家庭,比如德州南部的一个家庭搬到瑞士。你知道,这是最疯狂的改变。他们看着像一个欧洲式的小两居室,他们说,“我们习惯了我们 7000 平方英尺的德州豪宅。”>> 是的,是的。>> 但那可能令人兴奋。对你的孩子来说,去不同的国家旅行并可能在那里建立关系,这确实令人兴奋。所以>> 我会说,去吧。>> 你总可以回来。这显然需要很多,它很有破坏性。>> 但他妈的,你知道吗?你不想在临终时说,“我很高兴我一生都安于现状。”>> 是的。你知道吗?这也不是坏建议。我有一个朋友搬到了日本,带着一个孩子,然后他又搬到了阿姆斯特丹。带着同一个孩子。>> 同一个孩子。[笑声]>> 他保留了它。>> 所以,他>> 是的。所以这是带着孩子两次搬到国外。>> 是的。>> 是的。让我们谈谈 Sentry,网址是 sentry.io/syntax。你知道,你有一个网站,你可能在写一些糟糕的 AI 生成的垃圾代码,你需要知道你的应用程序到底发生了什么,对吧?你有错误。你有性能问题。你知道,你在客户端有性能问题,比如最大的内容绘制。你有没有索引的数据库查询,它们花费了很长时间。这以前没有发生过。你需要弄清楚人们到底在做什么。你有会话回放。这个人点击了这个按钮,然后点击了这个按钮,然后他们把一个项目拖到了这里。这对于弄清楚到底出了什么问题非常有帮助。当你有一个会话回放时,你有代码覆盖率,你有 AI 助手,你有 Git 集成。>> 你拥有 Sentry 的一切。哦,日志也是。不要只是把你的日志转储到某个 txt 文件里。将它们与你的跟踪集成起来,这样当你有一个错误时,你就可以看到与该特定错误相关的日志。这是最好的。我写了一些糟糕的软件,Sentry 帮助我修复了它。去 sentry.io/syntax。它会让你免费获得两个月。使用优惠码 tasty treat。>> 太棒了。好了,下一个问题。>> 来自 Steven Higgrave 的问题。我是一名新开发者,我开始对人类可读的 Git 断点有了更好的直觉。然后,砰,Cloud Code with Zonet 4.5 在我的编辑器里。顺便说一句,那是旧的过时版本。昨天他们发布了 4.7 版本,原本的逻辑断点现在每 5 分钟就会命中 10 到 50 次。所以他说,他每 5 分钟会收到 10 到 50 次 Cloud Code 的提交。这似乎很多。>> 这似乎很多。>> 我该怎么做才能让我的提交在反思时易于理解,并对调试有用,而不用每 10 秒停下来提交一次?天哪,Stephen。你在构建什么?>> 是的。嗯,[笑声]有没有一个流程可以让 Claude 自己发起适当的提交?把这个交给 Claude 的好处和坏处是什么?是的,这有点有趣。你是让 AI 编写提交消息,还是让它在你进行时自动提交?我不知道答案,因为我最近所做的是,我会让 AI 生成提交消息,但如果它包含两件事,>> 我觉得有点模糊,因为如果是两个完全不同的功能,它们应该真的是分开的提交,你知道,而且我还没有找到一个好的方法让它提交功能,或者从所有已更改的文件中选择与该功能相关的文件,然后提交。所以,我目前一直在进行人工干预。我当然不会每 5 分钟收到 10 到 50 次提交。这似乎很荒谬。我觉得我的提交数量差不多。代码生成多一点的话可能会稍微多一些,但我只是每次我觉得我到了一个点,我就停下来。你仍然需要知道你的代码到底是怎么回事。所以,至少你应该知道提交消息应该是什么。>> 我不会把我的提交消息交给 AI,尽管有 AI 提交消息很有帮助,但即使我正在进行编码,或者让 AI 编写大部分代码,我也会阅读它。我正在阅读它。我正在编写自己的提交消息,并且我会与它来回进行。你知道,我认为你可能在这方面有点用力过猛了。我认为你可能需要更加像人工干预,因为这似乎很激烈,你是同时运行多少个代理来做这个的?>> 是的,Stephen,你还有更大的问题。>> 比你的提交消息。>> 频繁提交。是的。手工完成。是的,否则谁知道你在提交什么?那段代码是什么?>> 是的。我个人仍然在测试。我正在使用 Chrome DevTools MCP 来使用它,让它使用它。如果我真的在进行编码,我肯定不会把所有东西都交给 AI,因为垃圾进,垃圾出。绝对。>> 我发现,尤其是当文件太多时,提交消息会有点模糊。我开始注意到这一点了,你知道,就像你注意到 AI 艺术,你注意到 AI 生成的阅读。我也开始注意到 AI 提交消息了。>> 这让我对一些东西的信心降低了。在 Mac 应用方面,我也遇到了同样的情况,你知道,就像,哦,这是一个很酷的 Mac 应用,你应该下载。整个领域都被>> 比如编码的东西给毁了。现在我非常不愿意安装任何东西。>> 是的。>> 因为它就像>> 你不知道这个人是否只是把东西放进盒子里,然后它就吐出了一个 Mac 应用,>> 我觉得非常犹豫。我会在我的电脑上运行那个东西,而不是只在沙盒化的网络浏览器中运行。>> 是的,是的,我懂你。好了,下一个问题来自 Boris Beans。我 19 岁,是一名 React 开发者,所以根据 Wes 的说法,我一定是自闭症患者。Wes,你做了什么?[笑声]一年半了。我一直在一家初创公司工作了一年多。好吧,所以 19 岁,React 开发者一年半。在一家初创公司工作了一年多。有了 AI,很难不三思而后行我所追求的职业,因为到处都是关于程序员即将过时的噪音。你们认为像我这样的年轻人的未来在这个行业会是什么样的?感谢你们的时间。来自新西兰的爱。是的,就我个人而言,你无法预测未来。这些东西一直在进步。去年这个时候,我还没有进行任何编码。现在,我仍然没有在生产环境中进行编码,但我一直在为个人软件工具进行编码。而且代码很糟糕,但它们大部分都能工作。所以,这会变得更好。它会变得更好。但同时,我正在构建各种东西。我正在构建很酷的东西,而且我能够让它工作。现在,距离你说出你想要什么,然后它就能构建并完美工作,没有 bug,性能好,没有安全问题,没有任何缺陷还有多远,我不知道。但就我个人而言,我就是喜欢制作东西。如果你喜欢制作东西,那么对我来说,我认为这不是一个糟糕的职业选择。我认为进入这个行业不是坏事。但很多时候是关心你正在构建的东西,喜欢制作东西,并朝着那个方向努力,并挑战自己。但当我刚开始做 Web 开发时,你用表格来布局,你甚至不做浮动。你只是用表格来做一切。>> 是的。如果有一个行业变化如此之快,>> 24/7。所以 [笑声]就像你不会在一夜之间醒来然后说,“哦,我失业了。”你将有机会随着这个职业而发展,无论它在未来可能是什么样子。>> 我们每周都会在我们的“自带食物”节目中收到这个问题,这是三个问题之一。我年轻,我担心这是否是一个好职业。我中年了,我担心我的职业生涯的长期发展,因为 AI,或者我老了,我担心我跟不上它,因为 AI,AI 将会淘汰那些不愿付出努力的人,但在这个世界上,我们将永远需要聪明、能解决问题的人。而且鉴于你 19 岁,你正处于职业生涯的开始。如果你能以一种成为聪明人、成为问题解决者的职业生涯来塑造自己,你将永远、永远有需求。你正在解决什么以及你如何解决它将不断变化。但聪明和解决问题永远不会改变。而且,我前几天在 Twitter 上发了一通牢骚,我只是在谈论一切有多糟糕。你知道,AWS 和 Cloudflare 在一周内就出现了重大宕机。Twitter DM 无法工作。Google 推出了这个反重力编辑器,但它不起作用。一周后仍然不起作用,而且就像,一切。

看起来互联网正在经历一种“低俗化”的趋势,并且这种趋势正在显现出来。

每个人都回复说:“哦,这是氛围编码,你知道的。”

“它不是 vi,我不知道那是什么,是 AI 还是我不知道是氛围编码,我知道的是人们只是想太快地前进,因为现在很多事情都在变化,而且我知道人们不像以前那样在意了。”

“而且他们因为被裁员而分身乏术,团队也更小了。”

“是的。”

“是的。”

“而且很多很多东西都在坏掉、磨损,我们开始看到裂缝的形成。谁会来修复它?将是那些真正聪明的人。那些真正知道如何修复这些东西的人。那些不是那种已经退出并‘嘟嘟嘟’地进入盒子的人。”

“所以,如果我给你的任何建议就是,试着过一种持续学习的职业生涯,而且这不一定只是编码,但它就是,是的,在我的人生中进化。我一直在学习所有新东西,你知道的,并且开始涉足电子产品,涉足圣诞灯,涉足烘焙,涉足,你知道的,就是所有不同的领域,不断学习。”

“是的,你说得太对了。就是不断学习,因为无论如何,即使没有 AI,十年后的这个角色也会与现在完全不同,无论如何。所以,是的。”

“而且说实话,你还能做什么?现在每个其他行业都面临着同样的‘可怕’,无论它是否真的会成功。你知道的,比如 AI 现在很擅长总结 Reddit 帖子和生成一些 React 组件,但它真的会取代电工吗?你知道的,那些会折叠我们衣服的机器人真的会变得更好吗?我不知道。呃,如果它们真的变得更好,那将是太棒了,但你从人们那里听到的大部分关于一切都多么美好的话,尤其是在 Twitter 上,这些人是被收买的。我每天都有这些人给我发邮件,出价数千美元让我发一些关于他们 AI 的好话。因为现在有很多钱在里面。所以,不要相信你看到的一切。”

“是的,会有赢家和输家,现在中间有很多争斗。是的。”

“[笑声]”

“加拿大 Trav 说,最好的做法是备份。万圣节过后,我意识到我没有最好的备份系统。哦,[笑声] 不。”

“[喘气]”

“我有音乐和屏幕录制视频等大文件,占用了大量空间。嘿,我们也是。嗯,既然你们经常处理大文件,我希望你们能提供帮助。我想知道你们建议使用哪些工具、工作流程和实践以及其他东西来建立一个好的系统。特别是,我有一个关于如何在以下情况下设置自动备份的问题。所以,在我回答这个问题之前,我们会快速回答,但我们将在下周左右做一个关于本地服务器和 NAS 的完整节目。敬请关注。它即将推出。所以,对于技术人员来说,备份代码以及个人和业余项目的更大文件。所以,对我来说,这一切运作的方式是,你应该假设在任何时候你的电脑和/或你存放备份的地方都会消失。”

“嗯。”

“而且你应该能够从中恢复。所以,这意味着你应该有本地自动备份,这样恢复起来又快又方便,但也要异地备份。所以,对我来说,我使用时间机器来不断备份我的整个电脑。然后我还有我的电脑运行 Backblaze,它会不断地镜像到云端。所以,如果最坏的情况是我的笔记本电脑和我的备份硬盘都消失了,那么我仍然能够,虽然会很麻烦,但我仍然能够从中恢复。”

“是的。不,我同意。对我来说,我认为备份东西需要在你没有意识到的情况下发生。”

“是的。”

“因为如果你的流程真的太繁琐或手动,或者任何事情,你知道的,我一直很喜欢时间机器的 Apple 备份,但它会坏掉,然后我就会停止使用它,然后它就会,因为它不,是的,所以某种自动化流程真的很好。我以前用 Carbon Copy Cloner 来做我驱动器的全盘自动克隆,这是一个很好的小应用程序。但是,是的,让这个过程自动化。我实际上也没有一个好的流程。所以,我正在听。”

“嗯。是的。”

“所以,我有一个时间机器,我尝试过在本地服务器上进行时间机器备份,但它总是会坏掉。所以,现在我只是在我的桌子上放了一个硬盘,我把它插上,但即使这样,我也经常忘记插上它。所以,这就是为什么我喜欢 Backblaze,因为它一直在我的电脑上运行。它很难退出。你只能暂停它几十分钟或几个小时,在我们录制的时候,然后它就会自己恢复,它好几次救了我的命。”

“所以,这是个人的。然后第二个是关于家庭的,对于不太懂技术的人来说,他们想备份照片,他们有很多照片、文件和其他重要的事情需要备份。我该如何实施一些东西来给他们一些保护和冗余?因为如果他们被锁在 iCloud 之外,或者拍了一张不在云端上的照片,它可能会永远丢失。这也很棘手,因为无论你多么努力地向家人宣传这些东西,如果他们不懂技术,他们就不在乎。你知道的,你在 Facebook 上经常看到。我丢了手机。给我发你们的号码。哦,你只是,或者,“哦,天哪,我在杂货店丢了手机。上面有我所有的家庭回忆。”“哦,你没想过这个小小的长方形里装着你曾经珍爱的一切可能会丢失。你可能会把它弄丢。”

“是的。”

“是的。但这就是为什么,无论我多么讨厌 iCloud,我多么讨厌它,因为它就像一个黑帮,你知道的。他们每五秒钟就说,哦,你没空间了。备份至关重要。这就是人们唯一会做的事情。但我的家人,我有一个东西运行在我的 Synology 上。它是 Synology Photos 应用。”

“是的。你喜欢它吗?”

“然后它,是的,它很棒。我不用它来搜索和查看。我用 Google Photos 来做这个。是的。”

“嗯,但我知道 Google Photos 可能会出问题,或者它可能会因为某些原因被锁定。所以,很高兴知道我们有我们所有照片的本地二次备份,你知道我讨厌 Synology Photos 应用,我不知道这是我的问题,它不仅仅是备份。你必须运行备份。你必须说在后台运行备份,我从来没有成功过。然后,我就会去 Synology Photos,它离我的 Google Photos 的日期很远,因为我用 Google Photos,因为我们以前用 Android。所以,它就像被锁定在 Google Photos 里了。但仍然,就像,如果你能做到,你也能做到。Synology Photos,不要让我进入某种专注的备份模式。”

“是的,我认为这与你不够经常打开它有关,如果你几周没打开它,就像我的 Google Photos 有时会这样,当我打开它来搜索一张照片时,我说,“哦,它已经有三周没备份了。”这只是因为我没打开它。所以,是的,确实需要一种更好的方法来做到这一点。我应该检查一下。我的孩子们也在 iPad 上,因为他们有一个 2MB 的 iPad,这是 Apple 的默认设置。然后他们拍一个视频,然后他们总是因为 iPad 没空间而生气。而且所有的应用程序后面都有那个愚蠢的小下载图标,因为它会卸载应用程序。我讨厌那个功能。但你不行,他们没有什么可以管理的。但他们有大约 9GB 的 Roblox 存储在某个地方,但你不能删除它。没有删除它的工具。这让我抓狂,我讨厌 Apple 和他们的存储。”

“是的,这很糟糕,而且一直都很糟糕。我记得,他们只是想让你使用云服务。只是付钱。是的,只是付钱。”

“不是专门为开发者准备的,而是为客户、朋友或经营小型非编码业务的人提供的建议。有什么解决方案?我运行一个 Synology NAS,然后那个 NAS 备份到 Backblaze B2。所以,我会做的是,我会拍一个视频项目。就像昨天,我们录制了大约三个小时的视频,对吧?所以,那是,我不知道,大概 60-70GB。然后我就会把它拖到我的 NAS 上。我会按住,是什么?Command 键。然后它就会,一旦它传输到 NAS 上。它就会从你的电脑上删除。然后它会自动备份到 Backblaze B2。这样我就知道,好吧,好吧,我有两份副本。你知道的,我有本地版本。我有远程版本。”

“如果你从 NAS 上删除了东西,它会自动删除吗?因为我有很多视频,我最终会删除项目文件。我前几天把我的 16TB NAS 视频都装满了。”

“我还没有删除任何东西,但它,它,它,它就像任何 blob 存储一样,如果你更改文件,它会保留旧文件和新文件的副本。所以,我假设如果你删除了它,它就不会,因为这就是备份的全部意义。所以,你可能需要明确地进去并从你的 Backblaze 中删除该文件,或者它会删除它,如果你一年左右不使用它,我应该去看看,但我还没有,我有一个 16TB 的 NAS,我想我没有,不是所有这些都备份了,比如镜像,不是我的电视节目,而是我所有的视频和家庭。”

“你对你的盗版媒体有什么看法,Wes?”

“是的。[笑声]”

“是的。然后是敏感文件,比如密码管理器、恢复码、密钥、亲密照片或医疗信息,你可能没有安全地保存,但又不想让它们随意放置。哦,还有一件事我应该说,比如 Dropbox 我仍然为 Dropbox 付费。Dropbox 仍然很好,尤其是 Google Drive。所以,是的。”

“是的,也许我应该换到那里。我反正也在付 Google Drive 的钱。恢复码是个好东西。嗯,把它放在防火的地方。有些人喜欢去银行保险箱。有些人喜欢在家里买一个防火保险箱。”

“我要为我的脚的照片买一个防火保险箱。”

“为你的脚的照片。是的,我准备好了那些照片的副本,如果有人想要的话,告诉我。”

“嗯。”

“必须把它放在防火的东西里。[笑声]”

“医疗信息,我不知道。我没有亲密照片。如果有人在找那些。医疗信息,我只是把它放在我的电脑的常规文件里。那个驱动器是加密的,所以我不太担心。”

“是的。而且如果你有 Synology,你实际上也可以创建一个加密文件夹。所以,任何文件,你可以说这是一个加密文件夹。然后每次 Synology 挂载时,它都会挂载未挂载。你必须手动解挂它,用你的加密密钥。所以我这样做是为了我的,嗯,我的医疗文件之类的。所以,嗯,你知道你不想,有人拿到驱动器,他们就有所有那些东西,你的税务文件和任何那些东西。所以,只是把它放进去。制作加密很容易。虽然每次解密都很麻烦。我曾经想写一个脚本来自动解密它,做这个做那个,然后我想,嗯,那有点违背了初衷,我想。”

“是的,这很烦人。这是因为我的电脑一直挂载着它。”

“这会很烦人,即使我们的门铃也是这样,它是本地加密的,每次我打开门铃应用程序时,它都会解密,然后我说,我真的在乎亚马逊的送货员被加密了吗?是的,你知道的,我有点希望这能更快。”

“是的。你知道吗?[笑声] 在 Mac OS 中,你也可以创建一个加密的磁盘映像。所以,你可以从磁盘工具中创建一个磁盘映像。你可以设置它的大小,并用密钥进行加密,然后它就像一个磁盘。”

“我的整个电脑都是加密的。你知道的,如果你把硬盘从我的电脑里拿出来,你就读不了。”

“我只是说,如果你想有一个加密的文件夹来存放你的税务文件,你可以创建一个磁盘映像,让它加密,然后把你的东西拖进去,然后你可以像对待普通文件夹一样移动它,在任何你有密钥的地方打开它。我不知道你是否可以在 iOS 上打开它,但我还没试过。”

“好了,让我们进入下一部分,也就是‘酷炫的推荐和无耻的宣传’。我要推荐一套乐高。这有点奇怪,但当我长大的时候,乐高,我不知道有没有套装,或者我没有套装,但对我来说,乐高就是你有一堆积木,然后你做一个金字塔,对吧?”

“是的,他们会有小套装。”

“是的。但是,我的儿子越来越喜欢乐高,他喜欢在圣诞节或生日时收到一套。所以,我们最近收到了乐高圣诞老人,它大概有一英尺高,有 800 块左右。他正在看书,但我说,‘我们来看看乐高应用程序有什么。’令人难以置信。乐高应用程序,它用,我想是新的乐高步骤,它会展示每一个步骤的 3D 模型。它会突出你正在处理的零件。它会动画显示你需要按压的方向。你可以随时围绕模型进行平移,以提供上下文。你知道的,当你看着乐高时,这很令人沮丧,你必须把它翻过来,你想,方向是哪个方向?”

“有一个大屏幕,然后你只需点击下一步,下一步,下一步,你就可以直观地看到你现在的位置,这非常好。我发现这非常有帮助。而且,据一位 Instagram 用户告诉我,你可以一起做。所以,如果你收到一套非常大的乐高,你可以让两个人同时处理乐高套装的不同部分,然后它可以,它们可以通过你的账户相互连接,你可以,有点像跟踪你的进度,说,‘好吧,我正在处理这个部分,你处理那个部分。’”

“是的,看看乐高应用程序。”

“我喜欢那个小小的,我喜欢那个应用程序里的很多东西。Landon 也在做同样的事情,他现在已经装满了乐高箱子,即使他曾经有过套装。所以,现在回去建造他拥有的东西,比试图找到说明书要方便得多,找到那本小书。而且,我们在旧货店找到了一个丰田 Supra 和一些兰博基尼的老款。嗯。而且,它们都完成了,但每辆车大约 10 美元,我想,我们必须买下它们。所以,我们把它带回家,我们想,我们没有说明书,但后来意识到,哦,你只需要使用乐高应用程序,然后就可以通过说明书来完成。令人难以置信。”

“单词。是的。”

“非常酷。我知道听这个节目的人会说,你是个白痴 Wes。乐高一直都是这样做的,但我最近才开始接触。[笑声]”

“祝福,刚开始玩乐高。是的。我要推荐灯泡。LED 灯泡,特别是。当你涉及到调光时,它们可能会出现各种问题,无论是闪烁还是刷新率,或者发生了什么。这是一个疯狂的世界。这是一个疯狂的世界。这些是我找到的最好的灯泡,它们是飞利浦 LED 超高清灯泡。我刚买了一套新的,我到处都用它们和我的 Lutron 调光器一起使用,它们就是好灯泡。所以,如果你正在寻找不差的 LED 灯泡,飞利浦 LED 超高清灯泡很好。”

“我们搬进房子时,我们换掉了所有的,嗯,射灯,因为以前的房主把冷白色灯泡装得到处都是。冷白色。是的,你必须,你必须用暖白色。所以,我们把它们都换了,它们很贵。光,好的灯泡非常非常贵,便宜的灯泡很糟糕,因为它们只能用大约六天就得更换。所以,我学到的是,你必须为飞利浦灯泡花钱,不要再折腾了。”

“是的。”

“是的。是的。我一直在考虑把我们的浴室也改成冷白色,因为每次你去酒店,浴室都是冷白色,它们非常明亮。你可以看到你皮肤上的所有瑕疵,或者别的什么。嗯,我们的镜子是冷的,但其他的都是暖白色的。我喜欢整个房子都是暖色调的。 Courtney 说这让它感觉像个洞穴,但我喜欢洞穴房子。哦,不,你明白了。据我所知,在像加勒比海这样的炎热地区,他们更喜欢冷白色。所以,但对我来说,这是一个危险信号。你知道的,你走进别人的房子,他们开着非常冷的白色灯。我喜欢这样,随着夜晚的推移,即使我没有很多多色灯泡,我也喜欢灯光变得更暖和。我喜欢它变得更暗,你的眼睛正在慢慢适应,并且随着时间的推移而减少。是的,非常喜欢。”

“感谢收听。下次再见。和平。”