與 Mina Markham 一起 Smashing Podcast 第 18 集:我如何學習 React?
已發表: 2022-03-10在 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 上找到她的個人網站。 感謝您今天加入我們,米娜。 你有什麼離別詞嗎?
米娜:度過了一個美妙的夜晚?
德魯:太好了。