Angular JSWeb Developer

บทเรียนจากการเปลี่ยนแปลงครั้งใหญ่ ของ Angular Framework

เรื่องที่เกี่ยวข้อง - ,

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

AngularJS จุดเริ่มต้นของ Single Page Application

แนวคิดของ Single Page Application นั้นมีมานาน และ Angular Framework (ตอนนี้เรียกว่า AngularJS) เป็นหนึ่งในเครื่องมือที่ทำให้แนวคิดนี้สามารถทำได้จริงอย่างเป็นระบบ ซึ่งในตอนนั้น

  • Angular เปิดตัวในปี 2010
  • React เปิดตัวในปี 2013
  • Google Polymer เปิดตัวในปี 2015

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

เรียนว่าตอนนั้น Angular ฮอตฮิตมาก มีการจัด Meetup ทั่วโลก ชุมชนนักพัฒนาเกิดขึ้นมากมาย จนถึงกับมีคนตั้งคำถามว่า

หรือจะถึงยุคที่ JQuery จะต้องเปลี่ยนบัลลังก์ให้กับ Angular?

เสริมนิดหน่อย ว่า Angular แรกเริ่ม มาจากฝั่ง Google คร้าบ

ความต้องการที่มากขึ้น ทำให้ AngularJS ชนกับขีดจำกัดเดิมของตัวเอง

ด้วยความนิยมอย่างล้นหลาม ทำให้ AngularJS ไม่แคล้วที่จะเริ่มโดยแกะเกา ถูกเอากลไกภายในมาวิเคราะห์ เปรียบเทียบกับเครื่องมืออื่นๆ รวมถึงพิสูจน์ศักยภาพว่าดีจริงไหม

ทำให้มีการค้นพบลักษณะเด่น ซึ่งนำไปสู่จุดดีและจุดด้อยต่างๆ เช่น

  • ตัว AngularJS นั้นใช้ภาษา JavaScript ในการเขียน ทำให้คนเขียน Web เข้าถึงได้ง่าย
  • แต่ด้วย JavaScript นี่แหละที่ทำให้การทำงานบน Web Browser ต่างยี่ห้อนั้น มีผลต่อประสิทธิภาพและความยืดหยุ่นในการใช้งาน
  • เครื่องมือต่างๆ เช่น 2-way binding ทำให้สะดวกสบาย แต่ไม่ได้เน้นประสิทธิภาพตั้งแต่แรก มีผลต่อความเร็ว
  • ไม่ได้ถูกออกแบบมาเพื่อทำงานบน Mobile Device ตั้งแต่แรก

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

Angular เปลี่ยน เพื่ออนาคตใหม่

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

และจุดนี้เอง ที่มีการเรียกเวอร์ชั่นแรกของ Angular ว่า AngularJS (Angular เวอร์ชั่น 1.X)

และในปัจจุบัน ก็เรียกเวอร์ชั่น 2 เป็นต้นมาว่า Angular เฉยๆ ครับ

การเปลี่ยนแปลงใหญ่ๆ ที่เห็นชัดเจนได้แก่

  • ก้าวข้ามปัญหาการทำงานระหว่าง Web Browser โดยใช้ภาษา TypeScript แทน JavaScript
  • TypeScript ทำให้นักพัฒนาสามารถเพิ่มเติมเทคนิคต่างๆ เข้าไปใน Framework ได้ง่ายดายเช่น แนวคิด OOP และ Dependency Injection
  • ออกแบบการทำงานให้เหมาะกับ Mobile Device อย่าง Smart phone และ Tablet
  • สามารถจัดการโค้ดในระบบ Scale ที่ใหญ่ขึ้นได้ง่ายกว่า Angular
  • ด้วยภาษา และแนวคิดมากมายที่ใส่ลงมา ทำให้ดูซับซ้อนกว่าเวอร์ชั่นแรก

ในตอนประกาศเปิดตัวนั้น เกิดความโกลาหลไม่น้อย

เพราะถ้าให้เปรียบ เหมือนมือถือแบบมีปุ่ม Home มาตลอด เคสทุกเจ้าก็ผลิตให้ตรงกับรุ่นมือถือที่มีปุ่ม Home แต่จู่ๆ ก็บอกว่าทำเคสได้เหมือนเดิมนะ แต่ต่อไปไม่มีปุ่ม Home แล้ว ถ้าเราเป็นคนทำเคสขายก็จะประมาณว่า “อ่าว เฮ้ย….”

ตอนนั้นก็มีการออกมาประกาศ Long Term Support AngularJS ว่าจะไม่ทิ้งกันนะ แต่ก็กล้อมแกล้มว่าไหนๆ ว่างๆ ก็ย้ายมา Angular แบบใหม่นะ

การเปลี่ยนแปลงที่ไม่มากอย่างที่คิด

จากสภาพการณ์ในรูปแบบของการเขียนโค้ดนั้น อาจจะมองได้ว่าเปลี่ยนแปลงในปริมาณที่มากกว่า 70% (โหดไหมล่ะ) ซึ่งแน่นอนว่าตอนนั้น Ionic Framework ที่พลใช้งาน ก็ได้รับผลกระทบด้วย

แต่ถ้าเอาจริงๆ พลได้เรียนรู้จากเหตุการณ์ครั้งนี้ คือ

จริงๆ Angular เปลี่ยนแค่ส่วนของการเขียนโค้ดเท่านั้น เป้าหมายของ Angular แต่เริ่มแรกนั้นยังอยู่ และสามารถใช้งานได้ง่ายขึ้นต่างหากครับ

แนวคิดยังคงเดิม

แนวคิดของ Angular นั้นจริงๆ ยังเหมือนกับ AngularJS นั่นคือ การเป็นเครื่องมือที่สร้าง Single Page Application ได้ง่าย

ซึ่งรูปแบบการเขียน Angular แบบ JavaScript นั้น ตอบโจทย์ความต้องการนี้ได้ในระดับหนึ่ง แต่กลายเป็นติดปัญหาด้านประสิทธิภาพ ซึ่งได้รับการแก้ไขด้วยเทคโนโลยีภาษา TypeScript จนประสบความสำเร็จใน

โดยเฉพาะการผนวกการเขียนโปรแกรมอย่าง Object-Oriented เข้ามาด้วย ซึ่งภาษา TypeScript ก็สอดคล้องกับการทำงานแบบนี้อยู่แล้ว ทำให้การจัดการโปรเจคใน Scale ขนาดใหญ่ หรือระดับ Enterprise นั้นทำได้สะดวกกว่าการเขียน JavaScript แบบเดิมด้วย

การเพิ่มเติมเทคนิคใหม่ๆ

การนำ TypeScript มาใช้แทน JavaScript ยังเปิดโอกาสให้ทีมพัฒนาและชุมชนได้โอกาสใส่ไอเดีย และระบบใหม่ๆ ลงไปในตัว Framework โดยไม่ต้องกังวลกับปัญหาพื้นฐานเดิมที่มีในภาษาเดิม อย่างเช่น OOP และ Dependency Injection

รวมถึงระบบ Route ที่พัฒนาให้ใช้งานได้ง่ายกว่าเดิมด้วย

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

ยังอยู่บนพื้นฐานเทคโนโลยีที่คุ้นเคย

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

โดยที่สุดแล้วทุกอย่างที่เราเห็น เรียนรู้ และใช้งานของ Angular ก็จะถูกแปลงเป็นภาษา JavaScript, HTML, และ CSS ธรรมดาเพื่อทำงานกับสภาวะแวดล้อมเดิมที่ลูกค้ามีได้อย่างแยบยล

ในขณะที่ตัว Angular เองก็ยังรุดหน้า พัฒนาตัวเองอย่างต่อเนื่อง และเพรียบพร้อม ให้สมชื่อ One Framework ครับ

สนใจดูข้อมูลอ้างอิงเพิ่มเติมได้ที่ – Simplilearn, Quora, StackOverflow, Gorion.io

Loading Facebook Comments ...

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Menu