7 คะแนน โดย xguru 2022-10-23 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือแคชน้ำหนักเบาที่ใช้งานง่าย โดยใช้ Redis (LFU) หรือแคชในตัวของมันเอง (LRU)
  • Node/Express + Typescript + Chart.js + Jest + React + Webpack

3 ความคิดเห็น

 
colus001 2022-10-23

ผมลองดูโค้ดแล้ว มีหลายจุดที่รู้สึกแปลกใจพอสมควรครับ ไม่แน่ใจว่าจะทำงานได้ดีหรือเปล่า โครงสร้างคือเช็กก่อนว่ามีแคชหรือไม่ ถ้าไม่มีก็ให้เซิร์ฟเวอร์ส่ง POST request ไปยัง endpoint อีกครั้ง ทำให้ต้องมี endpoint อยู่สองตัว และเพราะเป็นการแคช GraphQL query แบบเต็ม ๆ เลย เลยคิดว่ายูสเคสก็น่าจะไม่ได้มีมากนักครับ

 
kbsbroad 2022-10-24

ถ้าอย่างนั้น ควรออกแบบ GraphQL cache อย่างไรถึงจะดีครับ? เนื่องจากพารามิเตอร์ของคำขอ GraphQL อาจแตกต่างกันไปในแต่ละกรณี ต่อให้ผมจะจัดการแคชเอง แต่ถ้าฝั่งเซิร์ฟเวอร์มีการทำแคชไว้ ก็ดูเหมือนจะไม่ต่างจาก DacheQL มากนัก เลยอยากทราบว่ามีวิธีที่ดีกว่านี้ไหมครับ? อยู่ ๆ ก็สงสัยขึ้นมาเลยขอถามครับ!

 
colus001 2022-10-24

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