Học Frontend nên chọn theo hướng nào?
- Tháng Sáu 16, 2021
- Posted by: codestar
- Category: Uncategorized
Javascript đã và đang làm mưa làm gió trên các diễn đàn Frontend và cả backend ngày nay. Vì sao lại như vậy ? Vì cho tới thời điểm hiện tại, các trình duyệt web chỉ hỗ trợ 1 loại ngôn ngữ duy nhất cho trang web, đó là Javascript. Nhưng JS cũng có nhiều điểm người ta ưa thích và nhiều điểm chưa được thích lắm, do đó, rất nhiều các library, framework, platform sử dụng JS đã ra đời. Trong đó điển hình là 3 “nhà lớn” là React, Vue, Angular.
Ở đây mình sẽ sử dụng từ Platform để nói về 3 “ông lớn” trên (có thể còn đôi chút tranh cãi về việc nó là platform hay framework, nhưng mình cứ gọi chung thế cho dễ nhé).
Các bạn đã học HTML, CSS, JS, nếu không chọn theo con đường backend, thì các developer thường sẽ tiến tới 1 trong ông lớn này. Vậy chúng ta cùng tìm hiểm về từng loại để lựa chọn xem thế nào nhé:
Angular: Angular khởi thủy là 1 framework. Nó cung cấp các thành phần/cấu trúc thư mục tương đối rõ ràng cho việc thiết kế từ các thành phần nhỏ hơn, giao diện, chức năng và dần trải qua thời gian trở thành 1 platform. Nhưng hôm nay chúng ta không nói về bản thân loại platform đó, mà chúng ta sẽ nói về việc học nó sẽ như thế nào.
Angular có tài liệu học tập tại chính trang chủ. Nhìn chung Document Angular ở mức đầy đủ. Tuy nhiên hơi “đầy đủ quá”. Nhiều khi đâm ra thừa mứa nhiều mà chưa thấy cần dùng đến. Document của các ngôn ngữ thì mọi người biết là đa số đều viết tiếng Anh, mà còn viết dài và nhiều kiến thức trừu tượng thì theo mình nghĩ khá là khó cho những bạn mới làm quen. (Nếu đã biết 1 vài loại rồi chuyển qua thì có thể làm quen dễ hơn). Đặc biệt là Document của Angular chưa thấy có phân cấp Basic/Advanced gì cả, nên ngay từ lần đầu tiên vào xem, có thể các bạn sẽ ngợp bởi các thuật ngữ lạ hoắc.
Những bạn nào thích đọc và có tính kiên nhẫn tốt có thể đọc Angular (vì nhiều khi đọc tương đối nhiều mà chưa thấy ra được cái gì). Hoặc nếu bạn nào không được kiên nhẫn lắm, có thể xem và làm theo Tutorial trước, rồi mới chuyển sang đọc Document. Sẽ rất hữu ích cho các bạn hiểu mình đã làm gì và có thể làm được gì.
Angular được power bởi google. Do đó, họ chia sẻ rất nhiều, có rất nhiều conference về Angular hay Google IO nói về Angular và giới thiệu các tính năng mới.
ReactJS: ReactJS tự nhận là 1 thư viện – library. Mình cũng sẽ gọi nó là 1 library vậy. React có lượng lập trình viên sử dụng tương đối lớn. Do nó có thể áp dụng được với cả những hệ thống lớn. Tương tự như Angular được power bởi Google thì React được power bởi facebook.
React cũng có khá nhiều Conference, tuy nhiên theo mình thấy thì đại đa số là online, không có nhiều ở VN (hoặc là lâu rồi mình chưa biết thông tin).
Nếu như so sánh tổng quan (mình cũng không phải người làm quá nhiều về cả 2 cái này) thì có vẻ Angular có cấu trúc rõ ràng hơn, còn React thì mang tính tùy biến, tùy thuộc vào người dùng xây dựng nên cấu trúc. Do đó bạn nào học về React thì có thể xem 1 project được thiết kế như này, nhưng sang project khác thì thiết kế theo hướng khác.
Document của ReactJS thì hiện nay đã hỗ trợ tiếng Việt. (Tuy nhiên thời gian trước thì có vẻ feedback về tiếng Việt chưa tốt lắm, dạo này thì hình như đỡ hơn rồi). Trong document của React theo đánh gía cá nhân mình thì khá là hợp lý cho người mới học. Lượng kiến thức ở mức vừa phải, không quá nhiều, phân chia theo cấp Basic -> Advanced khá rõ ràng.
Phần hay nhất trong Doc mình thấy là Thinking In React dạy cách nghĩ với lập trình viên React. Nếu các bạn học Core theo hướng Front end chuyên sâu thì React là một lựa chọn khá tốt. Cộng đồng React Việt Nam cũng không nhỏ, có thể dễ dàng hỗ trợ cho các bạn nếu cần thiết.
VueJS: VueJS tự gọi nó là Progressive JavaScript Framework, nên chúng ta coi như nó là FW nhé. VueJS tầm 2-3 năm trở lại đây có tốc độ phát triển khá nhanh tại Việt Nam và trên cả thế giới nữa. Điểm đặc biệt của VueJS là Document của Vuejs cực kỳ dễ hiểu và dễ nắm bắt, có cả tiếng Việt, nhưng nhìn chung mình cũng không hay đọc Doc tiếng Việt nên cũng không có comment gì nhiều.
Vue chỉ cung cấp 1 số lượng nhỏ kiến thức mới, tập trung vào việc viết code nhanh và không thừa hay lặp lại. Có thể nói Vue là 1 FW không quá chi tiết như React, concept của Vue thì khá giống React, nhưng nó có 1 số phần có thể sử dụng tương đương như Angular.
Vue có 1 điểm trừ là tốc độ phát triển khá là nhanh và không được power bởi 1 ông lớn nào cụ thể, do vậy tính ổn định của Vue có phần chưa được tốt. Việc update các phiên bản Vue có thể làm thay đổi (hoặc không còn sử dụng được nữa) các thành phần cũ trong dự án. Do vậy, cần rất cẩn thận khi sử dụng các thư viện/ các package/module kèm theo nằm trong hệ sinh thái của Vue.
Vue được đánh giá là dễ học cho người mới (Đã có kiến thức cơ bản về HTML, CSS, JS). Tuy nhiên các kiến thức nâng cao trong Vue thường sẽ bị ẩn đi, do vậy nếu muốn tìm hiểu sâu hơn về Vue thì sẽ mất nhiều thời gian hơn. Cộng đồng Vue vì thế cũng có nhiều thành viên Newbie hơn so với những loại khác.
Nếu bạn đã hoặc đang lao đầu vào 1 trong 3 loại trên thì các bạn nghĩ thế nào ?