Stories

13 stories published

@Transactional ไม่ใช่แค่แปะแล้วจบ: เจาะลึก Propagation และ Rollback Rules ที่ Dev ต้องรู้

การจัดการ Database Transaction ใน Spring Boot ดูเหมือนง่าย แค่แปะ Annotation @Transactional ไว้บน Method ทุกอย่างก็น่าจะจบ... หรือเปล่า? ความจริงคือ @Transactional มีค่า Default หลายอย่างที่ถ้าเราไ...

Feb 09, 2026 · 3 min read
0 0 0

เลิกใช้ @Autowired บน Field: ทำไม Constructor Injection ถึงดีกว่า?

ในการเขียน Spring Boot เราคุ้นเคยกับการใช้ Dependency Injection (DI) เพื่อดึง Bean มาใช้งาน วิธีที่ง่ายและพบบ่อยที่สุดคือการแปะ @Autowired ไว้บน Field (Field Injection) แม้จะดูสั้นและสะดวก แต่ทีมพ...

Feb 09, 2026 · 2 min read
0 0 0

รู้ทัน Lombok: ทำไมไม่ควรใช้ @Data กับ JPA Entity และวิธีเขียนที่ถูกต้อง

Lombok เป็น Library ที่ช่วยลด Boilerplate code ได้อย่างดีเยี่ยม โดยเฉพาะ Annotation @Data ที่รวมเอา @ToString, @EqualsAndHashCode, @Getter, @Setter และ @RequiredArgsConstructor ไว้ในคำสั่งเดียว แต่...

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

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 · springboot
0 0 0

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

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

Feb 06, 2026 · 3 min read · springboot
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

Spring Boot Testing Mastery: เทสให้เร็ว เทสให้ตรงจุด และการทำ TDD

"การเขียน Test" คือยาขมของ Developer หลายคน สาเหตุไม่ใช่เพราะมันยาก แต่เพราะเรามักจะ "เริ่มต้นผิดวิธี" หลายคนพยายาม Start App ทั้งตัวเพื่อเทสฟังก์ชันเล็กๆ หรือพยายามเขียน Test หลังจาก Code เสร็จจนแ...

Feb 06, 2026 · 5 min read · springboot test
0 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

Page 1 of 2 · 13 stories