GyaanSetu JavaScript

ระบบนิเวศ JavaScript และ TypeScript

100 articlesDeep, practical knowledge

ความเป็นมาตรฐานเดียวกันไม่ใช่เป้าหมายที่คุณจะไปถึง แต่มันคือค่าสมาชิกที่คุณต้องจ่าย ทุกองค์กรด้านวิศวกรรมจะค้นพบสิ่งนี้ในที่สุด

ความเป็นมาตรฐานเดียวกันไม่ใช่เป้าหมายที่คุณจะไปถึง แต่มันคือค่าสมาชิกที่คุณต้องจ่าย ทุกองค์กรด้านวิศวกรรมจะค้นพบความจริงนี้ในที่สุด โดยมักจะเป็นช่วงเวลาที่ทีมที่สองหรือสามเริ่ม...

JavaScript · 6 min read

มีรายงานบั๊กที่ท้าทายทุกสัญชาตญาณในการดีบั๊ก ผู้ใช้โทรศัพท์ Android สเปกต่ำบอกว่าแอปหายไปเฉยๆ

มีรายงานบั๊กที่ท้าทายทุกสัญชาตญาณในการดีบั๊ก ผู้ใช้โทรศัพท์ Android สเปกต่ำบอกว่าแอปหายไปเฉยๆ ไม่ใช่ตอนเปิดแอป ไม่ใช่ตอนแตะหรือปัดหน้าจอจุดไหนเป็นพิเศษ ประมาณ...

JavaScript · 6 min read

เมื่อคุณกำลังพัฒนาด้วย Node.js การจัดการข้อผิดพลาดดูเหมือนจะง่ายจนเกินไปในช่วงแรก คุณแค่ครอบ route ด้วย try catch แล้วส่ง

เมื่อคุณกำลังพัฒนาด้วย Node.js การจัดการข้อผิดพลาดดูเหมือนจะง่ายจนเกินไปในช่วงแรก คุณแค่ครอบ route ด้วย try catch ส่ง status code 500 กลับไป แล้วปล่อยให้ฝั่ง client ตัดสินใจว่าจะทำอย่างไรต่อไป...

JavaScript · 5 min read

ไฟล์คอนฟิกที่เพิ่งใช้งานได้เมื่อห้าวินาทีก่อน ตอนนี้กลายเป็นเศษซาก JSON ที่พังเสียหายขนาด 347 ไบต์ เครื่องมือ CLI ของคุณจะไม่เริ่มทำงาน และ

ไฟล์คอนฟิกที่เพิ่งใช้งานได้เมื่อห้าวินาทีก่อน ตอนนี้กลายเป็นเศษซาก JSON ที่พังเสียหายขนาด 347 ไบต์ เครื่องมือ CLI ของคุณจะไม่เริ่มทำงาน ผู้ใช้งานที่เพียงแค่กด Ctrl C เพราะการอัปเดตนั้นใช้เวลา...

JavaScript · 6 min read

หากคุณเคยขอให้นักพัฒนา “ขยายโลโก้ให้ใหญ่ขึ้น” หรือบอกดีไซน์เนอร์ว่า “ช่วยแก้ข้อผิดพลาดของฐานข้อมูลหน่อย” คุณก็ไม่ใช่

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

JavaScript · 3 min read

ผู้เล่นเกลียดการต้องแพ้เพราะปัญหาทางเทคนิค ทั้งที่แพลตฟอร์มก็ชัดเจน จังหวะก็เป๊ะ แต่แล้วเกมกลับทำให้พวกเขาต้องจบเกมลง

ผู้เล่นเกลียดการต้องแพ้ในการเล่นเพราะปัญหาทางเทคนิค ทั้งที่แพลตฟอร์มก็ชัดเจน จังหวะก็เป๊ะ แต่แล้วเกมกลับทำให้พวกเขาต้องจบเกมลง ไม่ใช่เพราะพวกเขาทำพลาด แต่เป็นเพราะเบราว์เซอร์...

JavaScript · 6 min read

การเขียน TypeScript 7 ใหม่ด้วยภาษา Go ช่วยลดเวลาคอมไพล์ของ VS Code ลงถึง 11.9 เท่า เหลือเพียง 1.3 วินาที

Microsoft ได้สร้างคอมไพเลอร์ขึ้นมาใหม่ด้วยภาษา Go เพื่อแทนที่เอนจินเดิมที่ทำงานบน Node โดยการทำ parallel parsing และ type-checking ช่วยลดเวลาคอมไพล์ของ VS Code จาก 17.5 วินาที เหลือไม่ถึง 1.3 วินาที และยังช่วยลดการใช้หน่วยความจำลงได้สูงสุดถึง 26% ในโปรเจกต์ที่มีโค้ดขนาดใหญ่

JavaScript · 2 min read

เผยความล้มเหลวแบบเงียบ (Silent Failures) ของ Supabase-JS ผ่าน TypeScript Mutate Wrapper ตัวใหม่

TypeScript wrapper ขนาดเล็กที่บังคับให้นักพัฒนาต้องจัดการกับฟิลด์ `error` ที่ส่งกลับมาจาก supabase-js โดยจะทำการบันทึก (log) ทุกการเขียนข้อมูลที่ล้มเหลวไปยัง Sentry และช่วยป้องกันไม่ให้ UI แสดงเครื่องหมาย “success” ที่อาจปกปิดข้อมูลที่ไม่ได้มีการเปลี่ยนแปลงจริง

JavaScript · 4 min read

Vite 8 ลดเวลาการ Build ลงถึง 10 เท่าด้วย Rolldown ที่ขับเคลื่อนด้วย Rust

คู่มือ Vite 8: Build เร็วขึ้น 10 เท่า เวลาในการ Build สำหรับการพัฒนา Frontend ได้เปลี่ยนไปแล้วในเดือนมีนาคม 2026 Vite 8 มาพร้อมกับ Rolldown ซึ่งเป็น bundler ที่สร้างขึ้นด้วย Rust โดยจะเข้ามาแทนที่ทั้ง esbuild และ...

JavaScript · 3 min read

SolidJS 2.0 ช่วยให้ทีม React รักษาความเสถียรของ UI ได้แม้ในขณะที่กำลังรีเฟรชข้อมูล

SolidJS 2.0 นำเสนอโมเดล async-data แบบ native ที่ทำให้ promises เป็นค่า reactive แบบ first-class ส่งผลให้การแสดงผล fallback จะเกิดขึ้นเฉพาะในการโหลดครั้งแรกเท่านั้น ส่วนการรีเฟรชข้อมูลในครั้งต่อๆ ไปจะยังคงรักษา DOM เดิมไว้บนหน้าจอ ช่วยลดปัญหาการกะพริบของตัวโหลด (spinners) ที่มักพบใน React’s Suspense

JavaScript · 5 min read

ทีม React ลดค่า INP ให้ต่ำกว่า 200 ms ด้วยการแบ่ง Long Tasks และการใช้ startTransition

แม้จะมีคะแนน Lighthouse ที่สมบูรณ์แบบ แต่ค่า Interaction to Next Paint (INP) จากผู้ใช้งานจริงอาจสูงเกิน 500 ms ได้ ด้วยการแบ่ง long tasks ออกเป็นส่วนย่อยๆ ด้วย scheduler.yield, การครอบการอัปเดตที่ไม่เร่งด่วนด้วย startTransition และการตัด DOM ที่อยู่นอกหน้าจอออก คุณจะสามารถลดค่า INP ให้ต่ำกว่าเกณฑ์ "เร็ว" ที่ 200 ms ได้

JavaScript · 2 min read

TypeScript 7 ช่วยลดเวลาการ Build Monorepo ด้วยการตรวจสอบ Declaration แบบขนาน

โหมด isolated declarations แบบใหม่ช่วยกระจายการตรวจสอบไฟล์ .d.ts ไปยัง CPU core ต่างๆ ช่วยลดรอบการคอมไพล์สำหรับ repository ที่มีแพ็กเกจหลายร้อยรายการ และช่วยประหยัดทรัพยากรบน CI agents ที่ทำงานบนฮาร์ดแวร์แบบ multi-core ได้ทันที

JavaScript · 2 min read

pnpm v12 Alpha ลดเวลาการติดตั้งแบบ Warm จาก 381 ms เหลือเพียง 12 ms ด้วยการเขียนใหม่ด้วยภาษา Rust

ไบนารี Rust แบบ Native ตัวใหม่ช่วยลดเวลาการติดตั้งแบบ Warm ลงถึง 30 เท่า ลดการติดตั้งแบบไม่มีแคชเหลือเพียง 40 ms และลดการติดตั้งแบบ full-tree ลงเหลือ 2.2 วินาที ซึ่งช่วยให้ CI pipelines ทำงานได้เร็วขึ้นอย่างมหาศาล โดยที่ยังคงใช้ CLI flags และรูปแบบ lockfile เดิม

JavaScript · 2 min read

กล่องสีดำที่ใช้ปกปิดข้อมูลอาจไม่ปลอดภัยอย่างที่คิด – วิธีการใหม่เปลี่ยนหน้าที่มีข้อมูลอ่อนไหวให้เป็นรูปภาพ

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

JavaScript · 3 min read

Auto-Animate เพิ่มแอนิเมชันรายการแบบไม่ต้องเขียนโค้ดให้กับ Marko 6

แพ็กเกจ @formkit/auto-animate/marko ตัวใหม่สามารถติดตั้งผ่าน npm ได้ทันที เพียงแค่ครอบ parent ของ list ด้วย <AutoAnimate> และใช้ MutationObserver เพื่อสร้างแอนิเมชันเมื่อมีการเพิ่ม ลบ หรือจัดลำดับรายการใหม่ โดยไม่ต้องใช้ JavaScript หรือ lifecycle hooks เพิ่มเติม

JavaScript · 2 min read