เมื่อเราไม่ได้เขียน Vue มา 1 ปี — Part II (End)

Runyasak Chaengnaimuang
odds.team
Published in
3 min readJan 1, 2022

อ่าน Part Iได้ที่ เมื่อเราไม่ได้เขียน Vue มา 1 ปี — Part I

หลังจากที่เราได้ลองใช้ Front-end Framework ทั้ง 3 เจ้า และผ่านร้อนผ่านหนาวกับมันมามาก และมักจะเป็นเรื่องราวความเจ็บปวด เราเลยนำเรื่องราวเหล่านี้มาแชร์ให้กับทาง KubeOps Skills

อันนี้รูปโปรโมทนะ ไม่ใช่ meme

ได้ไปเขียน Swift

หลายคนคงจะคิดคิดว่า “อ้าว คุณทำเว็บได้ คุณก็ต้องทำแอปได้สิ เปลี่ยนจาก JavaScript เป็น Swift เอง” และในตอนนั้นเราก็สารภาพว่า เราคิดแบบนั้นเช่นกัน

เราได้รับมอบหมายที่ Application โดยเราได้เลือกที่จะเขียนเป็น Native หรือ Swift ในการทำงาน ซึ่งใน Phase แรกเราตั้งเป้าหมายที่จะทำ List ออกมาให้เสร็จ หน้าตา Prototype ประมาณนี้

เป็น List ที่ Easy มั่ก ๆ

เราจึงเคาะเวลาออกมาแบบที่เคยทำในเว็บ และเผื่อเวลาสำหรับศึกษาเรื่องใหม่ เพราะนี่เป็นการทำ Native Application ของเรา ด้วยเวลา 3–4 อาทิตย์เสร็จ

ตัดภาพมาที่ความเป็นจริง 3 เดือนเพิ่งจะลองเล่นได้ ใช่แล้วคุณฟังไม่ผิด เราเพิ่งทำ List แบบนี้ออกมาได้ด้วยเวลา 3 เดือนด้วย Swift ไม่ได้มีการแอบอู้แต่อย่างใด จริง ๆ เราไม่ได้ติดเรื่อง Syntax ของ Swift นะ เราชอบด้วยซ้ำ แต่องค์ความรู้ที่ต้องมีในการทำ Native Application มันมีรายละเอียดเยอะมาก แค่จัด Layout หรือ Constraint กว่าเราจะเข้าใจก็ปาเข้าไป 1 เดือนแล้ว

หลังจากนั้นเราได้ไปปรึกษาพี่ ๆ ว่าจะขอเลื่อน Deadline แต่สิ่งที่ได้มาคือ การได้พบกับ Flutter

ไปซบที่อก Flutter

เหมือนได้เจอเนื้อคู่เลย เพราะรู้สึก Flutter นี้เขียนได้เข้ามือมาก ๆ และสนุกด้วย ด้วยธรรมชาติของ Dart มันมีความคล้ายกับ JavaScript มันเลยนำมาต่อยอดต่อได้ และ Render ออกมาได้ไวไม่แพ้ Native

จาก List ที่เราเล่าเมื่อสักครู่ เราใช้เวลา 3 เดือนเสร็จ เราสามารถใช้ Flutter ทำเพียงแค่ทำตาม Docs ไปเรื่อย ๆ

8 ชั่วโมงเสร็จ หรือ 1 วัน ก็คือวันที่เริ่มอ่าน Docs นั่นแหละ

รู้อะไรไม่เท่ารู้งี้ และรู้งี้เราก็คงมาใช้ Flutter นานแล้ว เขียนด้วย Flutter ออกมาได้ไวแล้ว เผลอ ๆ เราเขียน Swift แล้วยัง Render ไวไม่เท่า Flutter เสียด้วยซ้ำ

และหลังจากที่เราเขียน Flutter ได้ 1 อาทิตย์ ทางสมาคมโปรแกรมเมอร์ไทยก็ได้ชวนไป Live ตอนนั้นคิด Topic ไม่ออก เลยเอา Flutter ที่ร่ำเรียนเมื่อสักครู่ไปแชร์

จำไม่ได้ว่าพูดอะไรบ้าง แต่พิธีกรน่ารักมาก

ฝึกวิชากับคอร์ส How To Design Programs

ระหว่างนั้นก็มีคอร์สหนึ่งชื่อ How To Design Programs ที่สอนโดยพี่อรรถ เจ้าของร้านหนังสือ Omongo Bookstore ซึ่งเป็นคอร์สที่สอนการสร้างโปรแกรมด้วยภาษา Racket

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

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

จบคอร์สมี Cert ด้วยนะ

ได้ไปบวกกับ Java + Sprint Boot

เริ่มด้วยทำเว็บ ต่อด้วยทำแอป ตามด้วย Java … อิหยังว่ะ !!

ใช่แล้ว เราได้ไปเขียน Java แบบงง ๆ เพราะใน Sprint ของทีมตอนนั้นไม่มี Task ของฝั่ง Front-end เลยจึงเป็นเหตุที่เราได้มาเขียน Java + Sprint Boot

ที่พีคคือตอนนั้น Java v17 ส่วนมากตาม Enterprise ก็จะใช้เป็น v11 แต่เราได้ใช้ v8 น่ะ มีความอนุรักษ์นิยมสุด ๆ

ซึ่ง Java นี้บอกตามตรงว่ามีเพียงความรู้พื้นฐานจากตอนเรียนปี 1 และไม่มีชั่วโมงบินกับในงานแต่อย่างใด นับศูนย์เลยก็ว่าได้

แต่ที่รอดมาได้เพราะได้เรียน Java + Spring Boot กับพี่แมน Yothin Muangsommuk พอดี และได้รับพลังการเขียน Unit Testing ด้วย Mockito มาด้วย

จากที่คิดว่าจะต้องลงเหวแล้ว กลายเป็นว่าเราดันชอบ Java + Spring Boot เสียด้วยซ้ำ คือมันมี Dependencies ต่าง ๆ ที่มาเพียบพร้อมแล้ว คือแทบจะไม่ต้องคิดเลยว่าจะใช้ Library เจ้าไหนแบบเวลาที่ใช้ Node.js และแม้ว่า Java จะมี Syntax ที่เขียนเยอะ แต่เทคนิคที่เราแนะนำ คือการใช้ Shortcut ของ IntelliJ ซึ่งช่วยได้เยอะมาก ขนาดที่ช่วยคิดชื่อตัวแปรให้ด้วย

คิดอะไรไม่ออก กด Alt + Enter

สรุปสุดท้าย

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

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

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

ขอบคุณพี่ ๆ ทุกคนมากครับ

--

--