- vừa được xem lúc

Là framework? hay là library?

0 0 19

Người đăng: Huy Tran

Theo The Full Snack

Là framework? hay là library?

Hôm nay mình nghe bài nói chuyện giữa anh Kyle Simpson (tác giả You Don't Know JS) và Jeff từ Software Engineering Daily Nếu các bạn đang hỏi là: Ơ, tự nhiên lòi đâu ra cái vụ nghe podcast nữa? Thì podcast là một phong trào mới nổi trong cộng đồng developer, và tính cả thời gian đi làm lẫn đi về của mình thì một ngày tốn tầm 3, 4 tiếng lái xe, nên nghe podcast/audio book để tận dụng thời gian "chết" là một giải pháp vừa hiển nhiên vừa chỉ có lợi. thì thấy một ý kiến khá là đáng quan tâm của anh Kyle về cách phân biệt giữa libraryframework, note lại kẻo quên.

Đầu tiên, anh Kyle đưa ra một ví dụ về việc lái xe: Giả sử bạn lái xe, và muốn đi từ điểm A tới điểm B, mà bạn không biết đường.

  • Cách đơn giản nhất, đó là mở ngăn kéo lấy ra một tấm bản đồ, nhìn vô đó để tìm đường đi, tấm bản đồ bằng giấy, và bạn phải tự tìm đường bằng cách hình dung ra con đường. Tấm bản đồ là một công cụ giúp bạn tìm đường đi, nhưng tự thân nó không đưa ra bất kì ý kiến hay chỉ dẫn nào cho bạn.
  • Ở một cấp độ khác cao hơn, chúng ta có các thể loại thiết bị kết nối GPS, đưa ra các gợi ý và hướng dẫn để chúng ta đi từ điểm này đến điểm khác, như Google Maps trên điện thoại. Tuy nhiên, nếu Google Maps biểu bạn rẽ trái, mà bạn lại quẹo phải, thì cũng không sao. Bạn luôn luôn có sự lựa chọn là nghe theo hoặc không nghe theo các ý kiến chỉ dẫn đó.
  • Cấp độ cao hơn nữa, đó là xe tự lái, bạn ngồi lên xe, ra lệnh cho nó chạy từ chỗ này đến chỗ kia, và nó sẽ tự tìm đường để đưa bạn đến nơi cần đến, có nghĩa là bạn đi theo nó, và bạn không có sự lựa chọn nào khác Chỉ là đại khái thôi, thực ra xe tự lái thì bạn vẫn có thể can thiệp được vào việc nó lái, và đó là luật. ngoài việc nằm im và hưởng thụ ngồi yên cho nó lái.

Ở trên là 3 cấp độ đại diện cho 3 cách phân loại: library, frameworkplatform, lần lượt dựa trên mức độ opinionated của chúng.

  • Library là các loại công cụ chỉ đơn thuần là công cụ, không đưa ra bất kỳ ý kiến hay chỉ dẫn nào để bạn phải làm theo, bạn có thể tùy ý sử dụng và tùy biến nó theo cách của bạn. jQuery, underscore, lodash là các ví dụ về library, chúng chỉ cung cấp cho chúng ta các công cụ cần thiết để tùy ý lựa chọn và sử dụng chứ ta không cần phải theo một quy tắc gì.
  • Framework là các công cụ opinionated, nó đưa ra các quy tắc và hướng dẫn để chúng ta phải tuân theo, tuy nhiên nếu không theo thì cũng chả chết ai. Angular là một framework, vì nó bắt bạn code theo quy tắc của nó (từ cách đặt tên, cho tới cách tổ chức cấu trúc dự án, service, module, cách viết directives...). React thì nằm đâu đó giữa framework và library vì nó không bắt buộc chúng ta phải tuân theo một quy cách nào, mỗi người có một cách sử dụng React riêng, nhưng vẫn phải tuân theo một số quy tắc mà nó đưa ra (ví dụ các lifecycle handler của một component, và bạn có thể tùy ý setState hoặc xài Redux,...).
  • Platform là các công cụ cực kì opinionated, Cũng có người định nghĩa platform theo nghĩa rộng hơn, là bao gồm cả hệ điều hành, phần cứng, nơi mà các ứng dụng, framework chạy. Tuy nhiên cách định nghĩa này có vẻ không liên quan đến platform trong bài viết.bạn phải tuân theo hoàn toàn mọi quy tắc mà nó đưa ra, làm khác đi thì không được. Ví dụ Wordpress nằm ở giữa khoản framework và platform, một bộ theme phải có các thành phần này kia, phải có function.php (phải ko ta, lâu rồi không code PHP), .NET Framework là một platform. PhoneGap là một platform.

Notes

  1. Podcast: JavaScript Concurrency with Kyle Simpson

Bình luận

Bài viết tương tự

- vừa được xem lúc

Javascript - Math.random() có thực sự là random

Khi bạn làm việc với Javascript, và bạn cần 1 số ngẫu nhiên, thì ngay lập tức bạn sẽ nghĩ đến là Math.random(). Một trong những lý do chính cho việc sử dụng hàm Math.random() để tạo số ngẫu nhiên là tính dễ sử dụng của nó.

0 0 446

- vừa được xem lúc

Chuyện không đầu không đít (phần 4)

Chuyện không đầu không đít (phần 4). Lâu lắm rồi mới lại nghe một album mới của Bức Tường, bài cuối cùng mình nghe là Cơn mưa tháng 5, một bài hát nhiều ý nghĩa, thực sự không có ý chê bai nhưng chỉ c

0 0 41

- vừa được xem lúc

Một phím một chuột và 2 máy tính

Một phím một chuột và 2 máy tính. Khác với các công ty startup, ở các công ty lớn hơn, thì đa phần vì policy của công ty nên máy tính do công ty cấp đều cài sẵn các phần mềm theo dõi hoặc kiểm soát in

0 0 28

- vừa được xem lúc

Vùng lùng bùng

Vùng lùng bùng. Người ta nói nhiều về cái gọi là vùng an.

0 0 23

- vừa được xem lúc

Be an Amateur

Be an Amateur. OK, đóng cửa blog là một quyết định đúng đắn, giờ thì mình có thể viết và thoải mái publish mà không sợ ai thấy nữa.

0 0 29

- vừa được xem lúc

Chuyện không đầu không đít (Phần 3)

Chuyện không đầu không đít (Phần 3). Hẳn là có nhiều bạn từng nói chuyện với mình bên Slack đều biết là mấy tháng nay mình đang build một cái app tên là Pomoday.

0 0 37