ก่อนที่จะเริ่มสร้าง Product เราผ่านกระบวนการคิด และ การตัดสินใจในเรื่องต่างๆ มามากพอดู และ Programming Framework ก็เป็นอีกหัวข้อหนึ่งที่ ตัดสินใจยากที่สุดเลยก็ว่าได้
Frontend Framework Candidates
React vs Vue เราจะเลือกอะไรดี
React มีดีที่ JSX
สิ่งที่ผมชอบ สำหรับ React ก็คือ JSX , Functional Programming และ Multi Fragment Return มันทำให้ การเขียนโปรแกรม มีความยืดหยุ่นมาก จะทำอะไรก็ทำได้ทุกอย่าง
แต่จุดที่ผมไม่ชอบ React เท่าไรคือ React ไม่มี Official Package ของตัวเองเกี่ยวกับการทำ State Management และ Tooling ของ React ก็ยังอาศัย 3rd Party เป็นส่วนมาก ไม่ได้ Build จาก Core Team React
Vue มีดีที่ Structure
สำหรับ Vue แล้ว ผมคิดว่า สิ่งที่ดีที่สุดก็คือ Vue แยก Markup ออกจาก Javascript ชัดเจน และ ดูเป็นโครงสร้างที่ดีมาก ที่สำคัญคือ การทำงานกับ Vue เข้าใจได้ง่ายมาก นอกจากนั้น เรื่อง Tooling ต่างๆ หรือ Official Package ก็มีครบ เรียกได้ว่า จบในตัวเองได้เลย
ข้อเสียของ Vue ที่พบตอนนี้จะเป็นในเรื่องของ Functional Programming ยังไม่ Support เต็มรูปแบบนัก และ เนื่องจาก Structure ของมัน ให้มีแค่ Single Root Fragment เลยทำให้ ในส่วนนี้ไม่ยืดหยุ่นเท่าไรนัก
Micro Framework Candidates
มีตัวเลือกอยู่ 2 ตัวคือ Quasar และ Vuetify
Quasar คือ Framework
ใน Quasar จะเป็น Full Frontend Framework ที่มี Tooling และ UI เป็นของตัวเอง ทำให้เริ่มต้นได้ง่ายกว่า แต่สิ่งที่กลัวคือ กลัวว่าคนทำ Framework จะไม่ทำต่อนี่แหล่ะ เพราะมันใหม่มาก
Vuetify คือ Component Library
ค่าย Vuetify นี้อยู่มานานพอสมควร และ ถือว่า เด่นในด้าน UI จริงๆ Sponsor ก็มีเยอะ แต่ข้อเสียก็คือ ในเรื่องของการเริ่มต้น ยังยากกว่า Quasar เมื่อเปรียบเทียบกัน
Backend Framework Candidates
ที่ผมหยิบยกมาดู ณ เวลานี้ ได้แก่ PHP Laravel และ Node.js Loopback.io ครับ ทั้งคู่มีความยืดหยุ่นสูง และ เหมาะแก่การทำเป็น API Server เป็นอย่างมาก แต่ละอย่างมีข้อดีข้อเสียแตกต่างกัน
Laravel
ด้วยความที่ Laravel เป็น PHP จึงทำให้ Laravel เข้าถึงได้ง่ายมาก และ ความที่ Laravel เป็น Openionted Framework ทำให้มี Pattern ชัดเจนว่าการจะทำอะไร ให้ได้มาซึ่งผลลัพท์ มีวิธีการของมันเอง ทำให้ Developer เขียนโปรแกรมได้ใกล้เคียงกัน และ มีความเข้าใจในการเขียนมากกว่าแบบ Free Style ที่สำคัญคือ หานักพัฒนาในเมืองไทยได้ง่ายด้วย
Loopback.io
มาจาก Express.js ซึ่งเป็น Framework ของ Node.js อีกที ด้วยความที่ ภาษา Javascript เป็น ภาษาที่ Dynamic ยิ่งกว่า PHP แล้วมีเรื่องของ Async เข้ามาเกี่ยวข้อง โปรแกรมเมอร์ที่เขียน Javascript จึงต้องมีความรอบคอบ และ ระวังมาก ไม่เช่นนั้น Bug กระจายแน่นอน แต่ Loopback.io มี Performance ที่ดีมาก และ เชื่อมต่อกับ Database ด้วย Driver ต่างๆ ที่ดีมากเช่นกันครับ
กลับมาดูที่ หลักการ หรือ Principle
หลักการของ Startup คืออะไร กันแน่ในความคิดของเรา ต้องไปคิดเรื่อง Scalable ตอนนี้เลยหรือเปล่า ต้องคิดเรื่อง Performance/Technology ตอนนี้เลยหรือเปล่า คำตอบก็คือ เปล่าเลยครับ สิ่งที่ Startup ต้องการมีแค่ 3 สิ่งนี้ครับ
- สร้าง Prototype Product ได้เร็ว
- ทดสอบกับกลุ่มเป้าหมาย และ Proof of concept ว่า Product นี้จะ Work จริงหรือไม่
- นำ Feedback จาก Product ขั้นต้น มาปรับปรุง Product ให้ดีขึ้น
พิจารณา Startup ของตัวเองว่าใน Step นี้ ว่าสิ่งคำคัญที่สุดตอนนี้คืออะไร และ แน่นอนครับ ตอนนี้ผมได้พิจารณาแล้วว่า การสร้าง Prototype เป็นสิ่งที่สำคัญที่สุด ดังนั้น เราจะต้องใช้ สิ่งที่เรามี ทำให้ได้โดยไม่เสียเวลาเพิ่มเติมครับ
เลือกเสียที
ในตอนนี้ ได้เวลาเลือกทั้งหมดแล้วครับ และ นำไปใช้พัฒนาได้เลย
Frontend Framework
เลือก Vue JS เหตุผล คือ ทำเป็นอยู่แล้ว และ ทำมานานแล้ว ทำให้เราเริ่มต้นใหม่ได้ง่ายกว่า React JS ที่ทำเป็นบ้าง แต่เทียบกับ Vue ไม่ได้เลย
Micro Frontend Framework
เลือก Quasar Framework เหตุผลคือ Tooling ที่ครอบคลุม และ เริ่มต้นได้ง่ายกว่า Vuetify ถึงแม้ว่า Quasar จะใหม่กว่า และ Sponsor น้อยกว่า แต่ดูแล้ว Developer หรือ เจ้าของมีไฟในการทำงาน (สัมผัสได้จากการอ่าน Blog) และ เว็บไซต์ก็สวยงามกว่า และ มีลูกเล่นมากกว่าด้วย
Backend Framework
เลือก Laravel เหตุผลคือ ใน Laravel การแก้ปัญหา และ ความรู้เรามีมากกว่า Loopback.io ในการเลือก Backend บอกตรงๆ ว่าเลือกยาก เพราะจริงๆแล้วอยากได้ Javascript + Mongodb มากกว่า แต่ ในภาพใหญ่ หรือ การคิดแบบ Think as a whole แล้ว มันหา คนดูแลได้ยากกว่า และ ทีมเองก็ไม่เชี่ยวชาญ Javascript Backend สักเท่าไรในตอนนี้
ประสบการณ์ความเจ็บปวดที่เคยเจอคือ เคยทำ Backend Framework ที่เป็น Javascript และ Ruby on Rails มาก่อน หาคนมาดูแล และ แก้ไขต่อได้ยากมากจริงๆ สำหรับ Backend 2 ภาษานี้ ต่างกับ Laravel ที่พอจะหาคนมาดูแลต่อได้
สรุป
ถ้าเรามัวแต่คิดวนไปมา ไม่ตัดสินใจสักที เราก็จะติดหล่มครับ การติดหล่มนานๆ จะทำให้เราหมดไฟ ดังนั้น เราต้องรีบตัดสินใจให้เร็วที่สุด โดยใช้ข้อมูลที่มีทั้งหมดในมือ และ ใช้ Principle หรือ หลักการของเราช่วยในการตัดสินใจ การตัดสินใจ ย่อมมีผิดบ้าง พลาดบ้าง แต่ทุกอย่างแก้ไขได้ครับ แม้ว่าวันนี้จะพลาดไป เรายังสามารถแก้ไข และ เริ่มต้นใหม่ได้เสมอครับ