DucVA's Blog

What is Framework? | June 28, 2010

Framework là tập hợp các thành phần (class, dll, library,…) kết hợp với nhau, cung cấp các chức năng mang tính tổng quát, mà người sử dụng (developer) có thể tái sử dụng hoặc ghi đè cho phù hợp với ứng dụng sẽ được tạo ra trên nền Framework.
Về khái niệm, Framework có phần giống với Thư viện phần mềm (Software Library). Nhưng Framework có những đặc trưng riêng của nó. Đó là:

Inversion of Control (IOC): không giống với các thư viện phần mềm, trong FW quá trình, luồng thực thi của hệ thống được xác định bởi FW, chứ không phải bởi đối tượng gọi (ứng dụng phát triển trên FW).

Default behavior: FW có các “hành vi” thiết lập sẵn. Hành vi có thể là các tiến trình, các hoạt động thực hiện một nhiệm vụ nào đó, theo một trình tự hợp lý nhất mà FW đưa ra. Ví dụ: quá trình lưu dữ liệu vào DB, quá trình xử lý request từ bên ngoài,…

Extensibility: Khả năng mở rộng. FW luôn cho phép và hỗ trợ người dùng mở rộng, phát triển chính nó bằng cách ghi đè, hoặc cụ thể hóa các chức năng tổng quát của mình.

Non-modifiable Framework code : FW hỗ trợ người dùng mở rộng, chứ không thay đổi code của nó.

Mục đích sử dụng FW:

– Đơn giản hóa quá trình phát triển software (WEB, Apps,…): giúp Developer dành thời gian vào Customer Requirements hơn là những chi tiết liên quan đến hệ thống ở mức thấp => Reduce overall development time, increase product quality.

– Đưa ra một giải pháp chung cho nhiều bài toán (one-size-fits-all).

Pros and Cons (Ưu nhược điểm):

– Sử dụng FW có thể làm cho lượng code của Software bị phình to ra không cần thiết.

– Đòi hỏi thời gian để học cách sử dụng FW => đôi khi làm hỏng mục tiêu ban đầu của FW: giảm thời gian phát triển Software.

– Với sự am hiểu FW nhất định của các developer, thời gian phát triển SW sẽ được giảm đi rõ rệt.

– Khó có một FW nào có thể cung cấp giải pháp cho tất cả các vấn đề, việc kết hợp các FW, hoặc FW với các thư viện 3rd Party cũng là một vấn đề.

Kiến trúc:

Software Architecture có thể coi gồm 2 thành phần: frozen spots and hot spots.

– Frozen spots: xác định kiến trúc tổng thể của hệ thống. Cố định, không được phép thay đổi.

– Hot spots: những thành phần linh hoạt, được phép thay đổi, phát triển.

Đứng ở góc độ hướng đối tượng, FW bao gồm: các abstract và concrete classes. Có thể hiểu, abstract classes chính là những hot spots. Còn các concreate classes là những frozend spot của FW.

Software Framework dựa trên nguyên tắc Hollywood (Hollywood principle): Don’t call us, we’ll call you. Nghĩa là các class tự định nghĩa của developer sẽ được gọi/ tham chiếu tới bởi các predefined của FW. Điều này được thực hiện dựa trên việc cài đặt các phương thức abstract của các abstract classes.


Leave a Comment »

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: