Chắc hẳn mọi người đã từng nghe tới nghề mộc nhỉ? Đó là nghề người ta làm những món đồ liên quan đến gỗ, mình rất may mắn vì đã được tới 1 xưởng chế tác tượng gỗ thủ công. Ở đó, người ta biến đổi 1 khúc gỗ vô tri thành những tác phẩm rất đẹp mắt bằng những dụng cụ như búa, đục, sơn mài... Và mình cũng đã từng được đến xưởng sản xuất bàn gỗ, từ những khúc gỗ công nghiệp, cũng với những cái búa, những đinh tán, những chiếc đục, những hộp sơn... người ta cũng có thể chế tạo ra được những chiếc bàn rất đẹp. Cả 2 xưởng tạo ra những sản phẩm khác nhau, nhưng họ lại dùng chung những dụng cụ như búa, đục và sơn. Những dụng cụ này đã có sẵn ở cửa tiệm, những người thợ mộc chỉ cần ra tiệm lấy về và chế tác, việc của họ là chỉ quan tâm đến việc đục đẽo và lắp ráp gỗ, còn những dụng cụ kia thì không cần phải chế lại từ đầu. Những dụng cụ này, bạn có thể hiểu nó là Library.
Trong lập trình cũng vậy, khi bạn lập trình một ứng dụng, có rất nhiều thứ bạn phải quan tâm để xây dựng, nhưng rất nhiều trong những thứ ấy đã được những người khác làm sẵn, bạn có thể lấy về và xài. Việc này giúp bạn giảm thiểu được lượng công việc. Những phần code có sẵn ấy, người ta gọi nó là Library.
Quay lại với việc chế tạo bàn gỗ. Có rất nhiều xưởng bàn gỗ khác nhau, họ chế tạo ra những mẫu bàn khác nhau, nhưng lại dùng chung một mớ dụng cụ như : búa, sơn bóng, đinh, bào gỗ... và họ cũng thực hiện chung những công đoạn như chế tác chân bàn, mài nhẵn mặt bàn, sơn bóng cho bàn... Như vậy, những dụ cụ và công việc này đều theo 1 quy chuẩn nào đó, và ta có thể chế tạo ra 1 cái máy thần kì, chiếc máy này chỉ cần ta bấm chọn loại bàn cần tạo. Nó sẽ tự động sử dụng gỗ, búa, đục, sơn để chế tạo ra chiếc bàn đó cho ta. Mặc dù đây là chiếc bàn giả tưởng nhưng thật sự là nó quá ngon lành đúng không? Nó đảm nhận hầu hết mọi việc, chỉ cần ta cho nó 1 ít thông tin cần làm mà thôi. Và cái này, ta có thể gọi nó là Framework.
Như vậy, Framework là tập hợp những Library có sự liên quan với nhau trong 1 phạm vi nào đó, nó định nghĩa việc tương tác giữa các library với nhau để giúp ta dễ dàng trong việc xây dựng ứng dụng. Tất nhiên Framework được tạo ra để hỗ trợ bạn trong một phạm vi nào đó thôi. Giống như chiếc máy thần kì phía trên kia, nó có thể giúp bạn tạo ra rất nhiều loại bàn khác nhau, nhưng nó không thể giúp bạn tạo ra 1 tác phẩm điêu khắc được.
Mình mong qua bài viết này, bạn có thể tự rút ra cho bản thân sự khác nhau giữa 2 khái niệm trên.
0 Nhận xét