แน่นอน. มันเป็นเรื่องที่น่าสนใจ ตอนที่ฉันเริ่มพัฒนาแอปพลิเคชันจริงๆ ตอนที่ฉันเรียนมหาวิทยาลัย นี่คือความสูงของกลุ่ม MEAN มันคือกลุ่ม MERN และเป็นเรื่องดีที่มีชุดเทคโนโลยีนี้ที่ยอมรับว่าเชื่อมต่อได้ไม่สมบูรณ์ แต่มีทรัพยากรในระบบนิเวศเกี่ยวกับวิธีการเชื่อมต่อดังกล่าว และนั่นเป็นจุดเริ่มต้นที่เชื่อถือได้สำหรับการสร้างแอปพลิเคชันจริงและสมบูรณ์ ก่อนหน้านั้น คุณต้องมีเฟรมเวิร์กที่สมบูรณ์ เช่น Rails หรือคุณจะแยกทุกอย่างออกหรือแค่จัดการกับสิ่งที่เกิดขึ้นในโลก .NET ในขณะนั้น สแต็ก MEAN และสแต็ก MERN สอนให้ฉันทราบว่าคุณสามารถมีสแต็กที่ประกอบได้ จากนั้นฉันก็ไปทำงานที่ Twitch โดยทำงานบนสแต็กของพวกเขามาประมาณห้าปี จากนั้นฉันก็ออกไป เข้าร่วมสตาร์ทอัพ สร้างสแต็กของตัวเอง ลาออก เริ่มสตาร์ทอัพของตัวเอง… ฉันกำลังปรับสแต็ก เพิ่มและลบสิ่งต่าง ๆ โดยมีจุดประสงค์เพื่อทำให้เรียบง่ายและประกอบได้… และสุดท้ายฉันก็เลือกใช้เทคโนโลยีชุดนี้ เห็นได้ชัดว่า Next.js เป็นแกนหลักของมัน แต่ในเวลานั้น Next มีภาระหนักมากบน Pages Router พวกเขายังไม่มีเราเตอร์ตัวอื่น และมีหลายสิ่งที่ฉันจะบอกว่าผิดเกี่ยวกับ Pages Router
[00:40:02.12] จริงๆ แล้วฉันแค่ทะเลาะกับผู้ชายที่ทำสิ่งนี้เมื่อเช้าของวันนี้… มันไม่ได้แย่แค่ในทาง “โอ้ มันไม่เป็นระเบียบ” เท่านั้น โดยพื้นฐานแล้วมันขาดทุกสิ่งที่คุณต้องการเพื่อทำข้อมูลอย่างถูกต้องในแอป React… และฉันรู้สึกหงุดหงิดกับสิ่งนี้มากจนมองหาวิธีแก้ปัญหาเพื่อแก้ไขส่วนต่างๆ เหล่านี้ และในที่สุดฉันก็ตัดสินใจเลือกวิธีหนึ่งที่เรียกว่า tRPC ซึ่งก็คือ TypeScript RPC ซึ่งช่วยให้คุณเขียนโค้ดแบ็กเอนด์ที่เป็นเพียงฟังก์ชัน TypeScript จากนั้นเรียกโค้ดนั้นในส่วนหน้า โดยใช้ฟังก์ชัน TypeScript เท่านั้น และอนุมานประเภทย้อนหลัง… และมันก็เป็นประสบการณ์ที่ดีจริงๆ การตั้งค่าอย่างถูกต้องไม่เป็นที่พอใจ แต่การใช้งานก็เยี่ยมมาก ฉันก็เลยเอาอันนี้มา
ในตอนแรก ฉันลังเลมากเกี่ยวกับ Tailwind แต่สุดท้ายฉันก็ชอบมัน ฉันนำสิ่งนี้มา Prisma เป็น ORM ที่แข็งแกร่ง ดังนั้นฉันจึงนำสิ่งนั้นมา เราต้องการ Auth ดังนั้นฉันจึงเพิ่ม Next Auth และพบว่า “โอ้ ฉันรวบรวมสแต็กโมดูลาร์ของตัวเองไว้ที่นี่” ชิ้นส่วนใดๆ สามารถแลกเปลี่ยนเป็นโซลูชันอื่นได้ หรือหากคุณไม่ต้องการชิ้นส่วนใดๆ ก็สามารถปล่อยทิ้งไว้ได้เลย แต่มีเทคโนโลยีต่าง ๆ มากมายที่ผสมผสานกันอย่างลงตัว
ฉันเสนอสิ่งนี้ให้เพื่อนบน Twitter ซึ่งคิดว่ามันเจ๋ง แต่ก็ไม่เห็นว่ามันจะดีแค่ไหน เขามีโปรเจ็กต์โอเพ่นซอร์สที่ยุ่งเกี่ยวกับ Firebase ขนาดยักษ์ และฉันเขียนใหม่ทั้งหมดภายในสองชั่วโมงโดยใช้สแต็กของฉัน มันเป็นหนึ่งในห้าของโค้ด มันเป็นแอปพลิเคชันที่เร็วกว่า… และเขาก็ตระหนักว่า “โอ้ มันเจ๋งมาก ทำไมไม่มีใครทำเช่นนี้เลย” มีคนอยากได้ยินเกี่ยวกับมันและเห็นมันมากขึ้น ดังนั้นฉันจึงถ่ายทอดสดบน Twitch เป็นครั้งแรกในรอบนาน และเพิ่งสตรีมการสร้างตัวเองด้วยสแต็กนี้ ฉันโพสต์ไว้ใน YouTube เพราะฉันต้องการ [unintelligible 00:41:33.04] ฉันกำลังสร้างเครื่องมือสำหรับผู้สร้าง… พวกเขาทำได้ดีมาก
ดังนั้น Dan Abramov จึงเสนอให้จำลองการสัมภาษณ์งาน ฉันเป็นแฟนตัวยงของวัฒนธรรมการสัมภาษณ์และจ้างงานได้ดี ดังนั้นฉันจึงเสนอที่จะเชิญเขาให้ทำเช่นนี้ เขาทำได้ และจากการสัมภาษณ์งานจำลองสี่หรือห้าครั้งที่เขาทำ หลายๆ ครั้งผ่านไปด้วยดีจริงๆ แต่การจะทำตัวหยิ่งๆ สักวินาที ของฉันดีที่สุด เพราะคนอื่นๆ ไม่ใช่คนจ้างงานมาหลายปีแล้ว และฉันได้สัมภาษณ์มามากกว่า 500 ครั้งแล้ว… ดังนั้นฉันคิดว่าฉันทำได้ดีมากโดยเน้นย้ำถึงความสามารถของเขาและแสดงให้เห็นว่าการสัมภาษณ์กับคนแบบเขาจะเป็นอย่างไร วิดีโอนั้นกลายเป็นไวรัลเกือบจะในทันที… แต่จากนั้นมันก็แสดงการสาธิตของ T3 Stack ซึ่งค่อยๆ กลายเป็นหนึ่งในวิดีโอที่ได้รับความนิยมมากที่สุดใน dev ซึ่งยังคงแปลกสำหรับฉันเพราะมันเป็นฉันแค่ *บี๊บ* ในสตรีม แสดงให้ผู้คนเห็นเทคโนโลยีนี้ที่ฉันชอบ… และมันถูกสร้างใหม่เป็นบทช่วยสอนของสแต็กนั้นที่ผู้คนตื่นเต้นมาก ฉันตื่นเต้นมากที่มันผ่านไปด้วยดี
ส่วนที่ขาดหายไปคือฉันไม่เคยสร้างจุดเริ่มต้นเลย… เพราะประเด็นก็คือว่ามันเป็นแบบโมดูลาร์ คุณเริ่มต้นขั้นตอนถัดไปและเพิ่มและลบส่วนที่จำเป็น ใครๆ ก็ขอเทมเพลตจากฉัน และฉันก็แบบว่า “ไม่ ถ้าฉันให้เทมเพลตให้คุณ คุณจะบล็อกด้วย Prisma และ Next Auth คุณไม่จำเป็นต้องใช้สิ่งเหล่านี้สำหรับปัญหาเหล่านี้”