KYC Studio โฟลว์ที่ขับเคลื่อนด้วยสคีมา
แพลตฟอร์ม UI ที่ขับเคลื่อนด้วยคอนฟิก พร้อมการจัดการคอนฟิกเป็นโค้ดผ่าน Git ทำให้การเปลี่ยนแปลงด้านกฎระเบียบออกได้ภายในไม่กี่ชั่วโมง โดยไม่ต้องดีพลอยฟรอนต์เอนด์
- บทบาท
- Senior Frontend Engineer
- ช่วงเวลา
- 2025–ปัจจุบัน
- เทคโนโลยี
- TypeScript · jsonform · Mini Program · Git · CI/CD · Schema validation
ปัญหา
โฟลว์ยืนยันตัวตนสำหรับกว่า 100 ประเทศหมายถึงโค้ดที่ซ้ำซ้อน และต้องเปิดตั๋วงานวิศวกรรมทุกครั้งที่ฝ่ายกฎระเบียบหรือฝ่ายผลิตภัณฑ์อยากเปลี่ยนกฎของภูมิภาคใดภูมิภาคหนึ่ง
แนวทาง
- สร้างฟอร์มจากสคีมา UI อ่านคอนฟิก JSON หรือ YAML ผ่าน jsonform โดยสคีมาสร้างฟิลด์และกฎการตรวจสอบ ส่วนการกระทำเฉพาะ เช่น เริ่มสะพาน NFC แบบเนทีฟหรือการตรวจ liveness ยังอยู่ในโค้ด
- ขั้นตอนเดียว ผลลัพธ์ต่างกัน คอนฟิกกำหนดว่าแต่ละขั้นทำอะไรในแต่ละประเทศและแพลตฟอร์ม (เว็บ มือถือ หรือ Mini Program) ในที่ที่รองรับ NFC ขั้นนั้นจะแสดงคำแนะนำการสแกนและปุ่มสแกนด้วย NFC ส่วนที่อื่นจะแสดงฟิลด์ฟอร์มปกติและปุ่มดำเนินการต่อ ฝ่ายผลิตภัณฑ์และฝ่ายกฎระเบียบเปลี่ยนได้ในคอนฟิก ไม่ต้องแก้โค้ด
- คอนฟิกเป็นโค้ด เจ้าหน้าที่ฝ่ายกฎระเบียบและผลิตภัณฑ์ส่งการเปลี่ยนแปลงผ่าน Git ทุกการเปลี่ยนแปลงจะเปิด pull request อัตโนมัติและรัน CI พร้อมการตรวจสคีมาอย่างเข้มงวดที่อิงชนิดข้อมูลของ TypeScript คอนฟิกที่ผิดรูปแบบจึงล้มเหลวก่อนถึงโปรดักชัน
สองการตัดสินใจที่ควรอธิบาย
ใช้ jsonform เรนเดอร์ ใช้โค้ดสำหรับการกระทำ UI ที่เซิร์ฟเวอร์ควบคุมทั้งหมดและรันลอจิกใด ๆ ที่ส่งมาจากเซิร์ฟเวอร์ เปิดความเสี่ยงต่อการรันโค้ดจากระยะไกลและปัญหาด้านประสิทธิภาพ การเรนเดอร์จากข้อมูลโดยผูกการกระทำไว้กับแฮนด์เลอร์ที่คอมไพล์ไว้แล้ว ยังคงความยืดหยุ่นไว้โดยไม่มีความเสี่ยงนั้น
ใช้ Git แทนฟอร์มของผู้ดูแลระบบ การแก้ไขง่าย ๆ ที่ไม่มีการกำกับดูแลจะทำให้โฟลว์ในโปรดักชันพัง Pull request การตรวจชนิดข้อมูล และ CI ทำให้ทุกการเปลี่ยนแปลงระบุผู้รับผิดชอบได้ ผ่านการรีวิว และย้อนกลับได้ง่าย
ผลลัพธ์
การออกคอนฟิกไม่ต้องรอการดีพลอยฟรอนต์เอนด์อีกต่อไป การอัปเดตกฎระเบียบหลายตลาดจึงลดจากหลายสัปดาห์เหลือไม่กี่ชั่วโมง และโค้ดที่ซ้ำกันตามภูมิภาคก็หยุดเพิ่มขึ้น