1. Trang chủ
  2. » Giáo Dục - Đào Tạo

tiêu chuẩn xây dựng framework

24 127 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 909,6 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thông thường, một framework bao gồm những chương trình hỗ trợ, các thư viện lập trình và một ngôn ngữ scripting nằm giữa các phần mềm khác để giúp phát triển và gắn những thành phần khác

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CNTT

- -BÀI TẬP LỚN

MÔN HỌC: NHẬP MÔN CÔNG NGHỆ PHẦN MỀM

ĐỀ TÀI: TIÊU CHUẨN XÂY DỰNG FRAMEWORK

Nh p môn Công ngh ph n m mậ ệ ầ ề Page 1

Trang 2

Đ i h c Công nghi p Hà N i ạ ọ ệ ộMỤC LỤC

Trang 3

LỜI NÓI ĐẦU

Tổng quan về framework

1.1 Framework là gì?

Ngày nay, trong quá trình xây dựng một ứng dụng có rất nhiều khung làm việc

(framework) đã được xây dựng sẵn nhằm phục vụ cho mục đích chung nhất cũng như giúp cho những người lập trình viên phát triển ứng dụng một cách nhanh chóng và hiệu quả Vậy, bản chất framework là gì, và nó có những đặc tính gì ?

Theo cộng đồng Wikepedia, framework là một khái niệm trong phát triển phần mềm dùng để chỉ những “cấu trúc hỗ trợ được định nghĩa”mà trong đó những dự án phần mềm khác có thể được sắp xếp vào đó và phát triển

Thông thường, một framework bao gồm những chương trình hỗ trợ, các thư viện lập trình và một ngôn ngữ scripting nằm giữa các phần mềm khác để giúp phát triển và gắn những thành phần khác nhau trong dự án phần mềm lại với nhau

Một framework có 3 đặc tính sau :

1 Một framework xây dựng sẵn các lớp (class) hoặc các thành phần (component), mỗi loại đó sẽ cung cấp một mức trừu tượng (abstraction) cho một vài khái niệm riêngbiệt

2 Một framework sẽ định nghĩa ra tập hợp các cách thức để các mức trừu tượng đócùng nhau giải quyết một vấn đề

3 Các thành phần trong một framework phải có tính sử dụng lại được

Trang 4

Các tài liệu thiết kế

Các lớp

Các thành phần

Các lớp trừ tượng Các giao diện

Là một phần của

Thừa kế

Triể

n khai

Triể

n kh ai

Mối quan hệ giữa các thành phần khác nhau trong một framework được mô tả như

hình vẽ sau:

Trang 5

Các thành phần của một framework được mô tả như sau:

Các tài liệu thiết kế: Thiết kế của một framework có thể bao gồm các lược đồ lớp, viết

bằng văn bản hoặc là một ý tưởng của nhà phát triển

Các giao diện :Miêu tả đáp ứng bên ngoài của các lớp Các giao diện có thể được sử

dụng để mô hình các vai trò khác nhau trong hệ thống, ví dụ như các vai trò trong mộtmẫu thiết kế Một vai trò đại diện cho một nhóm của các phương pháp trong giao diện

mà liên quan tới các phương pháp khác

Các lớ trừ tượng: Một lớp trừu tượng là một sự thực hiện chưa đầy đủ của một hoặc

nhiều giao diện Nó có thể được sử dụng để định nghĩa cách đối xử mà sẽ là chung cho một nhóm các thành phần thực hiện nhóm các giao diện

Các thành phần: Giống như các lớp, các thành phần có thể được tích hợp với các lớp

khác Nếu bản thân các lớp có một API được định nghĩa đầy đủ thì tập kết quả của cáclớp sẽ được biểu hiện như là một tổ hợp các thành phần Một thành phần được định nghĩa như sau:” Một thành phần phần mềm là một đơn vị kết cấu với các giao diện được ghi rõ theo hợp đồng và các phụ thuộc ngữ cảnh rõ ràng Một thành phần phần mềm có thể được triển khai không phụ thuộc và được tổ hợp bằng các hãng thứ ba”

Các lớp: Mức thấp nhất của một framework Các lớp chỉ khác các thành phần là trong

thực tế, các API được công khaci của nó không được đưa ra trong các giao diện của một framework Một các điển hình khác là các lớ được sử dụng bời các thành phần để đại diện cho chức năng, ví dụ một người dùng framework thường không nhìn thấy các lớp này trừ khi họ làm việc với các thành phần

1.2 Cái nhìn sơ qua về frameworks

Các frameworks có vai trò rất lớn đối với sự phát triển của công nghệ phần mềm Chúng cung cấp các cách giải quyết vấn đề, nâng cao chất lượng sản phẩm phần mềm,đem lại lợi ích to lớn cho các doanh nghiệp

Sự phát triển các thế hệ mã lập trình, ở một khía cạnh nào đó đồng nghĩa với việc frameworks phát triển

Một phần mềm được xây dựng dựa trên một framework có thể bao gồm các mẫu thiết

kế và các thành phần dựa trên khung xương của framework đó Một định nghĩa về frameworks được phát biểu như sau: “Frameworks không chỉ bao gồm các lớp Thay vào đó, frameworks đi kèm với các chức năng phong phú và mạnh mẽ, mối liên kết giữa các lớp đối tượng cung cấp một cơ sở hạ tầng cho các phát triển.”

Trang 6

Hình 1 Mối quan hệ giữa ứng dụng và frameworks

Khi quyết định lựa chọn frameworks để phát triển ứng dụng thì lập trình viên bắt buộc phải tuân theo cái khung mà frameworks tạo ra Các thành phần được sử dụng cũng phải được framework cung cấp Các mẫu thiết kế là cố định, lập trình viên chỉ có thể phát triển ứng dụng của mình dựa trên các mẫu đó

Reusable Objects (ORO) is an open-source framework

Webridge Private Exchange is a horizontal framework designed for building B2B

applications

Medical Business Object framework is a vertical framework designed for medical domain

Cách thức làm việc của một framework

Trang 7

Framework làm việc bằng cách cung cấp một đặc tả rõ ràng của các tương tác được mong đợi giữa các thành phần Ví dụ, một thành phần có thể trông chờ những gì từ các thành hần khác và cái gì nên được cung cấp tới chúng? Một framework định nghĩacác dịch vụ lựa chọn, và cung cấp một giải thích cho việc định nghĩa thành phần nào

là thành phần cung cấp Như thế mootjj thành phần sẽ có khả năng được mở rộng rất lớn và các thành phần mới có thể tương tác mạnh mẽ với thành phần đã có

Các thành phần cộng tác với các chi tiết, khía cạnh cụ thể của các vấn đề được cân nhắc bởi framework Các thành phần ứng dụng có thể vẫn còn chứng minh tính tương thích với các vấn đề khác, như ngữ nghĩa của dữ liệu mà chúng chuyển qua Các bộ phận phụ thuộc có thể được giới thiệu như là các thành phần của framework Sự thi hành các thành phần này có thể cùng framework xác định một dịch vụ và cung cấp cácdịch vụ này cho các thành phần khác

1.4 Phân biệt framework với các khái niệm khác

Một mẫu thiết kế khác với một framework ở ba điểm Thứ nhất, một mẫu thiết kế là trừu

tượng hơn một framework, bởi vì một framework được bao gồm cả mã, trong khi đó chỉ có các ví dụ của các mẫu thiết kế mới được mã hóa Các mẫu thiết kế thậm chí mô tả mục đích, việc cân bằng các yếu tố khác để đạt được sự kết hợp tốt nhất và các kết quả của một thiết kế

Điều này không là một trường hợp cho các framework Thứ hai, các mẫu thiết kế là những

kiến trúc nhỏ hơn so với các framework Do vậy, một framework có thể chứa một số các mẫu thiết kế, nhưng điều ngược lại là không thể Do vậy, các mẫu thiết kế không có ảnh hưởng lớn

tới kiến trúc của ứng dụng Cuối cùng, các framework được chuyên môn hóa hơn so với các

mẫu thiết kế Các framework luôn luôn liên quan đến một miền ứng dụng cụ thể, trong khi đócác mẫu thiết kế là chung và có thể được ứng dụng trong bất kỳ miền ứng dụng nào

Các ngôn ngữ mẫu khác với framework theo cách mà một ngôn ngữ mẫu miêu tả: làm như thế nào để tạo ra một thiết kế Trong khi đó, một framework hướng đối tượng là một thiết kế Các ngôn ngữ mẫu bổ sung cho một framework, do chúng có thể hướng dẫn các kỹ sư phần mềm sử dụng framework như thế nào, và mô tả tại sao nó lại được thiết kế như vậy

Một ứng dụng hướng đối tượng khác với một framework ở chỗ, một ứng dụng mô tả một chương trình thực hiện phức tạp mà thỏa mãn một yêu cầu cụ thể Framework đạt được các tính năng của một ứng dụng nhưng nó không thể thi hành bởi vì nó không bao gồm các tươngtác trong trường hợp ứng dụng cụ thể

Các framework khác với các thư viện lớp ở chỗ: chúng nhắm tới các miền ứng dụng cụ thể Trong khi đó, các thư viện lớp cung cấp cho người sử dụng các sự thực hiện trước của thuật toán Các thư viện lớp là thụ động, người sử dụng gọi các phương pháp trong thư viện lớp để thực hiện một số hoạt động Trong khi đó các framework định nghĩa khung cho một ứng dụngthực tế và điều khiển luồng điều khiển trong ứng dụng Các framework có thể khác so với thư

Trang 8

viện lớp, nhưng chúng có thể sử dụng các thư viện lớp đã có sẵn để thực hiện các thuật toán chung và các cấu trúc dữ liệu.

Các thành phần phần mềm ban đầu đã được dự định là các thành phần chức năng riêng lẻ mà

có thể được đầu tư từ nhà cung cấp và tích hợp vào trong các ứng dụng Các framework dường như là những thành phần mà có thể được đầu tư từ nhà cung cấp và nhiều hơn một framework có thể được sử dụng trong một ứng dụng Tuy nhiên, một điểm khác dễ nhận thấy giữa chúng là các framework cung cấp một bộ rộng hơn các dịch vụ so với các thành phần phần mềm Chúng có khả năng tùy biến nhiều hơn, có các giao diện phức tạp hơn và điều quan trọng hơn là chúng thực sự định nghĩa cho một họ ứng dụng hoặc một diện rộng của cácứng dụng Do vậy, các framework là khó học hơn đối với các nhà phát triển, nhưng một khi

đã hiểu được hết framework thì sẽ có được sự linh động cao hơn và với một framework được thiết kế tốt thì có thể giảm được các nỗ lực cần bỏ ra để xây dựng một ứng dụng đã được tùy biến rõ rệt hơn

Trong khi các framework và các thành phần là các kỹ thuật khác nhau, chúng nên được xem

và được sử dụng như các kỹ thuật cộng tác với nhau Với các framework có thể sử dụng các thành phần và các ứng dụng được phát triển sử dụng các framework thậm chí có thể tiện dụnghơn các thành phần Ví dụ, một ứng dụng Visual C++ được tạo với MFC framework, thậm chí có thể sử dụng các thành phần ActiveX trong giao diện của nó giống như việc trao đổi vớicác thành phần ActiveX được đóng gói trong MFC framework Một ví dụ khác cho sự phụ thuộc lẫn nhau giữa các framework và thành phần là việc sử dụng các framework để tạo các thành phần mới, ví dụ, framework Active Template Library (ATL) của Microsoft được sử dụng rộng rãi trong việc tạo các thành phần ActiveX

1.5 Đặc điểm của framework

Một framework hướng đối tượng có 4 đặc điểm chính sau:

Khả năng modun hóa

Khả năng sử dụng lại

Khả năng mở rộng

Sự đổi chiều

Khả năng modun hóa: Các framework tăng cường khả năng modun hóa bằng cách đóng gói

các chi tiết thực hiện không chắc chắn đằng sau các giao diện chắc chắn Khả năng này giúp cho việc tăng cường chất lượng của phần mềm bằng cách cục bộ hóa các tác động của những thay đổi về kiến trúc và sự thực hiện Sự cục bộ hóa này giảm các nỗ lực được yêu cầu để hiểu và duy trì phần mềm hiện có

Trang 9

Khả năng sử dụng lại: Các giao diện chắc chắn được cung cấp bời các framework còn tăng

khả năng sử dụng lại bằng cách định nghĩa ccs thành phần chung mà có thể được áp dụng để tạo ra các ứng dụng mới Khả năng sử dụng lại của framework thúc đẩy kiến thức của miền ứng dụng và ưu tiên nỗ lực của các nhà phát triển kinh nghiệm để tránh việc tạo và làm hợp

lệ lại các giải pháp chung cho các yêu cầu của ứng dụng lặp lại và các thách thức trong thiết

kế phần mềm Việc sử dụng lại các thành phần thiết kế có thể là một sự cải tiến đáng kể trongsản xuất chương trình, cũng như tốt cho việc nâng cao chất lượng, tính hiệu quả, độ tin cậy vàtính sẵn sàng của phần mềm

Khả năng mở rộng: Một framework tăng cường khả năng mở rộng bằng cách cung cấp các

điểm nóng tường minh mà cho phép các ứng dụng mở rộng các giao diện chắc chắn và cách ứng xử của vùng ứng dụng với các sự thay đổi được yêu cầu bởi các trường hợp của ứng dụng trong một số ngữ cảnh cụ thể Khả năng mở rộng của framework là cần thiết để đảm bảo các sự điều chỉnh có tính thời gian của các dịch vụ và tính năng ứng dụng mới

Sự đổi chiều: Là một đặc điểm của kiến trúc thời gian chạy của môt framework, thường được

gọi là “Nguyên tắc Hollywood” – Đừng gọi cho chúng tôi, chúng tôi sẽ gọi cho bạn Kiến trúc này cho phép ứng dụng hợp với các quy tắc tiêu chuẩn bằng cách điều chỉnh từng bước

xử lý, bằng các đối tượng quản lý sựu kiện mà được viện dẫn thông qua cơ chế gửi kích hoạt lại của framework Khi các sự kiện xảy ra, framework gửi lại kích hoạt bằng cách viện dẫn phương pháp móc nối trên dụng cụ thể trên các sự kiện Đổi chiều điều khiển cho phép framework định nghĩa một tập các phương pháp ứng dung cụ thể để đáp ứng với các sự kiện

ở bên ngoài

1.6 Phân loại

Có nhiều cách phân loại framework khác nhau Cụ thể :

Về mặt mục đích sử dụng thì có thể phân loại

Application-specific framework kiểu như mô hình component và plugin của Joomla,

mô hình module và template overriden của Drupal Chúng đều tạo là một mô hình phát triển với một số cấp độ hỗ trợ dùng lại code ở mức thư viện của ứng dụng chủ General purpose framework: Như Symfony, Zend, SolarPHP, Cake, Fuse Nó không

có một ứng dụng chủ Chỉ là tư duy thiết kế, quản lý chu kì sống và cấu trúc ứng dụng

ở mức file systetem hay naming convention và tất nhiên là số thư viện hỗ trợ phát triển ứng dụng là phong phú

Phân loại ở miền vấn đề của ứng dụng thì

Web framework: CakePHP, Fuse, SolarPHP (Zend lớn hơn nên khó mà xếp vào dạng chỉ web vì nó còn các gọi I/O, webservice và ORM), Grails, RoR

Trang 10

Full-fledged framework: NET, Java (vừa là ngôn ngữ, đặc tả, framework và

platform), Zend (somewhat)

Phân loại ở mức cách thức sử dụng

Glue framework như Zend Gói liên quan trực tiếp đến web là MVC tách rời khỏi các gói khác Các gói khác thì không can thiệp vào chu kì sống của ứng dụng nên có thể gọi Zend ra như là một thư viện hoặc như là một framework nếu dùng MVC

Application framework như Cake, Akelos nơi có sự liên kết chặt giữa các lớp

1.7 Các tiêu chí đánh giá framework

Không có bất kỳ tài liệu nào đề cập đến tiêu chuẩn để có thể xây dựng một framework Yếu

tố quyết định một framework có tồn tại được hay không chính là chất lượng của framework

đó Một framework được đánh giá tốt và có thể sử dụng phải đáp ứng được 10 tiêu chứ sau đây:

Kỹ thuật:

Framework được coi là xương sống cho ứng dụng nhưng vẫn phải tuân theo các quy tắc thiết

kế chung

Bảo mật:

Trang 11

Bất kỳ ứng dụng nào cũng có khả năng bị tấn công Để giảm thiếu rủi ro, một framework có các chức năng đảm bảo an ninh sẽ được ưu tiên.

Nguồn lực sẵn có trên thị trường:

Có lẽ bạn sẽ muốn có một đội ngũ kỹ thuật vây quanh bạn trong giai đoạn phát triển trong dàihạn, cho cả hai việc là duy trì và nâng cấp Nói cách khác, hãy chắc chắn rằng các kỹ năng cần thiết cho các công cụ mà bạn đang sử dụng có sẵn trên thị trường mở

Kiểm thử thực tế:

Đây là chìa khóa quyết định Một framework tốt phải nhận được sự đánh giá cao từ những người từng sử dụng

Với PHP framework

Trang 12

php framework

Khi nhắc tới php thì không thể ko nhắc tới PHP framework là một mảnh ghép không thể thiếu để giúp hoàn thiện PHP, nó giúp PHP trở nên trơn tru hơn bằng cách cung cấp 1 cấu trúc cơ bản để xây dựng ứng dụng

PHP Framework hiện nay khá đầy đủ và đáp ứng hầu hết các điều kiện cần và đủ cho việc xây dựng một dự án Nói tới Framework thì nổi bật nhất vẫn là: Zend

Framework, CodeiGniter Framework, CakePHP Framework,…

Các framework trên phổ biến vì tính năng mà chúng mang lại được lập trình viên ưa thích, thỏa mãn các yêu cầu của họ Dưới đây là 10 lý do chọn PHP framework

Cách tổ chức file và code

Khi setup dùng PHP framework thì nó đã chưa một cấu trúc nhất định, nó giúp ta đi theo một tiêu chuẩn giống nhau và giữ cho mọi thứ được tổ chức theo một cách nhất định Một khi đã quen với mô hình này, ta sẽ không muốn quay trở lại cách viết code ban đầu

Thật không may đối với một số người dùng command line, điều này có thể là một thách thức đối với họ Họ cần làm quen với nhiều tập tin với kích thước nhỏ hơn, nhưng khi bạn sử dụng một trình soạn thảo hay một IDE, nó sẽ là một làn gió cho các

Trang 13

ứng dụng của bạn và bạn sẽ tìm thấy những thứ mình cần 1 cách nhanh chóng vì chúng được tổ chức 1 cách rất là khoa học.

Thư viện và các tiện ích

PHP là một ngôn ngữ tuyệt vời để phát triển web và cung cấp vô số các công cụ và thư viện Tuy nhiên nếu bạn đã từng cố gắng xây dựng một trang web với PHP một mình thì bạn sẽ thấy rằng mình viết rất nhiều đoạn mã và thư viện của bên thứ 3 hoặc

là chính mình viết

Hầu hết các PHP Framework hàng đầu chúng đều chứa các thư viện có sẵn và các Helpers, chúng sẽ giúp cho bạn:

Kiểm tra form ( Form Validation)

Lọc dữ liệu đầu ra và đầu vào ( Input/Output Filtering)

Lớp trừu tượng database ( Database Abstraction)

Xử lý Session và Cookie ( Session and Cookie Handling)

Gởi mail, lịch biểu, phân trang v.v

Bên cạnh đó có rấ nhiều plugin được cung cấp bởi cộng đồng mà bạn có thể thêm vào framework của bạn

Mô hình MVC (Pattern MVC

Mô hình View Controller Model ( MVC) nổi tiếng từ năm 1979 trở lại đây, khi một nhà khoa học người Na Uy tên là Trygve Reenskaug lần đầu tiên miêu tả nó Mô hìnhMVC nó hoạt động như một template engine, tuy nhiên khi sử dụng nó một cách vô trách nhiệm, nó dẫn đến mã code xấu và rất khó duy trì

Cách mà mô hình MVC được áp dụng cho tất cả các ứng dụng PHP của bạn như sau:Model: đại diện cho cấu trúc dữ liệu của bạn, thường giao tiếp với cơ sở dữ liệu.View: chứa trang mẫu để hiển thị dữ liệu cho người dùng

Controller: nhiệm vụ chính là điều hướng các yêu cầu của người dùng đến trang web

Ngày đăng: 19/11/2017, 19:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w