เพิ่งคุยกับทีมพัฒนา Mobile App ด้วย Flutter มา
เรื่องของแนวทางการปรับปรุงการพัฒนา App นิดหน่อย
โดยปัญหาที่เริ่มเห็นกันมาก ๆ และส่งผลรุนแรงขึ้น
คือการดูแลรักษา App
ทั้งในเรื่องของการเพิ่ม แก้ไขความสามารถต่าง ๆ
รวมทั้งแก้ไข issue หรือ bug ที่เจอหรือรับแจ้งเข้ามา
แน่นอนว่า ต้องการ feedback ที่รวดเร็วพร้อมกับคุณภาพที่สูง
ดังนั้นจึงพูดคุยหาแนวทางกันหน่อย

ปัญหาแรกที่เจอคือ แก้ไขแล้วไม่รู้ว่าไปกระทบการทำงานส่วนไหน ?

เป็นปัญหา classic มาก ๆ
เพราะว่าในช่วงแรกจะเน้นไปที่การพัฒนาให้เสร็จ ให้เสร็จ และ ให้เสร็จ
แต่พอถึงจุดหนึ่งที่คนใช้งานเยอะ
จำนวน feature เยอะ
ปัญหาและข้อผิดพลาดก็ตามมา
การจะแก้ไขมันไม่ง่ายแลย

จึงเริ่มที่การวิเคราะห์ปัญหา และแนวทางแก้ไข
สิ่งที่เห็นร่วมกันคือ
ในการแก้ไขข้อผิดพลาดต่าง ๆ ทีมควร reproduce ให้ได้ก่อน
จากนั้นทำการบันทึกไว้ในรูปแบบของ test case ที่สามารถ run ซ้ำ ๆ ได้
จากนั้นจึงแก้ไข code เพื่อให้ test case เหล่านั้นผ่าน
แต่ในการทำงานจริง ๆ มันไม่ง่ายเลย
เนื่องจากต้องทำการแก้ไขและปรับปรุงโครงสร้างของ App ให้เอื้อด้วยเช่นกัน
อีกทั้งการเพิ่มความสามารถใหม่ ๆ ต้องมี test case คลุมเสมอ
เพื่อทำให้มั่นใจยิ่งขึ้น

ดังนั้นเรื่องต่อมาคือ การปรับปรุงโครงสร้างของ App ให้ดูแลง่ายขึ้น

ซึ่งตรงนี้จะมีทั้งการแบ่งส่วนต่าง ๆ ตามหน้าที่การทำงานยกตัวอย่างเช่น

  • ส่วนของการแสดงผลที่แยกเป็นชิ้น ๆ ตามหน้าที่การทำงาน เพราะว่าปัจจุบันพวก god class/method เยอะมาก ๆ
  • อะไรที่ใช้ซ้ำ ๆ ก็แยกออกมา เช่นพวก string, coloe code และ style

เมื่อไปดูโครงสร้างของ App ก็พบว่า มีปัญหาเรื่องของการจัดการ state อีก

ทำให้ทีมต้องมาช่วยกันดูว่า
App ที่กำลังพัฒนาและดูแลกันนั้น ควรจะจัดการ state รูปแบบไหนดี
และยอมรับกันแล้วว่า ที่เป็นอยู่ ยิ่งก่อให้เกิดปัญหา
ตรงนี้ยังฟันธงไม่ได้ว่าจะใช้วิธีการไหน
แต่ให้ทุกคนช่วยกันทำ POC มาในแต่ละตัวที่เลือกกันมา
จากนั้นมา demo และลอง implement กันอีกที
แล้วค่อยมาเลือกกันต่อไป !!

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