ก้าวผ่าตัดสถาปัตยกรรม · ตอนที่ 09

เมื่อถึงเวลาที่ Web ต้องเป็น Web: กับดักสายระโยงระยาง และการเหยียบเบรกเพื่อสร้างประตูหน้าบ้าน

พ่อหยุดเส้นทางที่ยุ่งและวางทางเข้าเว็บไซต์ให้ชัดเจน

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

ในวงการคนทำ Chatbot ทั่วไป เรามักจะเห็นภาพที่ชวนอึดอัดอยู่บ่อย ๆ: คือความพยายามจะยัดเยียดทุกอย่างในชีวิตลงไปในหน้าต่างแชท ให้บอทคอยส่งเมนูยาวเป็นพรืด ให้ผู้ใช้กดกรอกแบบฟอร์มยืดยาว หรือพยายามทำตารางรายงานสรุปที่ต้องนั่งไถดูกันจนตาลายในมือถือ แต่สำหรับผม... ผมไม่ได้คิดจะยัดทุกอย่างลงไปไว้ใน LINE ตั้งแต่แรกอยู่แล้วครับ

สัญชาตญาณการทำงานบอกผมชัดเจนว่า เครื่องมือแต่ละชิ้นเกิดมาเพื่อหน้าที่ที่ต่างกัน:

  • ห้องแชทในมือถือ: เกิดมาเพื่อการปฏิสัมพันธ์ที่รวดเร็ว ใกล้ชิด และเป็นกันเอง เป็นเหมือน “เพื่อนคุย” ที่คอยรับฟังและจดบันทึกจังหวะชีวิตสั้น ๆ
  • หน้าจอเบราว์เซอร์ (Web): เกิดมาเพื่อการทำงานที่ต้องการพื้นที่กว้างขวาง สบายตา มีตาราง มีกราฟ ให้ผู้ใช้ได้กลับมานั่งทบทวน จัดการข้อมูลส่วนตัว และให้คนสร้างระบบได้มีหน้าต่างเปิดส่องดูการทำงานหลังบ้านได้อย่างชัดเจน

เมื่อระบบคุยผ่าน LINE เริ่มนิ่ง จึงถึงเวลาที่ผมต้อง “กลับมาทำให้ Web... ทำหน้าที่ของ Web อย่างแท้จริง”

1. ความเพลินที่เกือบพาเข้ารกเข้าพง

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

  • อยากให้มีหน้าจอเปิดดูประวัติกิจกรรมย้อนหลังเป็นตารางสบายตา ไม่ต้องไปนั่งย้อนไถแชท
  • อยากให้มีระบบนำเข้าข้อมูลแบบฉลาด ๆ เช่น พอกลับมาจากวิ่ง ก็แค่ก๊อปปี้ข้อความสรุปจากนาฬิกามาวางลงบนเว็บ แล้วระบบแสดงตัวอย่าง (Preview) ให้ตรวจเช็คความถูกต้องก่อนกดบันทึกจริง
  • และที่สำคัญที่สุดในฐานะคนสร้างระบบคนเดียว: ผมอยากมีหน้าต่างสำหรับผู้ดูแลระบบ เพื่อเปิดส่องดูว่าข้างหลังบ้านเกิดอะไรขึ้นบ้าง มีใครคุยอะไร ระบบเรียกใช้ AI ไปกี่ครั้ง และมีข้อผิดพลาดอะไรซ่อนอยู่หรือไม่

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

แต่แล้วในค่ำวันหนึ่ง ขณะที่ผมกำลังสั่งให้ AI ทำระบบนำเข้าข้อมูลบนหน้าเว็บ... สัญชาตญาณอะไรบางอย่างก็สะกิดให้ผมหยุดตรวจดูโค้ดที่ AI เพิ่งสร้างออกมา ภาพโครงสร้างที่ปรากฏตรงหน้า ทำให้ผมถึงกับสะดุ้งในใจ...

2. กับดักสายระโยงระยาง

สิ่งที่ผมเห็นคือ: หน้าเว็บของผม เริ่มมีการยิงเชื่อมต่อตรงเข้าไปหาฐานข้อมูลหลังบ้าน... ทีละเส้น สองเส้น จนเริ่มกลายเป็นสิบเส้น!

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

จริงอยู่... ในแง่การทำงาน มันทำงานได้ทันที หน้าเว็บกดปุ๊บ ข้อมูลก็ลงฐานข้อมูลปั๊บ รวดเร็วทันใจ แต่ในฐานะคนที่ผ่านงานระบบใหญ่มาทั้งชีวิต ภาพสายที่โยงระยางข้ามไปข้ามมาแบบนี้ มันคือ “สัญญาณเตือนภัยระดับสีแดง”:

  1. กฎเกณฑ์ทางธุรกิจจะเริ่มเละ: ถ้าหน้าเว็บคุยตรงกับฐานข้อมูลเอง การตรวจสอบความถูกต้องและเงื่อนไขความปลอดภัย ก็จะต้องไปเขียนไว้บนหน้าเว็บเบราว์เซอร์ วันดีคืนดีกฎฝั่งแชทเปลี่ยน แต่หน้าเว็บลืมแก้ ข้อมูลที่บันทึกลงไปก็จะเริ่มตีกันเอง
  2. ร่องรอยการตรวจสอบ (Trace) จะสูญหาย: ถ้าเกิดวันหนึ่งข้อมูลในระบบพัง หรือมีอะไรทำงานผิดพลาด... ผมจะไม่มีวันรู้เลยว่า คำขอนี้หลุดมาจากหน้าเว็บไหน ใครเป็นคนกด หรือมันพังที่ขั้นตอนใด เพราะต่างคนต่างแอบปีนหน้าต่างเข้ามาในบ้านโดยไม่มีใครคอยจดบันทึก!

ถ้าระบบคุยผ่านแชทเราอุตส่าห์ผ่าตัดจัดระเบียบจนสะอาด แต่พอมาทำหน้าเว็บ เรากลับปล่อยให้มันมักง่ายเพียงเพราะอยากให้เสร็จไว ๆ... หายนะรออยู่ข้างหน้าแน่นอน

3. เมื่อเป้าหมายคือ Masterpiece ผมจึงเลือกหยุดตรวจ

ในฐานะคนที่ทำงานระบบมานาน พอเห็นเส้นทางเชื่อมต่อเริ่มพันกัน ผมก็เห็นว่าควรหยุดดูโครงสร้างก่อนเดินหน้าต่อ แล้วค่อยตัดสินใจว่าจะจัดการอย่างไรให้ระบบทำงานต่อได้

ประสบการณ์หลายสิบปีมันสอนให้เรามีสัญชาตญาณอัตโนมัติ: “เห็นปุ๊บ รู้ทันทีว่าปล่อยไว้ไม่ได้เด็ดขาด”

จริงอยู่ว่านี่คือโปรเจกต์ส่วนตัว ไม่มีใครมาคุม ไม่มีหัวหน้ามาคอยตรวจ และไม่มีลูกค้ามากดดัน จะปล่อยให้มันมักง่ายเพื่อเอาหน้าเว็บเสร็จเร็ว ๆ ไปก่อนก็ย่อมได้ แต่สำหรับผม... เราหลอกตัวเองไม่ได้ครับ

เพราะตั้งแต่ก้าวแรกที่ผมตัดสินใจควักกระเป๋าตัวเองทำโปรเจกต์นี้ ผมไม่ได้ตั้งใจจะทำของเล่นลวก ๆ แต่ ผมอยากให้ SabayJai Buddy เป็น “Masterpiece” ชิ้นหนึ่งของชีวิต

ถ้าเป้าหมายของผมคือการทำชิ้นงานที่ภูมิใจได้ ผมก็อยากจัดการจุดที่เห็นว่าเสี่ยงให้เรียบร้อยก่อนเดินหน้าต่อ

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

ดังนั้น... จึงไม่จำเป็นต้องคิดซ้ำสองเลยครับ ผมตัดสินใจทันที: “เหยียบเบรก สั่ง AI หยุดทำหน้าจอใหม่ทั้งหมดเดี๋ยวนี้”

ยอมเลื่อนกำหนดการที่จะได้เห็นหน้าเว็บสวย ๆ ออกไปก่อน เพื่อสะสางสิ่งเดียวให้จบและสมศักดิ์ศรีของมัน: “รื้อสายระโยงระยางทิ้ง แล้วสร้างประตูหน้าบ้านบานเดียวขึ้นมาคุมระเบียบ”

4. ประตูหน้าบ้านบานเดียว และสมุดบันทึกรอยเท้า

ผมกลับมาสร้างสิ่งที่เรียกว่า "Gateway" (ประตูควบคุมกลาง) ขึ้นมาคั่นไว้ระหว่างหน้าเว็บกับระบบหลังบ้าน กติกากลายเป็นเรื่องที่เรียบง่ายและเด็ดขาด:

“จากนี้ คำขอหลักจากหน้าเว็บให้ผ่าน Gateway เพื่อให้ระบบตรวจและบันทึกการทำงานได้ในจุดเดียว”

หน้าที่ของประตูบานนี้ไม่มีอะไรซับซ้อน แต่ทรงพลังมาก:

  1. เป็นจุดตรวจบัตรและคัดแยก: ไม่ว่าหน้าเว็บจะขอดูประวัติ ขอนำเข้าข้อมูล หรือขออัปเดตอะไรก็ตาม ส่งมาที่ประตูบานนี้ที่เดียว แล้วประตูจะตรวจสอบความถูกต้อง ก่อนจะส่งต่อไปให้คนข้างในบ้านจัดการอย่างเป็นระเบียบ
  2. เป็นเจ้าของ "สมุดบันทึกรอยเท้า" (Trace Log): Gateway บันทึกรายการคำขอที่ผ่านเข้ามาไว้ให้ตรวจสอบย้อนหลัง ตามข้อมูลและสถานะที่ระบบเก็บไว้
  3. ข้อยกเว้นที่สมเหตุสมผล: เพื่อไม่ให้ตึงเกินไป เรื่องพื้นฐานอย่างการยืนยันตัวตนตอนเข้าสู่ระบบ เราก็ยังยอมให้หน้าเว็บติดต่อตรงได้ เพื่อความคล่องตัวและไม่ทำให้ประตูหลักต้องแบกรับภาระที่ไม่จำเป็น ซึ่งเป็นข้อยกเว้นที่ไม่ผ่าน Gateway บานนี้

เมื่อผมยอมหยุดเพื่อสร้างประตูบานนี้เสร็จ แล้วค่อยย้อนกลับมาต่อฟีเจอร์หน้าเว็บที่เหลือ ทุกอย่างก็คลิกเข้าที่อย่างงดงาม

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

5. บทเรียนของคนชอบสร้าง

การทำระบบในตอนนั้น ให้ข้อคิดที่ลึกซึ้งกับผมมากครับ:

  1. อย่าปล่อยให้ความเร็ว ชนะวินัย: เวลาสั่งงาน AI แล้วเครื่องกำลังติด เห็นของเป็นรูปเป็นร่างเร็ว มันง่ายมากที่เราจะเผลอเลือกทางลัด แต่ทางลัดที่ไร้ระเบียบในวันนี้ จะกลายเป็นกับดักที่ย้อนกลับมาทำร้ายเราในวันข้างหน้าเสมอ
  2. การกล้าหยุด คือความกล้าหาญของคนทำระบบ: การยอมกดหยุดงานที่กำลังสนุก เพื่อสะสางสิ่งที่ไม่ถูกต้อง ไม่ใช่การเสียเวลา แต่มันคือการปกป้องอนาคตของโปรเจกต์
  3. บ้านที่มีประตูทางเข้าออกชัดเจน ช่วยให้ดูแลได้ง่ายขึ้น: เมื่อรู้ว่าคำขอหลักมีจุดผ่านที่ชัดเจนและมีบันทึกตามที่ระบบเก็บไว้ ผมก็ตรวจการทำงานได้เป็นระเบียบขึ้น

เมื่อแชททำหน้าที่คุย เว็บทำหน้าที่ทำงาน และมีประตูหน้าบ้านคอยดูแลความปลอดภัย รากฐานของ SabayJai Buddy จึงมั่นคงพอที่จะพาเราก้าวเข้าสู่ดินแดนที่น่าตื่นเต้นและท้าทายที่สุดในก้าวถัดไป: “การประกอบสมองและหัวใจของ AI ให้เข้าใจและคุยกับมนุษย์ได้อย่างแท้จริง”