ข้ามไปที่เนื้อหา
Clinford Jordano Valencia
โปรเจกต์ทั้งหมด
แพลตฟอร์มเว็บมือถือ

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 ทำให้ทุกการเปลี่ยนแปลงระบุผู้รับผิดชอบได้ ผ่านการรีวิว และย้อนกลับได้ง่าย

ผลลัพธ์

การออกคอนฟิกไม่ต้องรอการดีพลอยฟรอนต์เอนด์อีกต่อไป การอัปเดตกฎระเบียบหลายตลาดจึงลดจากหลายสัปดาห์เหลือไม่กี่ชั่วโมง และโค้ดที่ซ้ำกันตามภูมิภาคก็หยุดเพิ่มขึ้น