ภาษา:
Backend
Query ที่ช้าแทบไม่เคยเป็นปริศนา ถ้าคุณอ่าน execution plan ของมันเป็น คู่มือนี้อธิบาย EXPLAIN ANALYZE แล้วแก้ปัญหาที่เป็นต้นเหตุของ query ช้าส่วนใหญ่ ได้แก่ N+1, filter ที่ไม่ sargable, การประมาณจำนวนแถวผิดพลาด, pagination ที่ลึกเกินไป และการดึงข้อมูลมากเกินจำเป็น
24 ก.ย. 2569·อ่าน 6 นาที
ปัญหาเชิง graph อยู่เบื้องหลังระบบวางแผนเส้นทาง ระบบแนะนำสินค้า การตรวจจับการทุจริต และการ resolve dependency และมักช้าลงในแบบที่คาดไม่ถึง บทความนี้อธิบายการเลือก traversal algorithm ให้เหมาะสม การเก็บ graph ให้กะทัดรัด การตัดพื้นที่การค้นหา และการปรับแต่ง query ใน graph database
เมื่อ request เดียววิ่งผ่าน service กว่ายี่สิบตัว คำว่า "ลองไปดู log สิ" ก็ใช้ไม่ได้อีกต่อไป บทความนี้อธิบายว่า distributed tracing, metrics ที่เลือกมาอย่างดี และ structured logs ทำงานร่วมกันอย่างไร พร้อมวิธีติดตั้ง instrumentation ด้วย OpenTelemetry โดยไม่จมอยู่กับข้อมูลล้นมือ
24 ก.ย. 2569·อ่าน 5 นาที
ในระบบแบบกระจาย (distributed system) ทุก network call อาจล้มเหลว ค้าง หรือสำเร็จซ้ำสองครั้งได้ บทความนี้เปรียบเทียบการสื่อสารแบบ synchronous กับแบบ event-driven และอธิบายเรื่อง timeout, retry พร้อม backoff, idempotency key, circuit breaker และ outbox pattern
ปัญหาส่วนใหญ่ของ microservices ย้อนกลับไปที่การตัดสินใจเรื่องเดียว คือขอบเขตของแต่ละ service ถูกวาดไว้ตรงไหน บทความนี้อธิบายการใช้ bounded context, aggregate และแบบทดสอบเชิงปฏิบัติอีกไม่กี่ข้อ เพื่อแบ่งระบบออกเป็น service ที่เปลี่ยนแปลงได้อย่างอิสระต่อกัน
การเดาสาเหตุของปัญหาประสิทธิภาพทำให้เสียเวลาไปหลายวัน Go มี profiler ในตัวที่บอกได้ว่าเวลา CPU และหน่วยความจำถูกใช้ไปที่ไหนจริง ๆ บทความนี้พาไปดูการเก็บ CPU profile, heap profile และ allocation profile การอ่าน flame graph และวิธีแก้ปัญหาที่เจอบ่อยที่สุดจากผลลัพธ์เหล่านั้น
error แบบ explicit และ package แบบแบน ๆ ของ Go ดูง่ายในช่วงแรก แต่จะเริ่มสร้างปัญหาเมื่อโค้ดโตถึง 50,000 บรรทัด บทความนี้รวบรวมแนวปฏิบัติที่ช่วยให้ service ภาษา Go ที่กำลังเติบโตยังอ่านง่าย ทั้งการ wrap error พร้อม context, sentinel error และ typed error รวมถึงการจัดโครงสร้าง package ตามหน้าที่การทำงาน
การสร้าง goroutine ใช้แค่คีย์เวิร์ดเดียว แต่การปิดมันให้เรียบร้อย การจำกัดจำนวนที่รันพร้อมกัน และการป้องกันไม่ให้ goroutine รั่ว ต้องอาศัยการออกแบบ บทความนี้รวบรวม pattern ที่เราใช้เขียน concurrent service ด้วย Golang ให้ทำงานได้คาดเดาได้แม้เจอโหลดหนัก
แสดง 28-35 จาก 35 บทความ
เล่าโปรเจคของคุณให้เราฟัง — เราจะพาคุณไปถึง
เมื่อคลิก “ยอมรับคุกกี้ทั้งหมด” แสดงว่าคุณยินยอมให้จัดเก็บคุกกี้บนอุปกรณ์ของคุณ เพื่อปรับปรุงการใช้งานเว็บไซต์ วิเคราะห์การใช้งาน และช่วยงานการตลาดของเรา
เลือกคุกกี้ที่เราใช้ได้ คุกกี้ที่จำเป็นช่วยให้เว็บไซต์ทำงานได้และเปิดใช้งานเสมอ