ก่อนปิดบท
ทายว่ากฎอยู่ชั้นไหน
แปดข้อ ทุกข้อคือ diff ที่ agent กำลังจะส่งมาให้รีวิว คุณต้องบอกว่ากฎอยู่ผิดชั้นตรงไหน หรืออะไรจะหายไปเงียบ ๆ ตอบผิดได้ แต่อ่านคำอธิบายให้ครบ
ข้อ 1 / 8
กฎ “สมาชิก Gold ลด 10% ไม่เกิน 500 บาท” อยู่ใน useMemo ของหน้า checkout agent กำลังจะสร้าง LINE bot ให้สั่งซื้อได้ คุณคาดว่าจะเกิดอะไร?
1 · Dependency Rule กฎติดไปกับหน้าจอ พอเพิ่มช่องทางใหม่ ช่องทางนั้นมองไม่เห็นกฎใน component เดิม กฎต้องอยู่ชั้นใน (core/pricing.ts) ให้ทุกช่องทางเรียก ดูบนกระดาน 1 · Dependency Rule →
ข้อ 2 / 8
ใน Clean Architecture ลูกศร dependency ของ source code ชี้ไปทางไหน?
1 · Dependency Rule core/ ประกาศ port ของตัวเอง ชั้นนอกทุกตัว implement port นั้นแล้วชี้เข้ามา ถ้า core/ import React, Prisma หรือ LINE SDK ลูกศรชี้ผิดทาง ดูบนกระดาน 1 · Dependency Rule →
ข้อ 3 / 8use case รับ
use case รับ req: NextRequest แล้วอ่าน header เอง วันที่ Next.js เปลี่ยน headers() เป็น async จะต้องแก้ที่ไหนบ้าง?
2 · Crossing Boundaries use case รับของจาก framework ตรง ๆ พอ framework เปลี่ยน use case ทุกตัวต้องแก้ตาม ถ้า route แปลง request เป็น command ธรรมดาก่อนส่งเข้า จะแก้แค่ชั้นนอกบรรทัดเดียว ดูบนกระดาน 2 · Crossing Boundaries →
ข้อ 4 / 8
อะไรควรเป็นสิ่งที่ข้ามเส้นเข้าไปใน use case?
2 · Crossing Boundaries สิ่งที่ข้ามเส้นต้องเป็นข้อมูลธรรมดาในภาษาของเรา ไม่ใช่ type ของ framework หรือ row ของ DB ชั้นนอกแปลง request/event/row ให้ก่อน และแปลงกลับตอนรับออก คอลัมน์เปลี่ยนชื่อจึงแก้ที่ตัวแปลงที่เดียว ดูบนกระดาน 2 · Crossing Boundaries →
ข้อ 5 / 8
“ขยายเพดานส่วนลด Gold จาก 500 เป็น 800” จะรู้ว่าแก้ถูกไหม ต้องเปิดเบราว์เซอร์ login เป็น Gold เพิ่มของ 15,000 บาท แล้วรอ Stripe test mode รวม 95 วินาที ปัญหาที่แท้จริงคืออะไร?
3 · Humble Object กฎที่เช็กได้แค่ผ่านหน้าจอ ต้องเปิดเบราว์เซอร์ทุกครั้งที่อยากรู้ว่ายังถูก สัปดาห์ที่สาม agent จะข้ามมัน แยกกฎออกมาให้เช็กได้ใน 8 ms แล้วให้หน้าจอเหลือแค่วาด ดูบนกระดาน 3 · Humble Object →
ข้อ 6 / 8
Humble Object คืออะไร?
3 · Humble Object กฎรับตัวเลข คืนตัวเลข เช็กได้โดยไม่ต้องมีเบราว์เซอร์หรือ DB ส่วนที่ทดสอบยาก (หน้าจอ) ให้เหลืองานน้อยที่สุดจนแทบไม่ต้องทดสอบ ดูบนกระดาน 3 · Humble Object →
ข้อ 7 / 8“ย้ายฐานข้อมูลจาก Prisma ไป Drizzle” แต่
“ย้ายฐานข้อมูลจาก Prisma ไป Drizzle” แต่ new PrismaClient() กระจายอยู่ใน 23 ไฟล์ ความเสี่ยงที่สุดคืออะไร?
4 · Main Component การสร้างของ (new) กระจายอยู่ทุกไฟล์ อยากรู้ว่าอะไรต่อกับอะไรต้องเปิดทีละไฟล์ ถ้าทุกอย่างถูกสร้างใน main.ts แล้วส่งเข้าเป็นพารามิเตอร์ ย้าย DB = แก้สองไฟล์ ดูบนกระดาน 4 · Main Component →
ข้อ 8 / 8โครงโฟลเดอร์
โครงโฟลเดอร์ components/ hooks/ utils/ lib/ กับ core/pricing core/reserve-seats infra/prisma app/ bot/ ต่างกันอย่างไรสำหรับ agent?
ชื่อโฟลเดอร์คือ prompt แรกของ agent ถ้ามันตะโกนว่าระบบทำอะไร กฎมีสำเนาเดียว ถ้ามันตะโกนว่าใช้เทคโนโลยีอะไร กฎจะมีสำเนาเท่ากับจำนวนช่องทาง
คะแนนเก็บในเบราว์เซอร์ของคุณเท่านั้น