บทเรียนที่ได้รับจากการสร้าง POS Lite

ผมสร้าง POS Lite เสร็จแล้ว ซึ่งเป็นระบบขายหน้าร้าน (point of sale) แบบ full stack สำหรับธุรกิจขนาดเล็ก ก่อนหน้านี้ผมได้แชร์เรื่องสถาปัตยกรรมและการ deployment ไปแล้ว ตอนนี้ผมอยากจะมาแชร์สิ่งที่ผมได้เรียนรู้ครับ

การสร้างโปรเจกต์จริงนั้นแตกต่างจากการทำตาม tutorial เพราะใน tutorial จะตัดสินใจแทนคุณ แต่โปรเจกต์จริงจะบังคับให้คุณต้องเป็นคนเลือกเอง

คุณต้องตัดสินใจในเรื่องต่างๆ เช่น:

นี่คือสิ่งที่ผมได้รับเป็นบทเรียนหลัก:

  1. ความสมบูรณ์แบบทำให้คุณช้าลง อย่ารอจนกว่าจะได้สถาปัตยกรรมหรือ UI ที่สมบูรณ์แบบที่สุด ให้เริ่มจากเวอร์ชันที่ใช้งานได้จริงก่อน แล้วค่อยๆ ปรับปรุงไปทีละขั้นตอน ตัวอย่างเช่น ทำให้ product module ใช้งานได้ก่อน จากนั้นค่อยเพิ่ม validation แล้วจึงเชื่อมต่อกับ inventory ชัยชนะเล็กๆ น้อยๆ จะนำไปสู่โปรเจกต์ที่เสร็จสมบูรณ์

  2. โครงสร้างมีความสำคัญเมื่อโปรเจกต์ขยายใหญ่ขึ้น Backend ขนาดเล็กนั้นจัดการง่าย แต่ Backend ขนาดใหญ่จำเป็นต้องมีการจัดระเบียบ ผมใช้โครงสร้างแบบ layered structure เพื่อให้จัดการได้ง่ายขึ้น:

  1. Authentication มีความซับซ้อน Authentication เป็นมากกว่าแค่ฟอร์มล็อกอิน แต่มันรวมไปถึงการตรวจสอบ credentials, การสร้าง tokens, การป้องกัน routes และการจัดการสิทธิ์การเข้าถึงของผู้ใช้ การใช้ JWT ช่วยให้ผมเห็นว่าความปลอดภัยเชื่อมโยง frontend เข้ากับ backend ได้อย่างไร

  2. UX คือเรื่องของประโยชน์ใช้สอย Frontend ไม่ใช่แค่เรื่องของความสวยงาม ผู้ใช้จำเป็นต้องค้นหาสินค้า, ทำรายการขาย และดูรายงานได้อย่างรวดเร็ว อินเทอร์เฟซที่ใช้งานได้จริงนั้นดีกว่าอินเทอร์เฟซที่แค่ดูสวยงาม

  3. Deployment คือวิศวกรรม การเปลี่ยนจากการพัฒนาในเครื่อง (local development) ไปสู่ระบบ cloud จะทำให้พบปัญหาใหม่ๆ คุณจะต้องเจอกับข้อผิดพลาด CORS, ปัญหาเรื่อง environment variable และงานตั้งค่า DNS การ deployment ไม่ใช่ขั้นตอนสุดท้าย แต่มันคือส่วนสำคัญของกระบวนการทั้งหมด

  4. ความผิดพลาดคือบทเรียน ข้อผิดพลาดเล็กๆ สอนบทเรียนที่ยิ่งใหญ่ การขาด environment variable หรือการตั้งค่า port ผิดพลาดเพียงอย่างเดียวก็สามารถทำให้ทุกอย่างพังได้ บั๊กเหล่านี้สอนให้ผมหัด debug ด้วยความระมัดระวังมากขึ้น

คำแนะนำสำหรับโปรเจกต์ของคุณ:

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

Source: https://dev.to/guadalupe182/lessons-learned-building-pos-lite-from-idea-to-full-stack-application-471h