Những gì mọi người yêu thích (và ghét) về Angular

Các tính năng được yêu thích nhất và bị ghét nhất của Angular: Vấn đề được chia sẻ bởi cộng đồng. Kể từ khi ra mắt vào năm 2014, Angular đã là một framework gây tranh cãi. Đẩy người tiền nhiệm của nó sang một bên: AngularJS, sự tồn tại của nó đã được báo

Các tính năng được yêu thích nhất và bị ghét nhất của Angular: Vấn đề được chia sẻ bởi cộng đồng.

Kể từ khi ra mắt vào năm 2014, Angular đã là một framework gây tranh cãi. Đẩy người tiền nhiệm của nó sang một bên: AngularJS, sự tồn tại của nó đã được báo trước là vượt trội và cộng đồng buộc phải chấp nhận nó cho dù chúng ta có thích hay không. Nhóm làm việc tại Google cho rằng việc giải quyết các vấn đề cốt lõi với AngularJS là điều cần thiết, nhưng vào thời điểm đó, họ ít ngờ đến rằng việc này sẽ yêu cầu viết lại hoàn toàn từ phiên bản 1.0.

Chúng ta sẽ yêu thích các tính năng mới của Angular hay hoàn toàn ghét chúng? Điều này vẫn còn được xem xét và nó vẫn là một câu hỏi phải suy nghĩ, ngay cả đến ngày hôm nay, khi framework đã sử dụng rộng rãi.

Nền tảng
Khi có nhiều câu hỏi về việc Angular mới được cải tiến sẽ trông như thế nào khi phiên bản 2.0 chính thức được phát hành. Sự tiếp nhận của cộng đồng bị xáo trộn và cộng đồng AngularJS bị chia rẽ. Một số ở lại với phiên bản kém tối ưu hơn với hy vọng được tiếp tục hỗ trợ, trong khi những người khác miễn cưỡng chuyển sang Angular. Một số thậm chí đã chuyển hướng hoàn toàn và chuyển sang đối thủ gần nhất của nó, React.

React luôn tự thể hiện mình là một thư viện đầy đủ, so với một framework như Angular. Tuy nhiên, cuộc tranh luận này luôn sôi nổi trong cộng đồng và những cuộc so sánh dường như kéo dài bất tận. Mỗi năm, có rất nhiều bài báo so sánh và ngày càng hấp dẫn hơn, và kết quả luôn giống nhau. Nó phụ thuộc nhiều yếu tố.

Angular được quảng cáo là tốt hơn cho các ứng dụng doanh nghiệp phức tạp, trong khi React được coi là tuyệt vời cho các ứng dụng nhỏ hơn yêu cầu thời gian khởi tạo ban đầu tối thiểu. Chúng rất khác nhau nhưng mục đích của chúng vẫn giống nhau: tạo ra các ứng dụng web. Với nhu cầu liên tục của các ứng dụng web, framework của Google và thư viện Facebook thường là những lựa chọn mặc định cho một giải pháp chuẩn hóa. Vue.js, Svelte và nhiều framework khác đôi khi được đề cập đến nhưng không có cái nào được áp dụng hoặc có cùng kiểu với thứ đang được dùng hiện tại.

Đã gần 5 năm kể từ khi phát hành Angular 2.0 và vẫn có một cuộc tranh luận sôi nổi về những gì các nhà phát triển yêu thích hoặc thậm chí là rất ghét. Tài liệu dưới đây là danh sách các tính năng được khen ngợi và bị chỉ trích theo cộng đồng Angular trong nền tảng tin tức xã hội phổ biến, Reddit. Những nhà phát triển này rất đam mê, nhạy bén về các đề xuất này. Hãy cùng tham khảo nhé.

Được yêu thích nhất
Chủ đề thảo luận về các tính năng yêu thích của Angular bị nhạt đi so với chủ đề ghét nhất 😃. Dù vậy, vẫn có một số lượng lớn các tính năng được liệt kê là được ưa chuộng. Dưới đây là những người đã nhận được 10 lượt ủng hộ trở lên theo thứ tự giảm dần:

  • TypeScript
  • RxJS
  • Opinionated structure
  • CLI
  • Payment
  • Forms*
  • Reactive Forms*
    ★ Bình luận hàng đầu thuộc về eyeslandic1981 để chia sẻ bốn lựa chọn yêu thích đầu tiên.

Ghét nhất
Chủ đề về các tính năng bị ghét nhất có số bình luận nhiều hơn gấp 5 lần so với chủ đề về sự yêu thích. Người dùng đã thoải mái chia sẻ những hiểu biết của họ về framework phổ biến này của Google và thực hiện nhiều phiếu bầu trên gần 200 nhận xét. Dưới đây là các tính năng trong danh mục không thích có 10 phiếu ủng hộ trở lên theo thứ tự giảm dần.

  • Các packages của bên thứ ba mà thiếu hỗ trợ TypeScript

  • RxJS bị lạm dụng do sự hiểu biết kém của các nhà phát triển ít kinh nghiệm

  • Phát hiện thay đổi yêu cầu cấu hình thêm

  • Tài liệu ít ỏi

  • Các chức năng không được khuyến khích trong các template và hiệu suất kém khi sử dụng

  • Không hỗ trợ nhiều template cho single component **

  • NgModules

  • Reactive Forms*

  • ngIf and ngFor không được dùng trong cùng một element

  • Kích thước package quá lớn

  • Hỗ trợ gói bên thứ ba không hợp lệ

  • Mat-dialog
    ★ Bình luận hàng đầu thuộc về ridkinoid vì đã chia sẻ tùy chọn bị ghét nhất của các gói npm của bên thứ ba thiếu hỗ trợ TypeScript.

  • người dùng yêu và ghét
    ** được giải quyết bằng mẹo / thủ thuật

Tranh luận nhiều nhất
Như các ý kiến đã được đánh dấu bởi một dấu hoa thị, một số lý do mà người dùng được liệt kê là yêu thích hoặc ghét đã khuấy động thêm cuộc tranh luận. Đây là những điều đã khơi mào cho các cuộc trò chuyện bên lề.

  • Reactive Forms
  • HTTP observables
  • RxJS
  • NgModules
    Hầu hết trong số này là do sự phức tạp và khó làm việc của chúng nhưng một số người dùng đã đánh giá cao sau khi vượt qua khó khăn ban đầu khi sử dụng.

HTTP observables được thảo luận rất nhiều và có nhiều tranh cãi do hành vi mặc định của chúng là trả về observables thay vì Promise. Người dùng ủng hộ Promises lập luận rằng đây là lựa chọn hợp lý hơn cho các hành động “emit once”. Do sự không trực quan trong việc xác định phương thức nào thể hiện emit(tức là HttpClient.get, MatDialog. afterClosed). Nếu điều này trở nên rõ ràng hơn, có khả năng thông qua IntelliSense, nó có thể giúp ngăn chặn bất kỳ hành vi unsubscribes dư thừa nào do các nhà phát triển không biết về hành vi này.

Các mẹo và thủ thuật
Một tác dụng phụ tình cờ nảy sinh của các cuộc thảo luận là khai sáng cho người dùng một số mẹo và thủ thuật. Những mẹo này xoa dịu một số phàn nàn về Angular. Dưới đây là những mẹo nhận được số lượng ủng hộ cao.

1) Không thể sử dụng các template khác nhau cho cùng một component

Mẹo / Thủ thuật: Sử dụng logic** if / else** trong templateUrl.

templateUrl: environment.mobile 
             ? ‘foo-bar.component.mobile.html’ 
             : ‘foo-bar.component.html’

Với 70 phiếu ủng hộ tại thời điểm viết bài này, một lời CẢM ƠN lớn đến kqadem để chia sẻ mẹo này.

2) Cần sử dụng ngOnChanges với các thay đổi của Input

Mẹo / Thủ thuật: hãy sử dụng ngOnChanges để theo dõi việc thay đổi Input.

Cám ơn đến pauly-815 cho gợi ý này.
Kết luận
Mục đích của các chủ đề thảo luận là để kích thích cuộc trò chuyện và khám phá những ưu và nhược điểm hiện tại của Angular. Ngày nay, có một số tùy chọn cạnh tranh với React (với các tiện ích bổ sung), Vue.js, Svelte, Vanilla JS (dành cho những người ghét framework) và nhiều tùy chọn khác. Mặc dù vậy, các nhà phát triển Angular vẫn kiên trì với lựa chọn của họ là ở lại với framework, ít nhất là cho đến bây giờ.
Do các framework và thư viện thay đổi rất nhanh trong thế giới JavaScript, tiềm năng trường tồn của Angular có thể bị nghi ngờ do sự bất mãn xung quanh nó. Rất may, ngay cả với vô số vấn đề được đề cập, cộng đồng vẫn tỏ ra kiên cường và có thể chịu đựng những điểm không hoàn hảo của framework này. Ai có thể nói nếu Angular thậm chí sẽ vẫn tồn tại trong 5 năm nữa? Chà, có lẽ Google có thể làm được, nhưng cho đến lúc đó, hãy thúc đẩy các nhà phát triển Angular. Cộng đồng của chúng tôi đang sống và tốt.

Tham khảo: https://javascript.plainenglish.io/the-top-most-loved-and-hated-features-of-angular-c392b0f08a06

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ