การออกแบบ Service API ให้เป็น Idempotent

Photo by William Iven on Unsplash

ใครเคยเรียกใช้งานเซอร์วิซครั้งเดียว (เช่น การโอนเงิน สั่งซื้อของ ฯลฯ) แล้วเจอ Transaction ตัดซ้ำสองครั้งไหมครับ?

ถ้าใช่ คุณเจอปัญหาเรื่อง Idempotent เข้าให้แล้วล่ะ

เราเคยคุยกันในเรื่องของRetryไปแล้ว ว่าอาจจะถล่มเซอร์วิซตัวเองได้ หากไม่จัดการให้ดี

มานั่งตรึกตรองดูอีกที จริงๆแล้วผมลืมอีกคอนเซ็บหนึ่งที่สำคัญมากเวลาเราใช้ Retry นั่นก็คือเรื่อง Idempotent ซึ่งเป็นที่มาของ เคส Transaction เกิดขึ้นสองที

บทความนี้จะเริ่มต้นจากต้นตอของปัญหานี้ก่อน เพื่ออธิบายให้เห็นภาพว่าเกิดอะไรขึ้น และเสนอวิธีการแก้ปัญหาในตอนท้ายครับ

การออกแบบ Service API ให้ Backward-Compatible

Photo by Iker Urteaga on Unsplash

“APIs, like diamonds, are forever” – Xebia Essentials

เรานิยมเลือกใช้เพชรในแหวนแต่งงาน เพื่อแสดงความเป็นนิรันดร์

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

วิธีการวัด Technical Skill ในการสัมภาษณ์งาน

ในบทความที่แล้ว เราคุยกันในเรื่อง Soft skill ของผู้สมัครด้วย Behavioral Interview

บทความนี้จะพูดถึงรูปแบบในการวัด Technical Skill กันบ้าง โดยผมจะยกตัวอย่างวิธีการวัด Technical Skill ต่างๆที่ผมเคยเจอมา ซึ่งแต่ละแบบก็จะมีข้อดีข้อเสียแตกต่างกัน

Photo by Helloquence on Unsplash

สัมภาษณ์งานด้วย Behavioral Interview

Photo by Alejandro Escamilla on Unsplash

ในบทความที่แล้ว เราคุยกันไปในเรื่องกระบวนการสัมภาษณ์งานโดยรวม (Process)

สำหรับบทความนี้ เราจะมาเจาะลึกลงไปในเรื่องการถามคำถามกัน

โดยหลักๆแล้ว คำถามในการสัมภาษณ์งานโปรแกรมเมอร์ จะวัดเกณฑ์สองด้าน คือ Technical skill และ Soft skill

บทความนี้จะคุยกันเรื่องการวัด Soft skill ด้วยเทคนิคที่เรียกว่า Behavioral Interview ครับ

ปัญหาในการสัมภาษณ์งานโปรแกรมเมอร์

Photo by Nik MacMillan on Unsplash

ผมมีงานอันน่าท้าทายมาให้ทุกคนลองทำครับ

ผมจะให้คุณคุยกับคนแปลกหน้าเป็นเวลา 1 ชั่วโมง

หลังจากนั้นคุณจะต้องตัดสินใจว่า คุณอยากจะใช้เวลาร่วมกับคนคนนี้ 8 ชั่วโมงต่อวัน เป็นระยะเวลาอย่างต่ำ 1 ปี หรือไม่

ฟังดูยากไหมครับ?

งานนี้เรียกว่า “การสัมภาษณ์งาน”