Smashing Podcast ตอนที่ 18 กับ Mina Markham: ฉันจะเรียนรู้ปฏิกิริยาได้อย่างไร?

เผยแพร่แล้ว: 2022-03-10
สรุปอย่างย่อ ↬ ในตอนนี้ของ Smashing Podcast เรากำลังพูดถึงการเรียนรู้ React React ทำงานอย่างไร และนักพัฒนาที่มีประสบการณ์สามารถเริ่มต้นได้อย่างไร Drew McLellan คุยกับ Mina Markham เพื่อหาคำตอบ

ในตอนนี้ของ Smashing Podcast เรากำลังพูดถึงการเรียนรู้ React React ทำงานอย่างไร และนักพัฒนาที่มีประสบการณ์สามารถเริ่มต้นได้อย่างไร ฉันพูดกับ Mina Markham เพื่อค้นหา

แสดงหมายเหตุ

  • Mina Markham บน Twitter
  • เว็บไซต์ส่วนตัวของมินะ

อัพเดทประจำสัปดาห์

  • จากไซต์คงที่ไปจนถึงแอป JAMstack ของผู้ใช้ด้วย FaunaDB โดย Bryan Robinson
  • เว็บไซต์ของคุณทำให้ผู้เยี่ยมชมเครียดหรือไม่? โดย Suzanna Scacca
  • Mirage JS Deep Dive: ทำความเข้าใจเกี่ยวกับเวลา การตอบสนอง และการส่งผ่านข้อมูล (ตอนที่ 3) โดย Kelvin Omereshone
  • การสร้างเว็บแอปพลิเคชันการจดจำใบหน้าด้วย React โดย Adeneye David Abiodun
  • การทำให้เป็นสากลใน Vue ด้วยปลั๊กอิน Vue I18n โดย Timi Omoyeni

การถอดเสียง

ภาพถ่ายของ มีนา มาร์คัม Drew McLellan: เธอเป็นสถาปนิกส่วนหน้า วิทยากรและผู้จัดการประชุมและผู้รักระบบการออกแบบ งานของเธอเกี่ยวกับห้องสมุดสิทธิบัตรกางเกงสูทสำหรับแคมเปญชิงตำแหน่งประธานาธิบดีฮิลลารีสำหรับอเมริกาของฮิลลารี คลินตัน เป็นจุดเริ่มต้นของระบบการออกแบบภายในอุตสาหกรรมและได้รับการตีพิมพ์ในสิ่งพิมพ์ต่างๆ เช่น Wired, Fast Company และ Communication Arts เช่นเดียวกับพวกเราหลายคน เธอเขียนโค้ดเพื่อหาเลี้ยงชีพ ปัจจุบันเป็นวิศวกรอาวุโสที่ Slack เรารู้ว่าเธอเป็นนักพัฒนาที่มีความสามารถและมีความคิดก้าวหน้า แต่คุณรู้หรือไม่ว่าเธอเคยถูกเข้าใจผิดว่าเป็น Patrick Swayze? เพื่อนที่ยอดเยี่ยมของฉัน ได้โปรดต้อนรับมีนา มาร์คัม สวัสดี มิน่า. คุณเป็นอย่างไรบ้าง?

Mina Markham: ฉันยอดเยี่ยมมาก

ดริว : ยินดีที่ได้ยิน บางครั้งใน Smashing Podcast เราพูดคุยกับผู้คนเกี่ยวกับเรื่องที่พวกเขารู้จักกันเป็นอย่างดี และบางครั้งก็สนุกที่จะพูดคุยเกี่ยวกับบางสิ่งที่สัมผัสกัน ตอนนี้ ฉันสามารถพูดคุยกับคุณทั้งวันเกี่ยวกับไลบรารีรูปแบบ ระบบการออกแบบ งานที่น่าทึ่งที่คุณได้ทำในพื้นที่นั้น และฉันสามารถพูดคุยกับคุณเกี่ยวกับหัวข้อที่คุณเคยพูดถึง เหตุการณ์ เช่น งาน นอกเหนือสิ่งอื่นใด เช่น การกำกับศิลป์ และเห็นได้ชัดว่าเราสามารถพูดคุยเกี่ยวกับ CSS ได้จนกว่าวัวจะกลับบ้าน แต่คุณทวีตเมื่อไม่กี่วันก่อน และฉันก็รู้ว่าจริง ๆ แล้วเราทั้งคู่อยู่ในเรือลำเดียวกันเพราะเราทั้งคู่เป็นวิศวกรส่วนหน้าที่มีประสบการณ์และเราทั้งคู่เพิ่งเริ่มทำงานกับ React ก่อนที่เราจะเข้าสู่ React เอง คุณมาถึงจุดนี้ที่ไหน? คุณเคยทำงานกับไลบรารี่และเฟรมเวิร์กอื่น ๆ สำหรับการพัฒนา JavaScript หรือไม่?

Mina: ไม่ จริงๆ แล้วฉันทำ vanilla JavaScript เป็นส่วนใหญ่มาระยะหนึ่งแล้ว และก่อนหน้านั้น แน่นอน ฉันเริ่มใช้ JavaScript ให้ฉันใช้ถ้อยคำใหม่ว่า ฉันเริ่มทำงานกับจาวาสคริปต์โดยใช้ jQuery เพราะมันเหมาะสมกับฉันมากที่สุด มันเป็นสิ่งที่ง่ายมากสำหรับฉันที่จะแยกวิเคราะห์เพื่อดูว่าเกิดอะไรขึ้น จากนั้นฉันก็ย้อนกลับไปทำแค่วานิลลา, JavaScript ธรรมดา, ESX และฉันไม่ได้เข้าสู่สงครามเฟรมเวิร์กมากนัก ฉันไม่มี เหมือนว่าฉันไม่มีสิ่งที่ชอบ ฉันไม่มีสุนัขในการต่อสู้ ฉันชอบ "สำหรับคุณ React อะไรก็ได้ ฉันไม่สนใจจริงๆ” แต่เวลาเปลี่ยนไป

Drew: และในวิธีการทำงานกับ vanilla JavaScript แบบนี้ เพราะฉันเองก็ทำหลายอย่างเหมือนกัน ฉันได้ทำงานกับกรอบงานต่างๆ ฉันได้ทำหลายอย่างกับ jQuery ในวันนั้น ฉันทำงานกับ YUI, Yahoo User Interface Library คุณเคยรู้สึกถึงความเจ็บปวดมากมายที่สถาปัตยกรรมของ React พยายามจะแก้ไขหรือไม่?

Mina: ฉันไม่คิดว่าฉันเคยมี ฉันใช้เวลาส่วนใหญ่ไปกับการทำเว็บไซต์กับเว็บแอปและอะไรทำนองนั้น ดังนั้นทุกอย่างที่ฉันทำค่อนข้างคงที่ในระดับหนึ่ง ดังนั้นฉันจึงไม่เคยต้องจัดการกับการจัดการของรัฐ อะไรทำนองนั้นเลย ความเจ็บปวดชี้ให้เห็นที่ React พยายามแก้ไข ฉันไม่เคยนำไปใช้กับงานที่ฉันทำจริงๆ

Drew: โดยทั่วไปแล้ว ลักษณะของโปรเจ็กต์ที่คุณเคยทำกับ React จนถึงตอนนี้เป็นอย่างไร?

Mina: จริงๆ แล้วมันเป็นแค่โครงการเดียว ซึ่งฉันกำลังดำเนินการอยู่ และฉันไม่สามารถให้รายละเอียดมากเกินไปได้ เนื่องจากบริษัทมหาชนและสิ่งที่ดีทั้งหมดนั้น

ดรูว์: แน่นอน

Mina: แต่โดยพื้นฐานแล้ว สิ่งที่ฉันพยายามทำคือฉันพยายามใช้ React เป็นผลิตภัณฑ์ที่มีการโต้ตอบอย่างมาก ซึ่งฉันต้องการให้ผู้คนสามารถป้อนและบันทึกข้อมูลในสถานะหนึ่งๆ แล้วจัดการมันและ สร้างอย่างอื่นด้วยข้อมูลดังกล่าว และนั่นเป็นเพียงบางสิ่งที่ไม่ใช่การจัดการ DOM ง่ายๆ ณ จุดนั้น เป็นการจัดการข้อมูลส่วนหน้าและการจัดการสถานะของข้อมูลดังกล่าวที่ซับซ้อนกว่ามาก ดังนั้นจึงไม่มีทางเลือกอื่นนอกจากการใช้ไลบรารีบางประเภทที่พยายามแก้ปัญหานั้น ฉันรู้ว่าฉันจะผ่าน JavaScript ธรรมดาไปไม่ได้ ฉันใคร่ครวญว่าจะจัดการกับบางสิ่งที่ฝั่งเซิร์ฟเวอร์ แต่อีกครั้ง เนื่องจากลักษณะเชิงโต้ตอบของสิ่งที่ฉันทำงานด้วย มันจึงต้องอยู่ในไคลเอนต์ ดังนั้นเราจึงใช้ React at Slack สำหรับสิ่งอื่น ๆ มากมาย ฉันก็เลยแบบ "เอาล่ะ เราควรไปข้างหน้าและใช้สิ่งเดียวกันกับที่บริษัทแม่อื่นๆ ที่บริษัทใช้อยู่และไปจากที่นั่น"

Drew: สิ่งหนึ่งที่ฉันมักจะเป็นจุดลำบากในการที่ผู้คนหยิบ React ขึ้นมา คือการได้จับกลุ่มเครื่องมือที่จำเป็นสำหรับการทำงานต่างๆ Webpack เป็นช้างที่เห็นได้ชัดเจนในห้องนั้น คุณต้องทำการกำหนดค่าของห่วงโซ่เครื่องมือมากหรือเหมือนฉันถ้าคุณมีเพื่อนร่วมทีมที่หรูหราที่ทำเพื่อคุณหรือไม่?

Mina: โอ้ ฉันชอบทีมโครงสร้างพื้นฐานที่ Slack the data ทีมงานโครงสร้างพื้นฐานส่วนหน้าของ Slack พวกเขาจัดการทั้งหมดนั้น ฉันไม่ต้องคิดเกี่ยวกับมัน มันดีมาก. เพราะเคยลองเรียน React มาก่อน โดยปกติแล้ว วิธีที่ฉันเรียนรู้ได้ดีที่สุดคือการทำงานและนำไปปฏิบัติจริง และเราใช้ React เพื่อสร้าง hillaryclinton.com จำนวนมากในปี 2559 ดังนั้นไม่ใช่ว่าฉันไม่เคยทำงานกับคนที่ใช้มัน งานของฉันไม่เคยต้องการให้ฉันมีส่วนร่วมโดยตรง แต่ฐานโค้ดนั้นซับซ้อนและซับซ้อนมาก และมีอะไรเกิดขึ้นมากมายจนมีอุปสรรคในการพยายามเรียนรู้อะไรในนั้น หากคุณยังไม่ทราบว่า React และ Redux ทำงานอย่างไร ซึ่งผม ไม่ได้ ดังนั้นฉันจึงไม่ค่อยมีประสิทธิภาพในการเรียนรู้ในสภาพแวดล้อมนั้น

Mina: โชคดีที่ที่นี่มีคนชอบเอาส่วนที่ซับซ้อนของมันออกไปอีกหน่อย ฉันไม่ต้องกังวลเกี่ยวกับการกำหนดค่า Webpack เลย ที่ถูกกำหนดไว้แล้ว ที่ทดลองและทดสอบแล้วพร้อมใช้งาน ฉันอยู่ในเรือลำเดียวกันที่เราใช้ Redux นอกเหนือจาก React ซึ่งฉันไม่รู้ว่าเป็นสองสิ่งที่แตกต่างกัน ฉันไม่รู้ว่าส่วนไหนจัดการ การวางโค้ดเบสแบบนั้น มันทำให้สับสนเล็กน้อยเพราะฉันไม่รู้ว่ามันเหมือนกันหมด ฉันมีคนที่มีประสบการณ์กับนักพัฒนา React ที่ช่ำชองบอกฉันว่า "โอ้ เรากำลังใช้ Redux อยู่ด้วย ซึ่งทำให้ยากขึ้นเล็กน้อยสำหรับคุณที่จะเรียนรู้ว่า React all สามารถทำอะไรได้บ้างหากคุณเริ่มต้นจากศูนย์" และฉันไม่เคยรู้เลยว่าพวกเขาหมายถึงอะไรเพราะฉันไม่รู้ว่าพวกเขากำลังพูดถึงอะไร

Mina: เพื่อตอบคำถามเดิมของคุณ ฉันยังคงมีอุปสรรคเล็กน้อยในการเข้า เพราะไม่ใช่แค่การเรียนรู้ React ฉันต้องเรียนรู้ React และวิธีใช้ Redux store ดังนั้นสองสิ่งนี้ในเวลาเดียวกันอาจเป็นเพียงเล็กน้อย

Drew: ใช่ ฉันพบว่าสิ่งเดียวกันในฐานรหัสที่มีอยู่เป็นโครงการ React แรกของฉันที่ใช้ Redux และฉันคิดว่าตามธรรมชาติของเทคโนโลยีประเภทนี้ เมื่อพวกเขายังเด็ก พวกเขาทำซ้ำได้เร็วมาก และสิ่งที่เป็นแนวทางปฏิบัติที่ดีที่สุด ณ จุดหนึ่งคือ 6 เดือนต่อมา และมีวิธีการทำสิ่งต่างๆ ที่แตกต่างออกไป และเมื่อคุณมีฐานโค้ดที่มีระยะเวลาหลายปี บางครั้งคุณก็อาจมีรูปแบบการใช้งานที่แตกต่างกันออกไป มันไม่ซิงค์ตลอดเวลา และแน่นอน หากคุณกำลังติดตามบทช่วยสอนหรืออะไรก็ตามที่จะเรียนรู้ คุณกำลังอ่านหนังสือ คุณกำลังใช้แหล่งข้อมูล สิ่งเหล่านี้จะอยู่ในเวอร์ชันที่ทันสมัยที่สุดของวิธีการทำสิ่งต่างๆ และนั่นไม่จำเป็นว่าจะต้องกระทบกับสิ่งที่คุณเห็นเมื่อคุณดูผลิตภัณฑ์ที่มีอยู่แล้วและโตเต็มที่ นั่นเป็นสิ่งที่คุณเคยสัมผัสมาก่อนหรือเปล่า หรือคุณจัดการเพื่อให้ฐานโค้ดของคุณทันสมัยอยู่เสมอใช่หรือไม่

Mina: ฉันคิดว่านั่นคือสิ่งที่ฉันได้รับอย่างแน่นอน เมื่อฉันพยายามเรียนรู้วิธีการทำ React ด้วยตัวเอง ฉันได้ดูบทช่วยสอนต่างๆ และสิ่งต่างๆ เช่นนั้น และฉันสังเกตเห็น หรืออย่างน้อยก็มีคนบอกฉันว่าใครเคยทำงานและเคยร่วมงานกับฉันบ้าง ว่าบางสิ่งที่เราทำหรือชนิดของการต่อต้าน หรือไม่ค่อนข้างทำงานอย่างไรในตอนนี้ เพราะฐานรหัสนี้ค่อนข้างน้อย โตเป็นญาติเรา แต่อายุไม่กี่ปี ดังนั้นจึงมีบางวิธีที่ฉันคิดว่าทำสิ่งต่างๆ ได้ง่ายกว่าวิธีที่เราทำอยู่ในปัจจุบัน เพราะสิ่งนี้เขียนไว้เมื่อหลายปีก่อน ดังนั้นมันจึงเป็นลู่วิ่งเล็กๆ น้อยๆ ที่พยายามจะตามให้ทันเวลาปัจจุบัน และทำให้แน่ใจว่าฉันต้องการทำสิ่งต่าง ๆ ให้ดีที่สุด แต่ฉันก็ไม่ต้องการทำลายฐานของโค้ดที่ตั้งขึ้นเพราะฉันต้องการเล่นกับสิ่งต่างๆ

Drew: แน่นอน สิ่งหนึ่งที่ผู้คนเช่นคุณและฉันกำลังจะพูดถึงใน React นั้น อาจทำให้รู้สึกสั่นคลอนเล็กน้อยกับ JSX ทั้งหมดนี้ คุณใช้ JSX ในโครงการของคุณหรือไม่?

มินะ : เราเอง ฉันกำลังใช้ JSX

Drew: คุณได้ทำสันติภาพกับสิ่งนั้นหรือไม่?

Mina: ฉันล้มลงเหมือนชิ้นส่วนเล็กๆ ของฉันตายทุกครั้งที่เปิดไฟล์เหล่านั้น ยังคงรู้สึกผิดที่จะใส่ HTML ของฉันในไฟล์ JavaScript ฉันรู้ว่านั่นเป็นการปฏิวัติและประเด็นทั้งหมด แต่ฉันรู้สึกแย่ที่ฉันกำลังเขียนมาร์กอัปในไฟล์ JavaScript ฉันเคยชินกับมันแล้ว แต่ทุกครั้งที่ฉันทำ ฉันจะแบบว่า “…” ความกังวลเรื่องการแยกจากกัน มันเป็นเรื่องหนึ่ง ฉันขอคืนนะ

Drew: มันเป็นประเด็นที่ถูกต้องใช่ไหม? ภูมิหลังของฉันเมื่อฉันเริ่มทำงานกับ JavaScript อย่างจริงจังมากขึ้น และนี่อาจเป็นตอนที่ฉันกลับมาที่ Yahoo สิ่งต่าง ๆ อยู่บนโมเดลของเซิร์ฟเวอร์ที่แสดงผลหน้า HTML อย่างมาก และจากนั้นก็ใช้วิธีการปรับปรุงแบบก้าวหน้า โดยวาง JavaScript ไว้ด้านบนเพื่อปรับปรุง อินเทอร์เฟซ และหากจำเป็นต้องเปลี่ยนสถานะของบางสิ่งในอินเทอร์เฟซ โค้ดของคุณต้องรู้เกี่ยวกับทุกส่วนของอินเทอร์เฟซที่จำเป็นในการอัปเดต ซึ่งนำคุณไปสู่แนวทางที่เชื่อมโยงกันอย่างแน่นหนาด้วยมุมมองเสาหินขนาดใหญ่ที่คุณเขียนโค้ด จำเป็นต้องรู้เกี่ยวกับรหัสอื่นๆ ทั้งหมดที่อยู่รอบๆ และฉันเดาว่านั่นไม่ได้ทำให้ตัวเองใช้วิธีการแบบแยกส่วนที่คุณจะใช้เมื่อทำงานกับไลบรารีรูปแบบหรือระบบการออกแบบ ซึ่งเหมาะกับความเชี่ยวชาญเฉพาะด้านของคุณมากกว่า ฉันเดาว่า React ให้ความสำคัญกับแนวทางนั้นมากกว่าใช่ไหม

Mina: ฉันคิดว่ามันใช่ โดยเฉพาะอย่างยิ่งกับความสามารถในการจับคู่ CSS เฉพาะกับ JSX หรือส่วนประกอบ React หนึ่งองค์ประกอบ และด้วยวิธีการนี้ทำให้ง่ายต่อการแยกหรือใช้เฉพาะสิ่งที่คุณต้องการสำหรับไลบรารีและปล่อยให้ส่วนที่เหลือ ในขณะที่ไลบรารีรูปแบบหรือระบบการออกแบบที่พยายามทำสิ่งที่เป็นเสาหินมากกว่าด้วยไฟล์ CSS ขนาดใหญ่เพียงไฟล์เดียวหรืออะไรทำนองนั้น , มันทำให้ยุ่งยากมาก คุณต้องรับมันทั้งหมดหรือไม่มีอะไรเลย ดังนั้นฉันจึงรู้สึกขอบคุณที่ React ช่วยให้เราสามารถพัฒนาวิธีการพัฒนาที่เป็นรายบุคคลและมีองค์ประกอบมากขึ้น แม้ว่าฉันยังหวังว่าจะมีวิธีแยกเลเยอร์การนำเสนอและชั้นเนื้อหาออกจากเลเยอร์การโต้ตอบ แต่บางทีนั่นอาจเป็นแค่ฉันที่โรงเรียนเก่านิดหน่อยในแง่นั้น

Drew: ฉันรู้สึกเจ็บปวดที่นั่นอย่างแน่นอน แนวคิดก็คือ มาแก้ไขฉันถ้าฉันผิด ความเข้าใจของฉันคือแทนที่จะแยกเทคโนโลยี CSS และ JavaScript และ HTML ออกเป็นการแยกการทำงาน ดังนั้นทุกสิ่งที่เป็นองค์ประกอบเดียวจึงอยู่ด้วยกัน-

มินะ : ค่ะ

Drew: … ซึ่งฉันคิดว่าน่าจะมีประโยชน์หากส่วนประกอบนั้นไม่จำเป็นอีกต่อไป คุณสามารถลบออกได้ และมันก็หายไป และไม่ทิ้งรอยเท้าไว้รอบๆ แอปของคุณ นั่นไม่ใช่กรณีของ CSS เสมอไป คุณทำงานกับ CSS ด้วย React อย่างไร? คุณได้ดูสิ่งต่าง ๆ เช่นองค์ประกอบที่มีสไตล์หรืออะไรทำนองนั้นหรือไม่?

มินะ : ไม่ เราไม่มี ฉันเคยได้ยินเกี่ยวกับองค์ประกอบที่มีสไตล์ แต่ฉันไม่เคยตรวจสอบพวกเขาอย่างเต็มที่เพื่อจะซื่อสัตย์อย่างสมบูรณ์ วิธีที่เราทำงานกับ CSS ด้วย React คือเราเขียน Less และเราก็แค่แนบไฟล์ Less กับแต่ละองค์ประกอบที่นำเข้าไปยังองค์ประกอบนั้น จากนั้นจะถูกผูกมัดผ่าน Webpack และให้บริการแก่ลูกค้า

Drew: คุณใช้ระบบอย่าง BEM หรืออะไรในการเปลี่ยนเนมสเปซใช่หรือไม่?

มินะ : ค่ะ เรากำลังใช้ BEM สำหรับเนมสเปซ แม้ว่าการยึดตามนี้จะแตกต่างกันไปขึ้นอยู่กับว่าใครเป็นคนเขียนอะไร แต่เราพยายามใช้รูปแบบเนมสเปซ BEM เพื่อให้ชัดเจนขึ้นเล็กน้อยว่าจุดประสงค์ของแต่ละคลาสและองค์ประกอบคืออะไร

Drew: และนั่นดูเหมือนจะใช้ได้ผลสำหรับคุณหรือไม่?

มินะ : ฉันคิดอย่างนั้น บางครั้งมันก็มีปัญหาเดิมๆ เหมือนกัน บางครั้งก็ไม่รู้ว่าจะตั้งชื่ออะไรดี หลังจากผ่านไประยะหนึ่ง สิ่งต่างๆ ในแต่ละวันมักจะเป็นเรื่องยากสำหรับอาจารย์เสมอ นั่นคือปัญหาเดียวที่ฉันมีคือบางครั้งฉันไม่รู้ว่าควรเรียกส่วนประกอบใด

ดริว : แน่นอน นั่นเป็นการต่อสู้ที่ต่อเนื่อง ใช่ไหม ทำอย่างไรจึงจะเรียกชื่อออกมาได้?

มินะ : ค่ะ

Drew: ฉันมักจะจบลงเมื่อทำงานกับคุณลักษณะใหม่หรืออะไรทำนองนั้น คุณให้ส่วนประกอบและทุกชั้นเรียนและทุกอย่างที่มีชื่อคุณลักษณะที่มีในขณะนี้ และเมื่อคุณเปิดตัว มันก็ถูกเปลี่ยนชื่อเป็นอย่างอื่น ดังนั้นคุณจึงมีการอ้างอิงถึงชื่อเก่าในโค้ดและอินเทอร์เฟซมีชื่อใหม่ และ …

Mina: ฉันพยายามตั้งชื่อสิ่งต่าง ๆ ตามฟังก์ชันหรือจุดประสงค์ของมันกับสิ่งต่าง ๆ ที่ใช้เวลามากกว่าเล็กน้อย เพราะมันมีโอกาสน้อยที่วัตถุประสงค์ที่แท้จริงขององค์ประกอบนี้จะเปลี่ยนแปลง ฉันลืมพูดถึง แต่นอกเหนือจากการใช้ BEM ฉันเดาว่าเราใช้ BEMIT หากคุณคุ้นเคยกับสิ่งนั้น โดยพื้นฐานแล้วมันคือ ITCSS บวก BEM ซึ่งทั้งคู่ถูกสร้างขึ้นโดย Harry Roberts ดังนั้นฉันจึงใช้สัญกรณ์ฮังการีเพื่อระบุว่ามีบางสิ่งที่เป็นส่วนประกอบหรือไม่ เทียบกับออบเจกต์เลย์เอาต์ เทียบกับรูปแบบที่ใหญ่กว่าที่ประกอบด้วยหลายองค์ประกอบ จากนั้นเราใช้แบบแผน BEM เพื่อแสดงว่าองค์ประกอบบล็อกและทั้งหมดนั้น

Drew: และคุณต้องทำการ refactoring และลบส่วนประกอบและสิ่งต่าง ๆ ใน code base ของคุณหรือไม่และต้องจัดการกับปัญหาที่ CSS ถูกทิ้งไว้เบื้องหลังหรือไม่?

มินะ : ค่ะ ดังนั้น ส่วนที่ไม่ตอบสนองในงานของฉัน การดูแลรักษา slack.com ก็คือไฟล์ Less จำนวนมากที่ถูกคอมไพล์สำหรับ CSS และฉันขอรับประกันว่า มีโค้ดซอมบี้จำนวนมากในนั้น เพราะเราทำซ้ำๆ เหนือสิ่งต่างๆ มากมายในตอนที่ฉันเคยไปที่นั่น และเราไม่มีเวลากลับไปทำการล้างข้อมูลเสมอ เมื่อเทียบกับเมื่อเราออกแบบหน้าใหม่หรือบางอย่าง ดังนั้นมันเลยกำหนดเกินกำหนดสำหรับการตรวจสอบ ฉันจะบอกว่า

Drew: นี่คือสิ่งที่เราเพิ่งดูในโปรเจ็กต์ React โดยมองว่าเราเข้าถึง CSS อย่างไร ในขณะนี้ เรามีไฟล์ CSS ขนาดใหญ่สองสามไฟล์สำหรับทั้งแอป และเราได้รับสถานการณ์นี้ที่ขนาดบันเดิลของเราเพิ่งเติบโต เติบโต เติบโต และไม่เคยเล็กลงเลย ถึงแม้ว่าสิ่งต่างๆ จะได้รับ ลบออก. ดังนั้นเราจึงได้พิจารณาสิ่งต่างๆ เช่น ส่วนประกอบที่มีสไตล์ และ Tailwind เป็นอีกทางเลือกหนึ่งที่เราพิจารณาอย่างจริงจัง คุณได้ดู tailwind มาก?

มินะ : ฉันไม่ได้ดูสักหน่อย ฉันเคยสงสัยเกี่ยวกับเรื่องนี้ แต่อีกครั้ง ฉันไม่เคยมีเวลาสำรวจดูจริงๆ ว่าเป็นสิ่งที่ฉันต้องการจะลองนำมาสู่ฐานโค้ดของเราหรือไม่

Drew: จริง ๆ แล้วฉันค่อนข้างแปลกใจ เพราะเหมือนคุณ ฉันค่อนข้างจะแก่ไปหน่อยกับการทำสิ่งเหล่านี้ ฉันชอบการแยกความกังวลที่ดี และฉันชอบเขียน CSS ของฉันใน CSS และแน่นอนว่าแนวทางของ Tailwind คือคุณมีชื่อคลาสเหล่านี้ทั้งหมด ซึ่งให้ความรู้สึกเหมือนสไตล์อินไลน์ที่คุณใช้อยู่ และถ้ารู้สึกสกปรก

มินะ : ค่ะ

Drew: และฉันอาสาในทีม ซึ่งเราแต่ละคนก็ใช้เทคโนโลยีเพื่อตรวจสอบว่าพวกเขาเหมาะสมกับปัญหาของเราหรือไม่ และฉันอาสาที่จะดู Tailwind เพราะฉันแน่ใจจริงๆ ว่าฉันจะเกลียดมัน

มินะ : ไม่ ไม่

Drew: แต่ปรากฏว่าจริงๆ แล้วฉันคิดว่ามันสามารถแก้ปัญหาได้มากมาย ฉันค่อนข้างประทับใจ

มินะ : ค่ะ ฉันเคยคิดแบบเดียวกันนี้มาก่อน เพราะเมื่อก่อนฉันอยากให้คลาสหนึ่งประกอบด้วยสไตล์ทั้งหมดที่ฉันต้องการสำหรับส่วนประกอบหนึ่งๆ และไม่ทำคลาสต่อพร็อพเพอร์ตี้ อย่างที่ฉันเชื่อว่า Tailwind ทำ หรือภาษาที่ชอบทำ ด้วยเหตุผลที่คล้ายคลึงกัน มันให้ความรู้สึกเหมือนว่า “ตอนนี้ฉันเพิ่งเรียกใช้ CSS แบบอินไลน์ ทำไมฉันถึงทำอย่างนี้” แต่ในขณะที่ฉันพัฒนามากขึ้นเรื่อยๆ ในระบบการออกแบบ Slack ของเรา ฉันได้สร้างคลาสยูทิลิตี้ขึ้นมาหลายอย่าง ซึ่งทำสิ่งต่างๆ เช่น เพิ่มระยะขอบเล็กน้อยด้วยรูปแบบ ฉันสังเกตเห็นว่าฉันกำลังใช้คลาสเหล่านั้นมากขึ้นเรื่อยๆ นอกเหนือจากคลาสส่วนประกอบ ฉันก็เลยแบบ "เอาล่ะ บางทีฉันควรจะทบทวนทั้งหมดนี้เพื่อทำ CSS ทีละคำ" ฉันไม่รู้ว่าฉันจะไปได้ไกลขนาดนั้นหรือเปล่า แต่ก็คุ้มค่าที่จะพิจารณา

Drew: ดูเหมือนว่าคอมพิวเตอร์จะพลิกกลับด้านในแง่ของแนวโน้มระหว่างโซลูชันไคลเอ็นต์แบบบางและแบบอ้วน เราเริ่มต้นด้วยเมนเฟรมที่มีเทอร์มินัล จากนั้นจึงเข้าสู่ยุคพีซีที่มีหน้าต่างและออฟฟิศ และแอปพลิเคชันขนาดใหญ่ทุกประเภท และพวกเขาทั้งหมดเริ่มช้ามาก และมากกว่าที่เว็บจะเข้ามา และนั่นเป็นแค่เบราว์เซอร์ และงานทั้งหมดก็ถูกทำให้เสร็จบนเซิร์ฟเวอร์ และมันก็รวดเร็วและว่องไวอีกครั้ง และตอนนี้เราได้กลับไปนำงานทั้งหมดกลับคืนมาในเบราว์เซอร์ด้วยทุกอย่างที่ทำด้วย JavaScript สิ่งต่าง ๆ เช่น React และแนวทาง JAMstack ที่เรากลับมาเป็นลูกค้าอ้วน บางครั้งฉันกังวลว่าเราขอเบราว์เซอร์มากเกินไป นี่เป็นความผิดพลาดหรือไม่? เราขอเบราว์เซอร์พยายามทำสิ่งนี้ทั้งหมดใน React มากเกินไปหรือไม่?

Mina: ฉันอยากจะตอบตกลงโดยมีข้อแม้ว่า อีกครั้ง ประสบการณ์ของฉันมีอยู่มากในเว็บไซต์แบบสแตติกส่วนใหญ่ ฉันไม่ได้พัฒนาผลิตภัณฑ์มากนัก บางทีในขอบเขตนั้น มันสมเหตุสมผลกว่า แต่จากมุมมองของฉัน ฉันรู้สึกว่าหลายครั้งที่เราใช้ขวานขวานเมื่อเราต้องการมีดทาเนย ฉันไม่รู้ว่าทำไมเราต้องใส่ทั้งหมดนี้ในเบราว์เซอร์ ทำงานหนัก และกดดันลูกค้ามาก ฉันรู้สึกว่าเราสามารถทำได้ง่ายกว่านี้มาก สิ่งหนึ่งที่ทำให้ฉันลังเลเล็กน้อยที่จะใช้ React หรือฉันพูดอย่างลังเล แต่สิ่งที่ฉันหมายถึงเมื่อมันทำให้ฉันโกรธและต่อต้านอย่างแข็งขันคือเมื่อฉันไปที่เว็บไซต์และไม่มีอะไรจะแสดงผลเพราะมี เป็นข้อผิดพลาดหรืออะไรบางอย่าง เช่น “จริงเหรอ? หน้าทั้งหน้าพังเพราะฟังก์ชันเดียวพัง?”

Mina: มันแค่ทำให้ฉันรำคาญที่หลายครั้งมันเป็นวิธีการทั้งหมดหรือไม่มีอะไรเลย การพูดคุยครั้งหนึ่งที่ฉันให้ที่ AEA ในอดีตและที่อื่นๆ ในอดีตคือการพูดถึงวิธีรวมการเพิ่มประสิทธิภาพที่ก้าวหน้า ไม่ใช่แค่การพัฒนาของคุณ แต่ยังรวมถึงทิศทางศิลปะและการออกแบบไซต์ด้วย และฉันจะยกตัวอย่างเฉพาะของเว็บไซต์ที่ไม่ได้ทำการเพิ่มประสิทธิภาพแบบก้าวหน้าหรือการเสื่อมคุณภาพใดๆ มันเหมือนกับว่าคุณมี JavaScript ที่ทำงานอยู่ในเบราว์เซอร์หรือคุณไม่ได้อะไรเลย และมันก็เหมือนกับเว็บไซต์ธรรมดา ๆ ที่แสดงข้อมูลเกี่ยวกับประวัติของการออกแบบเว็บ ซึ่งเป็นหนึ่งในเว็บไซต์ที่พูดถึงจริง ๆ ประวัติของการออกแบบเว็บตั้งแต่ปี 1990 จนถึงปัจจุบัน มันเป็นเว็บไซต์ที่สวยงามพร้อมไทม์ไลน์ แอนิเมชั่นของสิ่งต่างๆ มากมาย แต่ก็สามารถแสดงผลแบบคงที่ได้ด้วยรายการเพียงอย่างเดียว มีขั้นตอนต่างๆ ระหว่างการไม่แสดงอะไรเลยและแสดงให้เห็นว่าประสบการณ์ที่ได้รับการปรับปรุงอย่างสวยงามซึ่งฉันคิดว่าหายไปเนื่องจากวิธีที่เราเข้าใกล้การพัฒนาเว็บสมัยใหม่ในขณะนี้

Drew: คุณจะบอกว่ามีบางประเภทของโครงการที่เหมาะสมกับโซลูชันเช่น React และบางโครงการที่ไม่ควรใช้จริง ๆ และคุณควรใช้วิธีการแบบเดิม ๆ

Mina: ฉันคิดว่าถ้าไซต์ของคุณส่วนใหญ่เป็นแบบคงที่ มันเป็นเพียงการแสดงข้อมูล ฉันเดาว่าฉันไม่เข้าใจว่าทำไมคุณถึงต้องการโปรเจ็กต์อย่าง React เพื่อแสดงผลบางอย่างที่ไม่มีการโต้ตอบมากนักนอกจากการจัดการ DOM . ฉันเดาว่าฉันไม่เห็นว่าคุณจะได้ประโยชน์อะไรจากสิ่งนั้น อีกครั้ง ฉันอาจไม่ได้ทำงานในโครงการที่เหมาะสม ฉันอาจไม่ได้เพิ่งเห็นหรือพบกรณีการใช้งานนั้น แต่ฉันมีปัญหาในการดูว่าเว็บไซต์ส่วนใหญ่เป็นแบบสแตติกหรือไม่ นำเสนอเนื้อหา ไม่ค่อยมีการโต้ตอบ ไม่มีการโต้ตอบมากไปกว่า DOM ที่ถูกจัดการ และทำแอนิเมชั่น ฉันไม่เห็นว่าการมีห้องสมุด React ช่วยให้คุณบรรลุเป้าหมายได้อย่างไร

Drew: มันน่าสนใจเพราะว่าฉันไม่ได้พูดแย่นักเพราะฉันไม่ได้ใช้มันจริงๆ แต่ฉันเห็นโปรเจ็กต์ต่างๆ ของ Gatsby และ Gatsby เป็นตัวสร้างไซต์แบบสแตติกที่ใช้ React front-end ในตัวมัน และฉันเห็นตัวอย่างทั้งหมดของธีมและสิ่งต่าง ๆ ที่มีอยู่คือไซต์หรือบล็อกตามเนื้อหาทั้งหมด และไซต์สูตรอาหาร และพอร์ตโฟลิโอ และสิ่งเหล่านี้ และมีบางอย่างที่ฉันคิดว่าจริง ๆ แล้วสิ่งนี้ไม่เหมาะกับบางอย่างเช่น React เหตุใดจึงไม่แสดงผลแบบคงที่แล้วค่อยปรับปรุง

มินะ : ค่ะ

Drew: มันไม่ใช่ซอฟต์แวร์

มินะ : ค่ะ ฉันไม่เคยใช้ Gatsby มาก่อนเลย ฉันเคยได้ยินเรื่องดีๆ มากมายเกี่ยวกับเรื่องนี้ แต่นั่นอาจเป็นหนึ่งในตัวอย่างที่ฉันคิดว่า "เอาล่ะ ฉันเดาว่าฉันแค่ไม่เห็นว่าทำไมเครื่องมือนั้นจึงจำเป็นสำหรับงานนั้นโดยเฉพาะ ” ฉันไม่รู้ด้วยซ้ำ อาจเป็นเพราะผู้คนจำนวนมากขึ้นรู้สึกสบายใจที่จะเขียนใน React เมื่อพวกเขาเขียนอะไรใหม่ๆ และเป็นเพียงเครื่องมือที่ตอบสนองผู้คนจากที่ที่พวกเขาอยู่ ฉันเคยได้ยินเรื่องดีๆ เกี่ยวกับเครื่องมือสร้างไซต์แบบคงที่ที่ใช้ React สำหรับผู้ที่เคยใช้และชื่นชอบมัน แต่มันไม่ใช่กรณีการใช้งานที่ฉันจะเป็นทันที "โอ้ สมเหตุสมผลแล้ว"

Drew: ดูเหมือนว่ามีการต่อสู้ระหว่างสิ่งที่เราเรียกว่าเว็บไซต์กับสิ่งที่คุณอาจเรียกว่าเว็บแอปอยู่เสมอ และช่องว่างระหว่างทั้งสองดูเหมือนจะกว้างขึ้น กว้างขึ้น และกว้างขึ้น ในขณะที่วิธีการเพิ่มประสิทธิภาพแบบก้าวหน้าพยายามที่จะเชื่อมช่องว่างโดยใช้สิ่งที่คงที่และเพิ่ม JavaScript และเพิ่มการโต้ตอบ ดูเหมือนว่า React นั้นเหมาะสมอย่างยิ่งกับซอฟต์แวร์ที่คุณใช้งานในเบราว์เซอร์ คุณจะเห็นด้วยกับสิ่งนั้นหรือไม่?

Mina: ฉันเห็นด้วยอย่างแน่นอนเพราะมันรู้สึกเหมือนถูกสร้างขึ้นสำหรับสภาพแวดล้อมแบบนั้น มันถูกสร้างขึ้นสำหรับการรันซอฟต์แวร์ มันถูกสร้างขึ้นโดย Facebook สำหรับ Facebook ดังนั้นมันจึงถูกสร้างขึ้นสำหรับผลิตภัณฑ์ มันถูกสร้างขึ้นสำหรับการเรียกใช้สิ่งที่คุณเรียกว่าเว็บแอปในเบราว์เซอร์และไม่จำเป็นสำหรับประเภทของงานที่ผมเคยทำดังที่ได้กล่าวมาแล้ว ดังนั้น ฉันคิดว่าในสถานการณ์เหล่านี้ มันสมเหตุสมผลมากที่จะใช้มัน หากคุณกำลังสร้างซอฟต์แวร์ที่ซับซ้อนและซับซ้อนมากขึ้น ซึ่งตั้งใจให้ทำงานภายในเบราว์เซอร์ แต่ถ้าคุณกำลังสร้างไซต์การตลาดหรืออะไรก็ตาม ฉันเดาว่าฉันยังคงดิ้นรนเพื่อดูว่าเหตุใดจึงมีความจำเป็น

Drew: เรากำลังอนุญาตให้ผู้คนยังคงสร้างเว็บไซต์ที่ดีและแสดงผลแบบสแตติกได้หรือไม่

Mina: ฉันอยากเห็นสิ่งนี้เกิดขึ้นมากกว่านี้ ฉันรู้สึกว่ามันหายไปและหายไป ถ้ามันเคยเจ๋งหรืออะไรก็ตาม ฉันรู้สึกว่าเราสูญเสียส่วนนั้นของการพัฒนาเว็บไปแล้ว ตลกจัง คุณกับฉันต่างก็บอกว่าเราเป็นโรงเรียนเก่า และฉันก็หัวเราะเยาะเพราะว่าจริงๆ แล้วฉันทำการพัฒนาเว็บมา อะไรนะ หกปีแล้ว ฉันเป็นโรงเรียนเก่าได้อย่างไร มันไม่ได้นานขนาดนั้นสำหรับฉัน ถึงกระนั้นฉันก็เป็นส่วนหนึ่งของยามเก่าที่ไม่ชอบของใหม่และแวววาว ฉันไม่เข้าใจ

Drew: อันที่จริง React มีมาตลอดที่คุณเป็นนักพัฒนาเว็บ

มินะ : บางทีฉันอาจจะแค่มีวิญญาณเก่า ฉันไม่รู้

Drew: ฉันคิดว่าน่าจะเป็นอย่างนั้น ฉันไม่ได้ดูเป็นการส่วนตัว มีวิธีการแสดงผลด้านบริการที่คุณสามารถทำได้ด้วยแอป React คุณเคยมีประสบการณ์เหล่านี้หรือไม่?

Mina: ฉันยังไม่เคยสัมผัสมันเลย ฉันตรวจสอบสั้น ๆ สำหรับโครงการที่ฉันกำลังดำเนินการอยู่ เพราะฉันรู้สึกว่ามีบางส่วนของการดำเนินการที่จะทำงานได้ดีขึ้นบนเซิร์ฟเวอร์เมื่อเทียบกับในไคลเอนต์ แต่ฉันคิดว่าเนื่องจากความรู้ที่จำกัดของฉัน และความจริงที่ว่าโค้ดเบสนั้นซับซ้อนกว่าที่ฉันเข้าใจเล็กน้อย ฉันจึงไม่สามารถคิดได้ว่าจะทำให้ส่วนนั้นทำงานอย่างไร ฉันชอบที่จะคิดออกในที่สุด แต่ฉันใช้เวลาหนึ่งวันในการขุดค้น ฉันชอบ "คุณรู้อะไรไหม? ฉันไม่ได้คร่ำครวญไปกว่านี้แล้ว ฉันจำเป็นต้องเป็น ดังนั้นฉันจะกลับไปใช้เส้นทางอื่น”

ดริว : ครับ ฉันคิดว่าเราทุกคนเคยไปที่นั่น

มินะ : ค่ะ ฉันเดินไปตามทาง ฉันก็แบบ “โอ้ นี่มันมืดและน่ากลัว กลับกันเถอะ กลับกันเถอะ”

Drew: ก้าวออกจากรหัส

มินะ : ค่ะ

Drew: จนถึงตอนนี้คุณมีมารยาททางการทูตและสุภาพมากเกี่ยวกับ React ฉันรู้สึกว่ามีความตึงเครียดอยู่ใต้พื้นผิวเล็กน้อย มาเร็ว. บอกเราว่าคุณรู้สึกอย่างไรจริงๆ

Mina: ฉันมีความสุภาพและมีมารยาท ส่วนใหญ่เป็นเพราะฐานแฟนคลับของ Reacts อาจดูใจร้ายในบางครั้ง และฉันก็ไม่อยากให้พวกเขามาหาฉันเลย ได้โปรดเถอะ React เยี่ยมมาก มันวิเศษมาก ใช้สำหรับสิ่งที่คุณต้องการใช้สำหรับ ฉันล้อเล่น แต่แม้กระทั่งทวีตที่คุณพูดถึงตอนต้นของพอดคาสต์นี้ซึ่งฉันคิดว่าสิ่งที่คุณพูดคือฉันไม่เกลียดมัน ไม่ได้รักแต่ไม่ได้เกลียด แม้แต่คำพูดนั้น ฉันได้คนมา ไม่มีกรดกำมะถัน แต่มันเป็นมากกว่าที่พวกเขาพร้อมที่จะกระโดดไปที่การป้องกันและพูดว่า "ฉันชอบมันเพราะ X, Y, Z" ฉันชอบ “ฉันไม่ได้บอกว่ามันไม่ดี ฉันแค่บอกว่าฉันไม่พอใจเกี่ยวกับเรื่องทั้งหมด” แต่เห็นได้ชัดว่าการเป็น meh นั้นไม่เป็นไร ฉันต้องรักมัน

Mina: นั่นเป็นเหตุผลที่ว่าทำไมฉันถึงมีการเจรจาต่อรองมากกว่าปกติเล็กน้อย เพียงเพราะฉันไม่ต้องการให้คนอื่นคิดว่าฉันพูดไม่ดีเพราะฉันไม่ใช่ มีสถานที่ในการพัฒนาเว็บเพิ่มเติม มันทำหน้าที่ มันทำงานได้ดี คนรักมัน ไม่ใช่เครื่องมือที่ฉันเคยมีหรือต้องการใช้มาจนถึงตอนนี้

ดริว : ครับ สิ่งต่าง ๆ สามารถกลายเป็นชนเผ่าได้ จริงไหม โดยที่ผู้คนรู้สึกว่าพวกเขาต้องเข้าข้างฝ่ายใดฝ่ายหนึ่ง และคุณอยู่เพื่อบางสิ่งบางอย่างหรือต่อต้านบางสิ่งบางอย่างโดยสิ้นเชิง? และฉันไม่แน่ใจว่าสิ่งนี้มีจุดประสงค์ที่ดีและฉันไม่คิดว่ามันทำให้เราก้าวไปข้างหน้าในฐานะอุตสาหกรรมและในฐานะชุมชนที่จะทำเช่นนั้น

มินะ : ค่ะ มันแปลกจริงๆ การดูจากมุมมองทางสังคมวิทยาเป็นเรื่องที่น่าสนใจ แต่การสังเกตมักจะดูแปลกมาก มันเหมือนกับว่าฉันไม่ได้รับอนุญาตให้เป็นอย่างที่ฉันพูด เป็นกลางเกี่ยวกับบางสิ่ง ฉันต้องมีความคิดเห็นที่หนักแน่น ซึ่งก็คือ ฉันไม่คิดว่าสุขภาพดี คำว่า "ความคิดเห็นหนักแน่น หลวมๆ" คืออะไร? นั่นเป็นวิธีที่ฉันทำเกี่ยวกับสิ่งต่าง ๆ ฉันรู้สึกหนักใจกับบางสิ่ง แต่ก็ไม่ใช่ว่าคุณไม่สามารถเปลี่ยนใจได้ ที่ฉันรู้สึกเหมือนบางคน ตัวตนของพวกเขาถูกรวมไว้ในแง่มุมบางอย่าง ว่าถ้าคุณไม่ได้เลือกเพื่อระบุตัวตนด้วยอะไรก็ตาม มันเป็นเรื่องส่วนตัวเล็กน้อย เทียบกับเพียง ฉันไม่สนใจเกี่ยวกับหัวข้อนี้โดยเฉพาะ หรือเครื่องมือหรืออะไรก็ตาม

ดริว : ครับ ฉันไม่รู้ว่ามันแย่ลงไปหรือเปล่าจากการที่เราทุกคนมีแนวโน้มที่จะเชี่ยวชาญมากขึ้นโดยเฉพาะในส่วนต่างๆ ของสแต็ก และฉันรู้ว่ามีคนที่เป็นนักพัฒนา React พวกเขาจะเรียกตัวเองว่านักพัฒนา React เพราะนั่นคือสิ่งที่พวกเขาทำงาน และพวกเขาไม่จำเป็นต้องเขียนสคริปต์ Java Java ใดๆ หรือจะไม่ใช้ Vue หรืออะไรก็ตาม ปฏิกิริยาคือโลกของพวกเขา ดังนั้นฉันเดาว่ามันเกือบจะรู้สึกเหมือนถูกโจมตีทั้งอาชีพของพวกเขาที่จะพูดว่า "ฉันไม่ชอบ React" พวกเขากำลังลงทุนเพื่อให้คุณชอบ React หรือเทคโนโลยีอะไรก็ตาม

มินะ: ฉันจะยอมรับว่าเคยเป็นหนึ่งในคนเหล่านั้นในอดีต อันที่จริงฉันเชื่อว่าส่วนใหญ่เกี่ยวกับ SASS ฉันอยู่ในทีมที่ทำ SASS เป็นอย่างมากในฐานะตัวประมวลผลล่วงหน้าและตัวประมวลผลล่วงหน้าอื่น ๆ ทั้งหมดเป็นขยะ ฉันไม่ต้องการพูดถึงพวกเขา ฉันไม่ต้องการจัดการกับพวกเขา และฉันก็รู้ว่านั่นเป็นวิธีมองสิ่งต่าง ๆ ที่แคบมาก ใช้เครื่องมือที่เหมาะสมกับงาน อะไรก็ตามที่ทำให้คุณมีประสิทธิผลมากขึ้น นั่นคือเครื่องมือที่เหมาะสม มันไม่สำคัญหรอกว่ามันคืออะไร

Drew: มีเทคโนโลยีใดบ้างที่เราทำงานด้วยที่ไม่มีความรู้สึกแบบชนเผ่าหรือไม่? มีอะไรที่คนแค่ใช้หรือไม่ใช้แล้วมีความสุข? ฉันคิดอะไรไม่ออก

มินะ : ว้าว ไม่มีใครมีความคิดเห็นเกี่ยวกับมาร์กอัปจริงๆ

ดริว: ไม่

มินะ: ฉันรู้สึกว่าไม่มีใครมีความคิดเห็นเกี่ยวกับ HTML จริง ๆ และแค่มาร์กอัป แบบว่า "อยู่ที่นั่น" พวกเขาใช้มัน แต่ผู้คนมีความคิดเห็นที่หนักแน่นเกี่ยวกับ CSS และว่ามันน่ากลัวหรือยอดเยี่ยมอย่างไร และสงครามพรีโปรเซสเซอร์ที่ไม่ได้เกิดขึ้นมากนักอีกต่อไป และแน่นอนว่า เกี่ยวกับชนเผ่าทั้งหมดภายในไลบรารี JavaScript ต่างๆ

Drew: คุณจะบอกว่าการเดินทางของคุณจนถึงตอนนี้ด้วย React ยังคงเป็นแค่เครื่องมือ มันทำหน้าที่ของมันเหรอ?”

Mina: มันเปลี่ยนจากความอยากรู้อยากเห็นเป็นความกระฉับกระเฉงและไม่ชอบเกี่ยวกับอวัยวะภายใน เพราะมันแพร่หลายมากเพียงใดและฉันไม่มีความจำเป็นอย่างไร ฉันคิดว่าความชุกนั้นอยู่ที่ฉัน ตอนนี้ฉันอยู่กับฉันซึ่งไม่ได้หมายความว่าฉันเกลียดมัน มันก็แค่หมายความว่า…

Drew: ฉันคิดว่านั่นเป็นสถานที่ที่ดีที่จะอยู่ ฉันคิดว่าเราน่าจะแข็งแกร่งกว่าในฐานะนักเทคโนโลยีถ้าเราเข้าใจคุณค่าของเทคโนโลยีเฉพาะสำหรับจุดประสงค์ของมัน เราสามารถประเมินว่าอะไรดีสำหรับสถานการณ์ใด และเลือกเครื่องมือที่เหมาะสมกับงาน

มินะ : ค่ะ และนั่นคือจุดที่ฉันได้มาถึงจุดนี้ในอาชีพการงานที่ฉันไม่ได้ลงทุนในภาษาใด ๆ หรือเทคโนโลยีหรืออะไรก็ตาม เพราะมันเหมือนกับว่า "เครื่องมือใด ๆ ก็ตามที่เหมาะสมที่สุดสำหรับสิ่งที่คุณเป็น พยายามทำแล้วใช้มัน” ฉันได้เรียนรู้ว่ามีที่สำหรับทุกสิ่ง มีเวลาและสถานที่ที่จะทำทุกสิ่ง และจนกระทั่งเมื่อไม่นานมานี้ ไม่มีเวลาหรือสถานที่จริงสำหรับฉันที่จะใช้บรรณารักษ์ React นี้ และตอนนี้ก็มีแล้ว

Drew: ฉันคิดว่านั่นเป็นสถานที่ที่ดีที่จะอยู่ ดังนั้นฉันจึงได้เรียนรู้ทุกอย่างเกี่ยวกับ React เมื่อเร็ว ๆ นี้เช่นเดียวกับที่คุณมีในตอนกลางวัน มีอะไรอีกบ้างที่คุณได้เรียนรู้เมื่อเร็ว ๆ นี้?

Mina: ฉันเรียนมาแบบแดกดัน ซึ่งฉันคิดว่าเป็นภาษาอื่นที่มีต้นกำเนิดมาจาก Facebook ฉันได้พัฒนา Hack มามาก ส่วนใหญ่เป็นเพราะนั่นคือสิ่งที่ฉันใช้ที่ Slack ในงานประจำของฉัน การเรียนรู้ Hack ปูทางให้ฉันใช้ React ได้สบายขึ้น เพราะมันใช้รูปแบบที่คล้ายคลึงกันมาก ยกเว้นอันหนึ่งเป็นฝั่งเซิร์ฟเวอร์และอีกอันหนึ่งไม่ใช่ ฉันได้เรียนรู้เพิ่มเติมเกี่ยวกับแบ็กเอนด์และวิธีการทำงานด้วยเหตุผลต่างๆ นานา และฉันได้ยืดตัวเองในช่วงสองสามปีที่ผ่านมาและออกจากเขตสบาย ๆ ของฉันมากขึ้นเรื่อย ๆ การออกแบบระบบ ห้องสมุด นั่นคือโลกของฉัน และฉันรู้สึกดีและสบายใจมากในโลกนั้น แต่ฉันกำลังก้าวออกไปข้างนอกและทำหลายๆ อย่างในด้านตรรกะฝั่งเซิร์ฟเวอร์ และการพัฒนา API และการสร้างแบบจำลองข้อมูล และทั้งหมดนั้น ฉันได้ทำหลายอย่างในปีที่ผ่านมาเช่นกัน

Drew: ฉันพบว่ายิ่งฉันเข้าใจสแต็กทั้งหมดเกี่ยวกับแบ็คเอนด์ในส่วนฟรอนต์เอนด์มากขึ้นเท่าไร แต่ละรายการก็ช่วยให้ฉันมีความรู้เกี่ยวกับอีกเรื่องหนึ่ง ฉันพบว่าฉันเขียนโค้ดส่วนหน้าได้ดีขึ้นโดยเขียนโค้ดส่วนหลังและทำความเข้าใจ-

มินะ : ค่ะ ฉันคิดว่าฉันรู้สึกแบบเดียวกัน ตอนนี้ฉันมีความคิดที่ดีขึ้นแล้ว อย่างที่เราพูด ว่าทั้งสแต็กของวิธีที่เราได้รับจากข้อมูลไปยังไคลเอนต์ปลายทาง ฉันพบว่าฉันกำลังคิดเกี่ยวกับไปป์ไลน์ทั้งหมดไม่ว่าฉันจะทำงานในส่วนใดอยู่ก็ตาม ฉันกำลังคิดว่าวิธีที่ดีที่สุดในการจัดโครงสร้าง API นี้คืออะไร เพื่อที่ว่าเมื่อไปที่เทมเพลต ฉันไม่ต้อง จัดการกับข้อมูลที่ฉันได้รับจากส่วนท้ายของมันอย่างมาก มันทำให้ฉันเป็นวิศวกรที่ดีขึ้นอย่างแน่นอน ฉันรู้สึกเหมือนมัน

Drew: If you, dear listener, would like to hear more from Mina, you can follow her on Twitter where she's @MinaMarkham and find her personal site at mina.codes. Thanks for joining us today, Mina. Do you have any parting words?

Mina: Have a smashing night?

Drew: Great.