13 เหตุผลที่ผมเลือก Angular

เมื่อ Android/Kotlin dev ต้องเขียน frontend

Travis P
Black Lens
Published in
2 min readAug 29, 2017

--

สวัสดีครับผู้อ่านทุกท่าน วันนี้ผมมาแปลก ปกติจะเขียน Android/Kotlin แต่ช่วงนี้มีโอกาสได้จับเว็บ ก็อยากจะมาแชร์มุมมองระดับ newbie ฝั่งเว็บบ้าง

บทความนี้ไม่ได้เจาะลึกใดๆทั้งสิ้น ทุกสิ่งในนี้มาจากประสบการณ์อันผิวเผินที่ผมลองทำ React Vue Angular และการตัดช้อยส์จนเหลือ Angular เป็นคำตอบสุดท้าย

React

1. React ใช้ higher order function กันเป็นว่าเล่น

ผมใช้ชีวิตอยู่ในโลก OOP จนเคยตัว จะคุ้นเคยกับ FP บ้างก็คงเป็นพวก stream ทีนี้มาเจอ React ที่ใช้ higher order function มาห่อ component ได้เป็น component ใหม่ จะหยิบ lib อะไรมาใช้ ส่วนใหญ่ก็ท่านี้
ทุกครั้งที่ผมได้ยินคำว่า higher order component เทวดา OOP จะบินมากระซิบว่า

component พ่องเป็น function

สำหรับผมแล้ว component ที่เห็นๆอยู่ต่อหน้าต่อตานี่มันเป็น object ชัดๆ จะกลายเป็น function ไปได้อย่างไร ขัดกับสัญชาติญาณสุดๆ

2. React เป็นแค่ library

ชาว frontend ที่ช่ำชองอาจจะชอบอิสระเสรี แต่สำหรับนู้บอย่างผมแล้ว การที่ต้องเลือกหยิบ lib อื่นๆเข้ามาใช้มันเป็นภาระ ไม่รู้จะเลือกอันไหน แล้วก็ยังต้องศึกษาเพิ่มอีก เหนื่อย

3. config เหนื่อย

นู้บอย่างผม config webpack ไม่เป็น แล้วมันก็เต็มไปด้วย barbel polyfills อะไรอย่างอื่นอีกก็ไม่รู้ ไหนยังจะมี ESLint ที่ต้องเซตอีก รู้สึกวุ่นวาย ทำไรไม่ถูก

Vue

4. ง่าย

vue-cli นี่ใช้ง่ายดี พิมพ์ๆ เลือกๆ ได้โปรเจคออกมาแล้ว ไม่ต้อง config เอง

นอกจากนั้น ตัว vue เองก็เข้าใจง่ายกว่า react อ่านแปปเดียวผมเขียน single file component ได้แล้ว

5. css อยู่ในที่ที่มันควรอยู่

ผมไม่มั่นใจว่าการแยก layout กับ style ออกจากกันมันเกิดขึ้นเมื่อไร เกิดขึ้นมาทำไม แต่ขอบคุณ vue ที่จับมันมาอยู่ใน file เดียวกัน

6. library ต่างๆ มาจาก official

3rd party library หลักๆ ที่ต้องใช้กับ vue ล้วนผลิตโดยคุณ Evan You ทั้งนั้น ตรงนี้รู้สึกอุ่นใจ ไม่ต้องเลือก

7. component ไม่ใช่ class

ทำไมผมต้องประกาศ field ใน function data() ทำไมผมไม่ประกาศเป็น field ไปเลย ทำไมผมต้องประกาศ function ใน field methods ทำไมผมไม่ประกาศเป็น function ไปเลย รู้สึกย้อนแย้ง

8. ไม่มั่นใจฝีมือตัวเอง

ด้วยความที่มันง่าย รู้สึกอยากเขียนอะไรก็เขียน จะเขียน vue พร้อมๆกับ vanilla js ก็ทำได้ บางกรณีต้องทำอย่างนั้นด้วย รู้สึกว่าถ้าโปรเจคใหญ่ขึ้น โค้ดผมเละแน่นอน

Angular

9. Angular ผลิตโดย Google และ Microsoft

ผมชาวแอนดรอย มาสาย Google อยู่แล้ว รู้สึกอุ่นใจ จบ

10. TypeScript by default

ผมไม่สามารถทำงานบน dynamically typed languages ได้อย่างมีประสิทธิภาพ รู้สึกหลงทางอยู่ตลอด ไม่รู้ว่าตอนนี้ทำอะไรได้ไม่ได้บ้าง กว่าจะรู้ตัวว่าทำอะไรพังก็ตอนรันแล้ว และที่เกลียดที่สุดคือ undefined is not a function
ที่สำคัญคือไม่ต้องเติม typescript เองให้วุ่นวาย

11. Angular เป็น framework

ด้วยความที่ผมนู้บ ผมสบายใจที่จะทำตามมากกว่าคิดเอง มี cli ให้ใช้ เค้าออกแบบมาให้แล้ว โดยเฉพาะตอนผมเอา bootstrap มาใส่ แล้วเค้าให้ใส่ path css ใน angular-cli.json นี่ถึงกับรักเลยทีเดียว

ยิ่งถ้าพูดถึงการทำงานเป็นทีมแล้ว ทำอะไรตามแบบแผนจะเมนเทนง่ายกว่า

12. component คือ class

ได้ทำอะไรที่คุ้นเคยก็รู้สึกง่าย เรียนรู้ไว มีคลาสอันนึงประกอบด้วย field และ function ที่เรียกจาก html ได้

13. เข้ากันได้ดีกับ WebStorm

IDE เป็นของขาดไม่ได้สำหรับผม IDE เทพๆ ทำให้ประสิทธิภาพเพิ่มขึ้น 83.31% (ตัวเลขสมมติ) โดยเฉพาะ WebStorm จาก JetBrains นี่ซื้อไม่เสียดายตังกันเลยทีเดียว

จริงๆมีเรื่อง license react อีก แต่คิดว่าไม่สำคัญกับผมตอนนี้ แล้วยังมีประเด็นยิบย่อยอื่นๆอีก แต่มันจะเกิน 13 เหตุผล ก็เลยขอจบ uneducated opinionated reasons ไว้เท่านี้ครับ บายย์

--

--

Travis P
Black Lens

Android Developer, Kotlin & Flutter Enthusiast and Gamer