与 Mina Markham 一起 Smashing Podcast 第 18 集:我如何学习 React?

已发表: 2022-03-10
快速总结↬在本期 Smashing Podcast 中,我们正在讨论学习 React。 React 喜欢使用什么,有经验的开发人员如何开始? 德鲁麦克莱伦与米娜马克汉姆聊天以找出答案。

在 Smashing Podcast 的这一集中,我们谈论的是学习 React。 React 喜欢使用什么,有经验的开发人员如何开始? 我和 Mina Markham 进行了交谈以了解情况。

显示注释

  • 米娜马克姆在推特上
  • 米娜的个人网站

每周更新

  • 使用 FaunaDB 从静态站点到最终用户 JAMstack 应用程序,作者:Bryan Robinson
  • 您的网站是否给访问者带来压力? 苏珊娜·斯卡卡
  • Mirage JS 深入探讨:了解时序、响应和直通(第 3 部分) 作者:Kelvin Omereshone
  • 使用 React 构建面部识别 Web 应用程序 Adeneye David Abiodun
  • 使用 Vue I18n 插件在 Vue 中实现国际化 作者 Timi Omoyeni

成绩单

米娜马克姆的照片 Drew McLellan:她是一名前端架构师、会议发言人和组织者,以及设计系统的爱好者。 她为希拉里·克林顿 (Hillary Clinton) 的希拉里 (Hillary Clinton) 的美国总统竞选活动在 Pantsuit 专利库中所做的工作标志着该行业内设计系统的分水岭,并在 Wired、Fast Company 和 Communication Arts 等出版物上发表。 像我们许多人一样,她以编写代码为生,目前是 Slack 的高级工程师。 所以我们知道她是一位才华横溢且具有前瞻性的开发人员,但你知道她曾经被误认为是 Patrick Swayze 吗? 我的粉碎朋友,请欢迎米娜马克汉姆。 嗨,米娜。 你好吗?

米娜马克汉姆:我太棒了。

德鲁:很高兴听到。 现在,有时在 Smashing Podcast 上,我们会与人们谈论他们最知名的主题。 有时谈论一些有点切题的事情很有趣。 现在,我可以整天和你聊模式库、设计系统、你在那个特定领域所做的令人惊叹的工作,我可以和你谈谈你可能谈论过的主题、事件,比如事件除此之外,艺术指导之类的事情。 在奶牛回家之前,我们显然可以谈论 CSS。 但是你几天前发了推文,我意识到我们实际上是在同一条船上,因为我们都是经验丰富的前端工程师,而且我们最近都开始使用 React。 所以在我们讨论 React 本身之前,你是从哪里来的? 您是否一直在使用其他库和框架进行 JavaScript 开发?

Mina:不,实际上我已经有一段时间主要在做 vanilla JavaScript 了。 在此之前,我当然接触过 JavaScript。 让我重新表述一下。 我开始使用 jQuery 处理 Java 脚本,因为它对我来说最有意义。 这对我来说很容易解析以弄清楚发生了什么。 然后从那里我回溯到只做香草、纯 JavaScript、ESX,而且我并没有真正深入到框架之战中。 我没有,就像我没有最爱一样。 我在战斗中没有狗。 我当时想,“对你来说,React,随便。 我真的不在乎。” 但时代变了。

Drew:以这种方式使用 vanilla JavaScript,因为我自己也做过很多这样的事情。 我使用过各种框架。 过去我用 jQuery 做了很多。 我使用 YUI,Yahoo 用户界面库。 你有没有感觉到 React 的架构试图解决的许多痛点?

米娜:我想我从来没有。 我职业生涯的大部分时间都在制作网站,而不是 Web 应用程序之类的东西。 所以我所做的一切在某种程度上都是静态的。 所以我从来没有真正需要处理状态管理,诸如此类的事情。 因此,React 试图解决的痛点从未真正应用于我所做的工作。

Drew:总的来说,到目前为止,您使用 React 的项目的性质是什么?

Mina:这实际上只是我目前正在从事的一个项目,我不能透露太多细节,因为上市公司和所有这些好东西。

德鲁:当然。

Mina:但本质上我想要做的是我正在尝试使用 React,它是一种非常互动的产品,我需要人们能够输入并以某种状态保存数据,然后对其进行操作和用所述数据生成其他东西。 这只是当时它不是简单的 DOM 操作。 它确实是更复杂的前端数据管理和管理所述数据的状态。 因此,除了使用某种试图解决该问题的库之外,确实没有其他选择。 我知道我无法仅仅使用纯 JavaScript。 我考虑过可能在服务器端处理一些事情,但同样,由于我正在使用的交互性非常强,它需要在客户端中。 所以我们已经在 Slack 使用 React 来处理其他各种事情。 所以我想,“好吧,我们应该继续采用与公司其他母公司正在使用的相同的东西,然后从那里开始。”

Drew:对于人们选择 React 来说,我似乎总是感到痛点的一件事是掌握让事情正常运行所需的工具链,Webpack 显然是房间里的一头大象。 如果您有幸让队友为您做这些,您是否必须对工具链进行很多配置或像我一样?

Mina:哦,我喜欢 Slack 的基础设施团队的数据。 Slack 的前端基础架构团队处理了所有这些。 我不必考虑。 太棒了。 因为我过去曾尝试学习 React。 通常,我最好的学习方式是实际工作和实施。 早在 2016 年,我们就使用 React 构建了很多 hillaryclinton.com。所以我并不是从未与使用它的人合作过。 只是我的工作从来不需要我直接参与。 但是那个代码库非常复杂,非常复杂,发生了很多事情,如果你还不知道 React 和 Redux 以及所有这些是如何工作的,那么尝试学习那里的任何东西都会有很大的门槛,我没有。 所以我在那种环境下的学习效率并不高。

米娜:幸运的是,在这里我确实有人喜欢带走一些复杂的部分。 我根本不必担心 Webpack 配置。 那已经设置好了。 这已经过试验和测试并准备就绪。 我在一条类似的船上,除了 React 之外,我们还使用 Redux,我没有意识到这是两个不同的东西。 我不知道哪个部分处理了哪个。 进入这样的代码库,有点迷失方向,因为我没有意识到它们都是一样的。 我有一些经验丰富的 React 开发人员告诉我,“哦,我们也在使用 Redux,如果你从头开始,这会让你更难真正了解 React all 能做什么。” 我从来都不知道他们的意思,因为我不知道他们在说什么。

Mina:为了回答你最初的问题,我仍然有一点入门障碍,因为这不仅仅是学习 React。 我必须学习 React 以及如何使用 Redux 商店。 所以这两件事同时可能有点多。

Drew:是的,我发现现有代码库中的内容与我的第一个使用 Redux 的 React 项目完全相同。 而且我认为这些技术在它们年轻时的本质是,它们迭代非常快,并且在某个时间点的最佳实践,6 个月后已经发展,并且有一种不同的做事方式。 当你有一个跨越多年的代码库时,你有时可以在其中有不同的实现方式。 它并不总是保持同步。 当然,如果您正在学习教程或其他任何东西,您正在阅读书籍,您正在使用资源,它们将是最现代的如何做事的版本。 当您查看现有的成熟产品时,这并不一定与您所看到的一样。 这是您经历过的事情,还是您设法使您的代码库真正保持最新?

Mina:我认为这是我一直在经历的事情。 当我尝试自己学习如何做 React 时,我查看了各种教程之类的东西。 而且我注意到,或者至少有人告诉我,曾经和我一起工作过的人告诉我,我们所做的一些事情或某种反模式,或者不是现在的工作方式,因为这个代码库有点,很好成熟的我们相对,但它是几年前的。 因此,我认为有些方法比我们目前的做法更容易,因为这是几年前写的。 所以它有点像跑步机,试图跟上当前的时代并确保我想以最好的方式做事,但我也不想破坏已建立的代码库,因为我想玩弄一些东西。

Drew:很明显,像你我这样的人正在使用 React 的事情之一,与 JSX 的整个事情一样感觉有点不和谐。 你在你的项目中使用 JSX 吗?

米娜:我们是。 我正在使用 JSX。

德鲁:你接受了吗?

米娜:每次打开这些文件时,我都会像死去的一小部分一样倒下。 将我的 HTML 放入 JavaScript 文件仍然感觉是一种亵渎。 我知道这是一种革命性的意义,但我觉得我正在将我的标记写在一个 JavaScript 文件中。 我已经和它和平相处了,但每次我这样做时,我就像,“……” 分离问题,这是一回事。 我想要它回来,拜托。

德鲁:这是一个有效的观点,不是吗? 我开始更认真地使用 JavaScript 时的背景,这可能是我回到雅虎的时候,事情非常依赖于服务器渲染 HTML 页面的模型,然后采用渐进式增强方法,将 JavaScript 分层以增强界面。 如果接口中某些东西的状态需要改变,你的代码必须知道它需要更新的接口的所有部分,这显然会导致你采用一种紧密耦合的方法与你编写的代码所在的这些大的整体视图需要了解它周围的所有其他代码。 而且我想这并不适合您在使用模式库或设计系统时采用的组件化方法,这更适合您的特定专业领域。 我想,React 更适合这种方法,是吗?

Mina:我认为确实如此,尤其是能够将非常特定的 CSS 耦合到一个 JSX 或一个 React 组件。 因此,它可以更容易地分离或只获取库所需的内容并留下其余部分,而模式库或设计系统试图只使用一个大样式 CSS 文件或类似的东西来做更单一的事情,这确实使它变得非常困难。 你必须全盘接受或一无所有。 所以我很欣赏 React 允许我们做更个性化、更组件化的开发方式,即使我仍然希望有一种方法可以让我真正将我的表示层和我的内容层与我的交互层分开。 但也许这只是我在这个意义上有点老派。

德鲁:我确实感觉到那里的痛苦。 这个想法是,如果我错了,请来纠正我,我的理解是,不是分离技术、CSS、JavaScript 和 HTML,而是分离功能。 所以作为一个组成部分的一切都存在在一起-

米娜:是的。

Drew: ……我想如果那个组件不再需要的话,这很有用。 您可以将其删除,然后它就消失了,并且不会在您的应用程序周围留下足迹。 不过,CSS 并非总是如此。 你是如何通过 React 使用 CSS 的? 你看过样式组件之类的东西吗?

米娜:不,我们没有。 我听说过 styled-components,但老实说,我从来没有真正彻底地研究过它们。 因此,我们使用 React 处理 CSS 的方式是编写 Less,我们只需将一个 Less 文件附加到每个单独的组件上,这些组件将被导入到该组件中。 然后它通过 Webpack 绑定并提供给客户端。

Drew:您是否使用像 BEM 之类的系统来转换命名空间?

米娜:是的。 我们使用 BEM 进行命名空间,尽管对它的遵守程度会因编写者的不同而有所不同。 但是我们尝试使用 BEM 命名空间模式,以便更清楚地了解每个单独的类和组件的用途。

德鲁:这对你来说似乎成功了吗?

米娜:我想是的。 有时它有同样的老问题,我有时不知道如何命名。 一段时间后,日常的事情对师父来说一直而且永远都是一件困难的事情。 所以这是我唯一遇到的问题是我有时不知道我应该如何称呼一个特定的组件。

德鲁:当然。 那是一场持续不断的战斗,不是吗,如何出名?

米娜:是的。

Drew:我总是在开发一个新功能或类似的东西时结束,你给一个组件和所有的类和所有东西都命名为该功能目前的名称。 然后,当您开始发布时,它已被重命名为其他名称。 因此,您在代码中引用了旧名称,并且接口具有新名称。 和 …

Mina:我总是尝试根据功能或用途来命名事物,而不是更短暂的事物,因为这个组件的实际用途不太可能改变。 我忘了提,但除了使用 BEM,如果你熟悉的话,我想我们还会使用 BEMIT。 它基本上是由 Harry Roberts 创建的 ITCSS 和 BEM。 所以我使用匈牙利符号来表示某个东西是否是一个组件,相对于一个布局对象,还是一个由多个组件组成的更大的模式。 然后从那里我们使用 BEM 约定来表示块元素等等。

Drew:您是否不得不对代码库中的组件和事物进行大量重构和删除,并且不得不处理 CSS 被抛在后面的问题?

米娜:是的。 所以我工作的非 React 部分,维护 slack.com 就是一堆为 CSS 编译的 Less 文件。 而且我向你保证,那里有很多僵尸代码,因为在我去过那里的时候,我们肯定会重复很多东西。 与重新设计页面或其他内容相比,我们并不总是有时间回去进行清理。 所以审核过期了,我会这么说。

Drew:这是我们刚刚在我们的 React 项目中看到的东西,看看我们如何处理 CSS。 目前,我们有一些用于整个应用程序的大型全局 CSS 文件,我们确实遇到了这种情况,我们的包大小只是在增长,不断增长,不断增长,并且永远不会变得更小,即使事情确实变得更小了删除。 所以我们一直在研究样式组件,Tailwind 也是我们正在认真考虑的另一个选择。 你看过顺风吗?

米娜:我没怎么看。 我一直对它很好奇,但同样,我从来没有真正有时间深入研究它是否是我想尝试将其引入我们的代码库的东西。

德鲁:我实际上很惊讶,因为和你一样,我对如何做这些事情有点老派。 我喜欢很好的关注点分离。 而且我喜欢用 CSS 编写我的 CSS,当然,使用 Tailwind 的方法是你拥有所有这些类名,感觉有点像你正在应用的内联样式。 如果感觉很脏。

米娜:是的。

Drew:我在团队中自愿加入,我们每个人都使用一项技术来调查它们是否适合我们的问题,我自愿研究 Tailwind,因为我绝对确定我会讨厌它。

米娜:不,不。

Drew:但事实证明,我实际上认为它解决了很多问题。 我印象非常深刻。

米娜:是的。 我有一种类似的思维方式,因为过去我更愿意让一个类包含特定组件所需的所有样式,而不是像我相信 Tailwind 那样为每个属性做一个类或类似的语言。 出于类似的原因,感觉就像,“好吧,我现在只是在运行内联 CSS。 我为什么要这样做?” 但随着我越来越多地开发,在我们的 Slack 设计系统中,我创建了一堆我称之为实用程序的类,它们可以做一些事情,比如为模式添加一点边距。 我注意到,除了组件类之外,我越来越多地使用这些类。 所以我想,“好吧,也许我应该重新审视这一切,将 CSS 作为一个声明一次。” 我不知道我是否会走那么远,但这绝对值得考虑。

Drew:就瘦客户端和胖客户端解决方案之间的趋势而言,计算似乎发生了翻天覆地的变化。 我们从带有终端的大型机开始,然后是带有 Windows 和 Office 以及所有这些大型应用程序的 PC 时代。 他们都变得非常慢,然后网络出现了,那只是一个浏览器,所有的工作都在服务器上完成。 这一切又变得又快又快。 现在我们又回到了将所有工作放回浏览器中,一切都使用 JavaScript 完成,比如 React 和 JAMstack 方法,我们回到了一种胖客户端。 我有时担心我们对浏览器的要求太多了。 这是一个错误吗? 我们是否对试图在 React 中做所有这些事情的浏览器提出了太多要求?

米娜:我想说是的,但我再次警告说,我的经验在很大程度上包含在大多数静态网站中。 我不做很多产品开发。 所以也许在那个领域,这更有意义。 但从我的角度来看,当我们只需要一把黄油刀时,我觉得我们很多时候都在使用斧头。 我不知道为什么我们需要将所有这些都放在浏览器中,给客户端带来如此多的工作和如此大的压力。 我觉得我们可以更简单地做到这一点。 一件事总是让我对使用 React 有点犹豫,或者我说犹豫,但是当它让我发自内心地愤怒并且我积极反对时,我的意思是当我去一个网站时,实际上什么都不会呈现,因为那里是一个错误还是什么,比如,“真的吗? 整个页面都坏了是因为一个功能坏了吗?”

Mina:这让我很恼火,很多时候这是一种全有或全无的方法。 我过去在 AEA 和其他地方的演讲之一是讨论如何包括渐进增强,而不仅仅是你的开发,还有艺术指导和网站设计。 我会特别指出一些没有进行渐进增强或任何优雅降级的网站的例子。 就像您在浏览器中运行 JavaScript,或者您一无所获。 它就像一个简单的网站,代表关于网页设计历史的信息,这是实际谈论的网站之一,从 1990 年到现在的网页设计历史。 这是一个漂亮的网站,有很多时间线和动画。 但它也可以只用一个列表静态呈现。 在什么都不展示和展示精美增强的体验之间有一些步骤,我认为由于我们现在接近现代 Web 开发的方式而迷失了这些体验。

Drew:那么你会说绝对有一些类别的项目适合像 React 这样的解决方案,还有一些确实不应该使用它,你应该使用更传统的方法?

Mina:我认为如果你的网站特别是静态的,它只是提供信息,我想我不明白为什么你需要像 React 这样的项目来渲染除了 DOM 操作之外没有很多交互的东西. 我想我看不出你从中得到什么好处。 同样,我可能没有从事适当的项目。 我可能不仅看到或发现了这个用例,但我很难看出它是否只是静态站点,呈现内容,没有很多交互,除了操纵的 DOM 和做动画之外没有很多交互。 我看不出拥有一个 React 库如何帮助你实现这个目标。

Drew:这很有趣,因为我说得还不错,因为我没有实际使用过它,但我看到很多 Gatsby 项目,而且 Gatsby 是一个使用 React 前端的静态站点生成器。 我看到所有可用的主题和东西的例子都是基于内容的网站,或博客,一个食谱网站,一个投资组合,等等。 而且我认为实际上这不一定适合 React 之类的东西。 为什么不是静态渲染然后逐步增强?

米娜:是的。

德鲁:这不是软件。

米娜:是的。 我也没有真正使用过盖茨比。 我听说过很多关于它的好消息,但这可能是我想到的例子之一,“好吧,我想我只是不明白为什么这个工具对于完成这项特定工作是必要的。 ” 再说一次,我不知道。 也许这只是因为更多的人在编写新的东西时更愿意用 React 编写,而且它只是提供了一种工具来满足人们所处的位置。 我听说过关于使用 React 的静态站点生成器的很棒的事情,但我不会立即说“哦,这很有意义”。

德鲁:在我们所谓的网站和你可能称之为网络应用程序之间似乎一直存在着这场战斗。 两者之间的鸿沟似乎越来越大,越来越宽,越来越宽,而渐进式增强方法试图通过采用静态内容并添加 JavaScript 和添加交互性来弥合差距。 似乎 React 之类的东西非常适合您在浏览器中运行的软件。 你同意吗?

Mina:我绝对同意这一点,因为感觉它就是为那种环境而建的; 它是为运行软件而构建的。 它是由 Facebook 为 Facebook 构建的。 所以它是为产品而构建的。 它是为在浏览器中运行您所称的任何网络应用程序而构建的,而不必像我提到的那样,用于我习惯做的工作类型。 所以我认为在这些场景中,如果你正在构建一个更复杂、更复杂的软件,并且打算在浏览器中运行,那么使用它肯定很有意义。 但是如果你正在建立一个营销网站或其他什么,我想我仍然很难理解为什么它在那里是必要的。

德鲁:那么我们是否允许人们仍然建立体面的、静态渲染的网站?

Mina:我希望看到更多这样的事情发生。 我觉得这有点迷失了,它有点迷失了,如果它曾经很酷或其他什么。 我觉得我们已经失去了 Web 开发的那一部分。 太有趣了:你和我都说我们有点老派,我笑了,因为我实际上已经做了六年的网络开发了? 我怎么老学校了? 对我来说没那么久。 然而不知何故,我是不喜欢新的和闪亮的东西的老守卫的一部分。 我不明白。

Drew:所以事实上,在你成为 Web 开发人员的整个过程中,React 就已经存在了。

米娜:也许我只是有一个老灵魂。 我不知道。

德鲁:我认为可能是这样。 我没有亲自看过,您可以使用 React 应用程序采用服务端渲染方法。 你经历过这些吗?

米娜:我没有经历过。 我为我目前正在从事的项目简要研究了它们,因为我觉得有些操作在服务器上比在客户端上运行得更好。 但我认为由于我的知识有限,而且代码库比我能理解的要复杂一些,我不太能够弄清楚如何使这部分工作。 我很想最终弄清楚它,但我花了一天时间来研究它。 我当时想,“你知道吗? 我不是在摸索我需要的。 所以我只会后退并采取不同的路线。”

德鲁:是的。 我想我们都去过那里。

米娜:是的。 我走了一条路。 我当时想,“哦,这是黑暗和可怕的。 让我们反过来。 我们反过来吧。”

德鲁:远离代码。

米娜:是的。

Drew:所以到目前为止,你对 React 的态度非常圆滑和礼貌。 我感觉到表面下有点紧张。 快点。 告诉我们你的真实感受。

Mina:我一直很有礼貌和外交,主要是因为 Reacts 的粉丝群有时会有点刻薄,我宁愿不要他们来找我。 所以拜托,React 很棒。 太棒了。 将它用于您想要使用它的目的。 我开玩笑,但即使是你在这个播客开头提到的那条推文,我认为你所说的是我不讨厌它。 我不喜欢它,但我不讨厌它。 即使是那个声明,我也得到了人们,没有尖酸刻薄,但更多的是他们准备好跳到防守中说,“嗯,我喜欢它,因为 X、Y、Z。” 我想,“我没有说这很糟糕。 我只是说我对整个事情都没什么。” 但显然,我是不行的。 我必须爱它。

米娜:所以这就是为什么我可能比平时更圆滑一些,只是因为我不希望人们认为我在说坏话,因为我不是。 它在更多的 Web 开发中占有一席之地。 它有一个功能。 它很好地完成了它的工作。 人们喜欢它。 到目前为止,这不是我曾经拥有或想要使用的工具。

德鲁:是的。 事情会变得非常部落化,不是吗,人们觉得他们必须站在一方或另一方,而你要么绝对支持某事,要么绝对反对某事? 而且我不确定它是否有一个好的目的,我认为它不会真正推动我们作为一个行业和一个社区来做到这一点。

米娜:是的。 这真的很奇怪。 仅从社会学的角度来看,这很有趣,但观察起来往往真的很奇怪。 就像我不能像我说的那样对某些事情保持中立。 我必须有一个强烈的意见,那就是我认为不健康。 什么是“强烈的意见,松散地持有”? 这就是我做事的方式。 我对某些事情感觉很强烈,但并不是你不能改变我的想法。 我觉得有些人,他们的身份被包裹在它的某些方面,如果你不是为了他们选择认同的任何东西,这是个人的轻视而不是公正,我不在乎这个特定的话题,或工具,或任何东西。

德鲁:是的。 我不知道这是否因为我们都倾向于在堆栈的特定部分更加专业化而变得更糟。 我知道有些人是 React 开发人员。 他们会称自己为 React 开发人员,因为这就是他们的工作内容。而且他们不一定会编写任何普通的 Java 脚本,也不会使用 Vue 或其他任何东西。 React 是他们的世界。 所以我想,说“我不喜欢 React”几乎感觉像是对他们整个职业生涯的攻击。 嗯,他们真的投入到让你喜欢 React 或任何可能的技术。

米娜:我承认我是过去那些人中的一员。 实际上,我相信可能主要是关于 SASS。 我非常喜欢将 SASS 作为预处理器,而所有其他预处理器都是垃圾。 我不想谈论他们。 我不想和他们打交道。 我意识到这是一种非常狭隘的看待事物的方式。 为工作使用适当的工具。 无论什么使您更有效率,这都是正确的工具。 它是什么并不重要。

德鲁:有没有我们使用的技术没有那种部落的感觉? 有什么东西是人们乐于使用或不使用的吗? 我什么都想不出来。

米娜:哇。 实际上,没有人对标记有意见。

德鲁:没有。

Mina:我觉得没有人对真正的 HTML 和标记有意见,就像“它就在那里”。 他们使用它。 但是人们对 CSS 有强烈的看法,以及它是多么糟糕或多么美妙,预处理器之战不再真正发生,当然还有各种 JavaScript 库中的所有部落主义。

Drew:所以你会说你到目前为止使用 React 的旅程仍然只是,“它是一个工具。 它完成了它的工作吗?”

Mina:它从好奇变成了积极和发自内心的不喜欢,因为它的流行程度和我的不必要性我认为这种流行程度对我来说很重要。 我现在和我在一起,这并不意味着我讨厌它。 这只是意味着……

德鲁:我认为那是个好地方。 我认为,如果我们了解特定技术对其目的的价值,我们作为技术专家可能会更强大。 我们可以评估什么对什么情况有好处,并为工作选择合适的工具。

米娜:是的。 这就是我职业生涯的这个阶段,我没有真正投入到任何特定的语言、技术或其他东西上,因为它就像,“只要是最适合你的工具尝试去做,然后使用它。” 我了解到,一切都有一个地方; 做任何事情都有时间和地点。 直到最近,我还没有真正的时间或地点来使用这个 React 图书馆员,现在有了。

德鲁:我认为那是个好地方。 所以我最近一直在学习 React,就像你在日常工作中一样。 你最近有什么其他的学习吗?

Mina:我实际上学到了具有讽刺意味的东西,我认为另一种语言起源于 Facebook,我一直在进行大量的 Hack 开发,主要是因为我在 Slack 的日常工作中使用的是这种语言。 学习 Hack 为我更舒适地使用 React 铺平了道路,因为它们遵循非常相似的模式,除了一个是服务器端而一个不是。 因此,除了一般情况外,我一直在学习更多关于后端的知识,以及由于各种不同的原因它是如何工作的。 在过去的几年里,我一直在伸展自己,越来越远离我的舒适区。 设计系统、图书馆,这就是我的世界,我在那个世界里感觉很好,很舒服。 但我正在走出它,做更多的服务器端逻辑、API 开发、数据建模等等。 在过去的一年里,我也在这方面做了很多工作。

Drew:我发现我对前端东西中的后端东西的整个堆栈了解得越多,每一个都有助于我了解另一个。 我发现通过编写后端代码并理解,我可以编写更好的前端代码 -

米娜:是的。 我想我也有同样的感觉。 现在我对我们如何从数据到最终客户端的整个堆栈有了更好的了解。 我发现无论我实际在哪个部分工作,我都在考虑整个管道。我在考虑构建这个 API 的最佳方式是什么,这样当我到达模板时,我就不必对我收到的数据进行如此多的操作。 这绝对让我整体上成为了一名更好的工程师,我喜欢它

Drew:亲爱的听众,如果您想从 Mina 那里听到更多信息,您可以在 Twitter 上关注她,她的邮箱是@MinaMarkham,并在 mina.codes 上找到她的个人网站。 感谢您今天加入我们,米娜。 你有什么离别词吗?

米娜:度过了一个美妙的夜晚?

德鲁:太好了。