Stories

9 stories published

Clean Controller: เลิกเขียน If เช็ค null ให้รกรุงรัง จัดการ Input Validation ด้วย Bean Validation (@Valid)

หนึ่งใน "Bad Smell" ที่ผมเจอบ่อยที่สุดเวลา Code Review คือ Controller ที่เต็มไปด้วย Logic การตรวจสอบข้อมูล (Validation Logic) ครับ เคยเห็น Code หน้าตาแบบนี้ไหมครับ? Code แบบนี้ไม่ได้ผิดครับ แต่มัน...

Feb 06, 2026 · 2 min read
0 0 0

JPA Performance: อย่าตกม้าตายเรื่อง N+1 Select ปัญหาคลาสสิกที่ Dev ชอบลืม

เคยไหม? เขียน Code ในเครื่อง Local เร็วปรื๊ด เทสข้อมูล 10-20 แถวผ่านฉลุย แต่พอ Deploy ขึ้น Production เจอข้อมูลจริงหลักพันหลักหมื่นเข้าไป กราฟ CPU พุ่งปรี๊ด Database ร้องขอชีวิต ทั้งที่ Logic ก็ดูไ...

Feb 06, 2026 · 3 min read
0 0 0

Manage Env like a Pro เลิกแก้ไฟล์ .env มือเปล่า เปลี่ยน Config ให้เป็น Code ด้วย Spring Cloud Config

ปัญหา: "Black Box Deployment" เวลาเรา Deploy ขึ้น Server ปัญหาที่เจอบ่อยคือ: Blindness: ตอนนี้ Server รันด้วยค่าอะไรอยู่? (ต้อง SSH ไป cat .env ดู ซึ่งไม่ปลอดภัย) Manual Error: ลืมเพิ่ม Env ตัวใหม่...

Feb 05, 2026 · 3 min read · springboot
1 0 0

Database Migration with Flyway: เลิก Run SQL ด้วยมือ จัดการ Version Database ให้เหมือน Code

ทำไม Database ถึงต้องมี Version Control? ปัญหาคลาสสิกที่ Dev ทุกคนต้องเคยเจอ: Dev A: เพิ่ม column phone_number ในตาราง User แล้ว commit code ขึ้น Git Dev B: Pull code มา run -> App พัง! เพราะ Da...

Feb 05, 2026 · 2 min read · springboot migration
0 0 0

Spring Boot Caching: การเลือกใช้ Local Cache และ Redis ให้เหมาะกับสเกลของระบบ

เข้าใจ Caching Strategy: เริ่มต้นอย่างไรและเมื่อไหร่ควรขยับไป Redis การทำ Caching คือหนึ่งในวิธีที่คุ้มค่าที่สุดในการเพิ่ม Performance ให้กับ Application แต่ความท้าทายไม่ได้อยู่ที่การเขียนโค้ด แต่อ...

Feb 04, 2026 · 2 min read · springboot caching
1 0 0

เลิกครอบ try-catch ใน Controller จัดการ Error ให้เป็นมาตรฐานด้วย ProblemDetail (Spring Boot 3+)

คุณเคยเขียน Controller ที่เต็มไปด้วย try-catch เพื่อดัก Error แล้วปั้น Response กลับไปหา User ไหม? Code ที่ Dev ส่วนใหญ่เหนื่อยที่จะเขียน: ปัญหาคืออะไร? (The Impact) Code รก: Controller ควรมีหน้าท...

Feb 04, 2026 · 2 min read · springboot
1 0 0

เลิกใช้ @Value พร่ำเพรื่อ จัดระเบียบ Config ให้โปรด้วย Type-safe Configuration

หนึ่งในสิ่งที่ทำให้ Code ดู "สกปรก" และดูแลยากที่สุดใน Spring Boot คือการเห็น Annotation @Value("${...}") กระจายอยู่เต็มไปหมด Code ที่ Dev ส่วนใหญ่คุ้นเคย: ปัญหาคืออะไร? (The Impact) Code นี้ทำงาน...

Feb 03, 2026 · 2 min read · springboot
3 0 0

เร่งสปีด Database 10x ด้วย JPA Projections

ปัญหาคลาสสิกของคนทำ Spring Boot คือ "Over-fetching" ครับ สมมติคุณมี Entity ชื่อ Product ซึ่งภายในมีข้อมูลเยอะมาก ทั้ง description ยาวเหยียด, blob รูปภาพ, หรือ List<Review> ที่ join กันยุ่งเหย...

Feb 03, 2026 · 2 min read · springboot
2 0 0

พลังเงียบของ Spring Events ที่ Java Dev ชอบมองข้าม

คุณเคยเจอสถานการณ์แบบนี้ไหม? เมื่อ User สมัครสมาชิกเสร็จ (registerUser) สิ่งที่ระบบต้องทำต่อคือ: ส่ง Welcome Email ส่ง Notification เข้า Slack ทีม สร้าง Wallet เริ่มต้นให้ User เก็บ Log ลง Audit Se...

Feb 02, 2026 · 2 min read · springboot
3 1 1