ข้าม​ไป​ยัง​เนื้อหา

คำ​ตอบ​ที่​คลินิก​จำ​ไว้ — cache ที่​จำ​คำ​ตอบ แต่​ลืม​ว่า​ใคร​ถาม

คอร์ส​ก่อน​หน้า​จบ​ด้วย​การ​ปิด​รู​ข้าม​ผู้​เช่า รู​ที่​ไม่มี​รหัส​ข้อ​ผิด​พลาด​ให้​ดู​สัก​ตัว เพราะ​คำขอ​นั้น​สำเร็จ หน่วย​เดียว​ที่​จับ​มัน​ได้​คือ​จำนวน​แถว จาก​นั้น​เพิ่ม​ชั้น​ที่​จำ​คำ​ตอบ​ไว้ ไม่​แก้​กฎ​ของ​โดเมน​สัก​บรรทัด แล้ว​วัด​ใหม่ รู​กลับ​มา​เต็ม​รูป ผู้​เรียก​ของ​คลินิก​หนึ่ง​ได้​แถว​ของ​อีก​คลินิก​พร้อม​รหัส 200 คอร์ส​นี้​จึง​ไม่ใช่​คอร์ส​สอน​วิธี​เปิด cache มัน​คือ​คอร์ส​ที่​ถาม​ว่า​กุญแจ​ของ​คำ​ตอบ​ที่​จำ​ไว้ นับ​ใคร​เป็น​ผู้​ถาม และ​ถาม​ต่อว่า​อะไร​ทำให้​เทสต์​ที่​เคย​จับ​รู​นี้​ได้ เงียบ​ไป​ทั้ง​ชุด
ความคืบหน้า0 / 8 บทเรียน

คอร์ส​ก่อน​ปิด​รู​ข้าม​ผู้​เช่า​ไว้​ที่​บท​สุดท้าย คอร์ส​นี้​ถาม​ว่า​ชั้น​ที่​จำ​คำ​ตอบ​ไว้ ทำให้​รู​นั้น​กลับ​มา​ไหม

คอร์ส​คัด​กรอง​ผู้​เรียก​ของ​คลินิก จบ​ด้วย​กฎ​ที่​บอก​ว่า​ผู้​เรียก เห็น​ได้​เฉพาะ​แถว​ของ​ผู้​เช่า​ตัว​เอง กฎ​นั้น​มี​เทสต์​บังคับ​ไว้​แล้ว และ​รู​ที่​มัน​ปิด​เป็น​รู​ที่​ไม่มี รหัส HTTP ให้​ดู เพราะ​คำขอ​ที่​รั่ว​นั้น​สำเร็จ

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

คำ​ตอบ​ที่​วัด​ได้​คือ​รู​กลับ​มา​เต็ม​รูป ผู้​เรียก​ของ​คลินิก​ที่​สอง​ได้​สอง​แถว​ของ​คลินิก​แรก พร้อม​รหัส 200 และ​สาม​คำขอ​ทำให้​ฐาน​ข้อมูล​ถูก​ถาม​ครั้ง​เดียว

ส่วน​คำถาม​ว่า​มี​อะไร​แดง​บ้าง คำ​ตอบ​ไม่ใช่​ไม่มี เทสต์​ของ​คอร์ส​ก่อน​แดง​จริง​ใน​ทรง​หนึ่ง และ​เขียว​ใน​อีก​ทรง​หนึ่ง ความ​ต่าง​อยู่​ที่​หนึ่ง​บรรทัด​ใน config ของ​เทสต์ ไม่​ได้​อยู่​ที่ code ของ​แอป​สัก​ตัว​อักษร

ประกาศ​ไว้​ตรง​นี้ เพื่อ​ไม่​ให้​ใคร​อ่าน​จบ​แล้ว​เชื่อ​ว่า​ได้​ของ​ที่​คอร์ส​นี้​ไม่​ได้​ให้

  • ไม่​วัด​ความเร็ว ทั้ง​คอร์ส​ไม่มี​หน่วย​เวลา​สัก​ตัว หน่วย​คือ​จำนวน​แถว จำนวน query ชื่อ​กุญแจ และ​รหัส HTTP เหมือน​สาม​คอร์ส​ก่อน​หน้า​ใน​ซี​รีส์​เดียวกัน
  • ไม่​ตั้ง Redis เพราะ​มัน​พา TTL เข้า​มา ซึ่ง​เป็น​หน่วย​เวลา และ​ต้อง​มี container ใบ​ที่​สอง ถ้า​วัน​หนึ่ง​จะ​สอน มัน​ควร​เป็น​คอร์ส​ของ​ตัว​เอง
  • ไม่​สอน cache stampede ต้อง​มี​ผู้​เรียก​พร้อม​กัน​หลาย​ราย ซึ่ง​วัด​แบบ​ไม่มี race ไม่​ได้ ใน​แปดบท​นี้
  • ไม่​แตะ HTTP caching อย่าง ETag กับ Cache-Control เป็น​คนละ​ชั้น​และ​คนละ​คำถาม
  • ไม่​สอน second-level cache ของ JPA มัน​เป็น​ชั้น​ใต้ repository ส่วน​คอร์ส​นี้​อยู่​เหนือ​มัน

ต้อง​ผ่าน​คอร์ส​ที่ 35 มา​ก่อน ส่วน​ความ​รู้​เรื่อง​กลไก cache ของ Spring ไม่​ต้อง​มี

  • ผ่าน คอร์ส​คัด​กรอง​ผู้​เรียก​ของ​คลินิก มา​แล้ว เพราะ​คอร์ส​นี้ วัด​สัญญา​ที่​คอร์ส​นั้น​สร้าง​ไว้ ไม่​ได้​สร้าง​สัญญา​ขึ้น​ใหม่
  • อ่าน Kotlin ออก​และ​เคย​เขียน Spring Boot มา​ก่อน ระดับ​ที่​รู้​ว่า bean มา​จาก​ไหน​ก็​พอ
  • ไม่​ต้อง​รู้จัก @Cacheable มา​ก่อน ทุก​กลไก​ถูก​อธิบาย​ตอน​ที่​มัน​โผล่​ครั้ง​แรก
  • ต้อง​มี Docker กับ Gradle เพราะ​ทุก​ข้อ​อ้าง​ใน​คอร์ส​นี้​มา​จาก probe ที่​คุณ​รัน​เอง​ได้

แผนผัง​นี้​เติม​ขึ้น​เอง​เมื่อ​บท​เรียน​ถูก​เพิ่ม​เข้า​มา