Tải bản đầy đủ (.docx) (23 trang)

Những nguyên lý sáng tạo được áp dụng trong mô hình MVC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (261.3 KB, 23 trang )

GS.TSKH HOÀNG KIẾM
NHẬN XÉT CỦA GIÁO VIÊN




















LỜI NÓI ĐẦU
HỌC VIÊN: Trần Văn Hanh 1
GS.TSKH HOÀNG KIẾM
Nhà nước ta đang chú trọng phát triển kinh tế tri thức. Việc phát triển kinh tế tri thức
đối với nước ta gặp rất nhiều khó khăn và thách thức. Vì trình độ dân trí còn thấp.
Việc định hướng phát triển kinh tế trí thức là nhận thức vô cùng đúng đắn của Đảng và
Nhà nước. Xong Đảng ta đang gặp nhiều khó khăn mà vấn đề chủ chốt ở đây là yếu tố
con người. Chúng ta không thể phát triển kinh tế tri thức với những con người còn hạn
chế về mặt tri thức, chính vì vậy chúng ta cần tập trung vào phát triển nguồn nhân lực.


Việc đào tạo nguồn nhân lực tri thức là yếu tố sống còn của kinh tế nước nhà. Nhưng
đào tạo thế nào cũng là một vấn đề. Công việc ngày càng phức tạp, mà những kiến thức
chúng ta học ở phổ thông hay đại học là chưa đủ để giải quyết những vấn đề đó. Chúng ta
cần sáng tạo và tư duy tốt thì mới giải quyết được những vẫn đề ngày càng phức tạp hơn.
Nhưng không phải ai trong chúng ta cũng có khả năng sáng tạo, chính vì vậy chúng ta
cần tìm hiểu xem làm thế nào để sáng tạo.
Khi khả năng sáng tạo của chúng ta được đánh thức chúng ta sẽ giải quyết được rất
nhiều vấn đề và tạo ra nhiều sản phẩm có ích cho xã hội.
Nhận thấy những nguyên lý sáng tạo là vô cùng thực tiễn và được áp dụng rộng rãi
trong nhiều lĩnh vực, sau quá trình học tập, làm việc và nghiên cứu em quyết định chọn
đề tài: “Những nguyên lý sáng tạo được áp dụng trong mô hình MVC”. Vì nó rất gần gũi
đối với em trong công việc lập trình hàng ngày.
Em xin cảm ơn những bài học quý giá và những kinh nghiệm thực tế mà thầy Hoàng
Kiếm đã dạy em trong quá trình lên lớp và những tài liệu thầy cho để tham khảo. Những
bài học của thầy chắc chắn sẽ theo em trong suốt quá trình làm việc. Và em mong rằng
bằng những tri thức thầy có cùng với sự nhiệt huyết của thầy, thầy sẽ tiếp tục giảng dạy,
đào tạo ra đội ngũ tri thức có khả năng tư duy và sáng tạo góp phần vào sự nghiệp phát
triển kinh tế chung của nước nhà.
Em xin cám ơn thầy!
MỤC LỤC
HỌC VIÊN: Trần Văn Hanh 2
GS.TSKH HOÀNG KIẾM
PHẦN I: Mô hình MVC 4
1. Tổng quát về mô hình MVC 4
1.1 Giới thiệu 4
1.2 Các thành phần 4
1.3 Các tính năng của mô hình MVC 6
1.4 Ưu điểm 8
1.5 Nhược điểm 8
2. Lựa chọn áp dụng mô hình MVC trong xây dựng ứng dụng 9

2.1 Lợi ích của việc xây dựn ứng dụng trên mô hình MVC 9
2.2 Lợi ích của việc xây dựng ứng dụng trên mô hình Web Form 10
3. So sánh mô hình MVC với mô hình 3 lớp 11
3.1 Điểm giống 11
3.2 Điểm khác 12
4. MVC làm việc như thế nào 13
5. Sự khác biệt giữa MVC và Web Form 14
PHẦN II: Các nguyên tắc sáng tạo 17
PHẦN III: Những nguyên tắc sáng tạo được áp dụng trong mô hình MVC 24
1. Nguyên tắc lấy ra, bỏ đi, rút bớt 24
2. Nguyên tắc kết hợp 24
3. Nguyên tắc phân đoạn 24
4. Nguyên tắc chất lượng nội 24
5. Nguyên tắc loại bỏ và tái sử dụng 25
6. Nguyên tắc trung gian 25
7. Nguyên tắc vạn năng 25
TÀI LIỆU THAM KHẢO 26
PHẦN I: Mô hình MVC
1. Tổng quan về mô hình MVC
1.1 Giới thiệu về MVC
Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô
hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nó giúp cho các developer
tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller. Mỗi
thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.

HỌC VIÊN: Trần Văn Hanh 3
GS.TSKH HOÀNG KIẾM
1.2 Các thành phần
Models: Các đối tượng Models là một phần của ứng dụng, các đối tượng này thiết
lập logic của phần dữ liệu của ứng dụng. Thông thường, các đối tượng model lấy

và lưu trạng thái của model trong CSDL. Ví dụ như, một đối tượng Product (sản
phẩm) sẽ lấy dữ liệu từ CSDL, thao tác trên dữ liệu và sẽ cập nhật dữ liệu trở lại
vào bảng Products ở SQL Server.
Trong các ứng dụng nhỏ, model thường là chỉ là một khái niệm nhằm phân biệt
hơn là được cài đặt thực thụ, ví dụ, nếu ứng dụng chỉ đọc dữ liệu từ CSDL và gởi
chúng đến view, ứng dụng khong cần phải có tầng model và các lớp lien quan.
Trong trường hợp này, dữ liệu được lấy như là một đối tượng model (hơn là tầng
model).
Views: Views là các thành phần dùng để hiển thị giao diện người dùng (UI).
Thông thường, view được tạo dựa vào thông tin dữ liệu model. Ví dụ như, view
dùng để cập nhật bảng Products sẽ hiển thị các hộp văn bản, drop-down list, và các
check box dựa trên trạng thái hiện tại của một đối tượng Product.
HỌC VIÊN: Trần Văn Hanh 4
GS.TSKH HOÀNG KIẾM
Controllers: Controller là các thành phần dùng để quản lý tương tác người dùng,
làm việc với model và chọn view để hiển thị giao diện người dùng. Trong một ứng
dụng MVC, view chỉ được dùng để hiển thị thông tin, controller chịu trách nhiệm
quản lý và đáp trả nội dung người dùng nhập và tương tác với người dùng. Ví dụ,
controller sẽ quản lý các dữ liệu người dùng gởi lên (query-string values) và gởi
các giá trị đó đến model, model sẽ lấy dữ liệu từ CSDL nhờ vào các giá trị này.
Mẫu MVC giúp bạn tạo được các ứng dụng mà chúng phân tách rạch ròi các khía
cạnh của ứng dụng (logic về nhập liệu, logic xử lý tác vụ và logic về giao diện).
Mẫu MVC chỉ ra mỗi loại logic kể trên nên được thiếp lập ở đâu trên ứng dụng.
Logic giao diện (UI logic) thuộc về views. Logic nhập liệu (input logic) thuộc về
controller. Và logic tác vụ (Business logic – là logic xử lý thông tin, mục đích
chính của ứng dụng) thuộc về model. Sự phân chia này giúp bạn giảm bớt được sự
phức tạp của ứng dụng và chỉ tập trung vào mỗi khía cạnh cần được cài đặt ở mỗi
thời điểm. Ví dụ như bạn chỉ cần tập trung vào giao diện (views) mà không phải
quan tâm đến logic xử lý thông tin của ứng dụng.
Để quản lý sự phức tạp của ứng dụng, mẫu MVC giúp cho chúng ta có thể kiểm

thử ứng dụng dễ dàng hơn hẳn so với khi áp dụng mẫu Web Forms. Ví dụ, trong
một ứng dụng ASP.NET Web Forms, một lớp thường được sử dụng để hiển thị
thông tin xuất ra cho người dùng và đồng thời xử lý thông tin người dùng nhập.
Việc xây dựng các bộ test tự động cho ứng dụng Web Forms là rất phức tạp, bởi
để kiểm thử mỗi trang web, bạn phải khởi tạo đối tượng trang, khởi tạo tất cả các
control được sử dụng trong trang và các lớp phụ thuộc trong ứng dụng. Và bởi vì
có quá nhiều lớp cần được khởi tạo để chạy được trang, thật khó để có thể viết các
test chỉ tập trung vào một khía cạnh nào đó của ứng dụng. Và vì thế, kiểm thử đối
với các ứng dụng dứa trên nền tảng Web Forms sẽ khó khăn hơn nhiều so với khi
áp dụng trên ứng dụng MVC. Hơn thế nữa, việc kiểm thử trên nền tảng Web
HỌC VIÊN: Trần Văn Hanh 5
GS.TSKH HOÀNG KIẾM
Forms yêu cầu phải sử dụng đến web server. Nền tảng MVC phân tách các thành
phần và sử dụng các interface (khái niệm giao diện trong lập trình hướng đối
tượng), và nhờ đó có thể kiểm thử các thành phần riêng biệt trong tình trạng phân
lập với các yếu tố còn lại của ứng dụng.
Sự phân tách rạch ròi ba thành phần của ứng dụng MVC còn giúp cho việc lập
trình diễn ra song song. Ví dụ như một lập trình viên làm việc với view, lập trình
viên thứ hai lo cài đặt logic của controller và lập trình viên thứ ba có thể tập trung
vào logic tác vụ của model tại cùng một thời điểm.
1.3 Các tính năng của mô hinh MVC
Tách bạch các tác vụ của ứng dụng (logic nhập liệu, business logic, và logic giao
diện), dễ dàng kiểm thử và mặc định áp dụng hướng phát triển TDD. Tất cả các
tính năng chính của mô hình MVC được cài đặt dựa trên interface và được kiểm
thử bằng cách sử dụng các đối tượng mocks, mock object là các đối tượng mô
phỏng các tính năng của những đối tượng thực sự trong ứng dụng. Bạn có thể
kiểm thử unit-test cho ứng dụng mà không cần chạy controller trong tiến trình
ASP.NET, và điều đó giúp unit test được áp dụng nhanh chóng và tiện dụng. Bạn
có thể sử dụng bất kỳ nền tảng unit-testing nào tương thích với nền tảng .NET.
MVC là một nền tảng khả mở rộng (extensible) & khả nhúng (pluggable). Các

thành phần của ASP.NET MVC được thiết kể để chúng có thể được thay thế một
cách dễ dàng hoặc dễ dàng tùy chỉnh. Bạn có thể nhúng thêm view engine, cơ chế
định tuyến cho URL, cách kết xuất tham số của action-method và các thành phần
khác. ASP.NET MVC cũng hỗ trợ việc sử dụng Dependency Injection (DI) và
Inversion of Control (IoC). DI cho phép bạn gắn các đối tượng vào một lớp cho
lớp đó sử dụng thay vì buộc lớp đó phải tự mình khởi tạo các đối tượng. IoC quy
định rằng, nếu một đối tượng yêu cầu một đối tượng khác, đối tượng đầu sẽ lấy
đối tượng thứ hai từ một nguồn bên ngoài, ví dụ như từ tập tin cấu hình. Và nhờ
vậy, việc sử dụng DI và IoC sẽ giúp kiểm thử dễ dàng hơn.
HỌC VIÊN: Trần Văn Hanh 6
GS.TSKH HOÀNG KIẾM
ASP.NET MVC có thành phần ánh xạ URL mạnh mẽ cho phép bạn xây dựng
những ứng dụng có các địa chỉ URL xúc tích và dễ tìm kiếm. Các địa chỉ URL
không cần phải có phần mở rộng của tên tập tin và được thiết kế để hỗ trợ các mẫu
định dạng tên phù hợp với việc tối ưu hóa tìm kiếm (URL) và phù hợp với lập địa
chỉ theo kiểu REST.
Hỗ trợ sử dụng đặc tả (các thẻ) của các trang ASP.NET(.aspx), điều khiển người
dùng (.ascx) và trang master page (.marter). Bạn có thể sử dụng các tính năng có
sẵn của ASP.NET như là sử dụng lồng các trang master page, sử dụng in-line
expression (<%= %>), sử dụng server controls, mẫu, data-binding, địa phương hóa
(localization) và hơn thế nữa.
Hỗ trợ các tính năng có sẵn của ASP.NET như cơ chế xác thực người dùng, quản
lý thành viên, quyền, output caching và data caching, seession và profile, quản lý
tình trạng ứng dụng, hệ thống cấu hình…
ASP.NET MVC 3 còn bổ sung một view engine mới là Razor View Engine cho
phép thiết lập các view nhanh chóng, dễ dàng và tốn ít công sức hơn so với việc sử
dụng Web Forms view engine.
1.4 Ưu điểm
Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều nhóm
được đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật cho đến lập trình đến

tổ chức database.
- Bảo trì: Với các lớp được phân chia theo như đã nói, thì các thành phần của
một hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong
từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó, chứ không phát tán
náo loạn trong cả chương trình.
- Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năng
vào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác.
- Tiện về bug lỗi, kiểm soát code, workflow dễ dàng hơn và nhiều người có thể
tham gia phát triển cùng trên 1 module.
HỌC VIÊN: Trần Văn Hanh 7
GS.TSKH HOÀNG KIẾM
1.5 Nhược điểm
- Đối với dự án nhỏ: Cồng kềnh, tốn thời gian phát triển.
- Trade-off là performance, do tốn thời gian trung chuyển DTO (Data Transfer
Object) giữa các layers
2. Lựa chọn áp dụng MVC trong xây dựng ứng dụng
Bạn cần phải xem xét kỹ càng việc áp dụng mô hình ASP.NET MVC hay mô hình
ASP.NET Web Forms khi xây dựng một ứng dụng. Mô hình MVC không phải là
mô hình thay thế cho Web Forms, bạn có thể dùng một trong hai mô hình.
Trước khi quyết định sử dụng MVC hay Web Forms cho một web site cụ thể, bạn
cần phải phân tích lợi ích khi chọn một trong hai hướng.
2.1 Lợi ích của ứng dụng web dựa trên mô hình MVC
Nền tảng ASP.NET MVC mang lại những lợi ích sau:
Dễ dàng quản lý sự phức tạp của ứng dụng bằng cách chia ứng dụng thành ba
thành phần model, view, controller
Nó không sử dụng view state hoặc server-based form. Điều này tốt cho những lập
trình viên muốn quản lý hết các khía cạnh của một ứng dụng.
Nó sử dụng mẫu Front Controller, mẫu này giúp quản lý các requests (yêu cầu) chỉ
thông qua một Controller. Nhờ đó bạn có thể thiết kế một hạ tầng quản lý định
tuyến. Để có nhiều thông tin hơn, bạn nên xem phần Front Controller trên web site

MSDN
HỌC VIÊN: Trần Văn Hanh 8
GS.TSKH HOÀNG KIẾM
Hỗ trợ tốt hơn cho mô hình phát triển ứng dụng hướng kiểm thử (TDD)
Nó hỗ trợ tốt cho các ứng dụng được xây dựng bởi những đội có nhiều lập trình
viên và thiết kế mà vẫn quản lý được tính năng của ứng dụng
2.2 Lợi ích của ứng dụng được xây dựng trên nền tảng Web Form
Nó hỗ trợ cách lập trình hướng sự kiện, quản lý trạng thái trên giao thức HTTP, tiện
dụng cho việc phát triển các ứng dụng Web phục vụ kinh doanh. Các ứng dụng trên
nền tảng Web Forms cung cấp hàng tá các sự kiện được hỗ trợ bởi hàng trăm các
server controls.
Sử dụng mẫu Page Controller. Xem thêm ở mục Page Controller trên MSDN
Mô hình này sử dụng view state hoặc server-based form, nhờ đó sẽ giúp cho việc
quản lý trạng thái các trang web dễ dàng.
Nó rất phù hợp với các nhóm lập trình viên quy mô nhỏ và các thiết kế, những
người muốn tận dụng các thành phần giúp xây dựng ứng dụng một cách nhanh
chóng.
Nói tóm lại, áp dụng Web Forms giúp giảm bớt sự phức tạp trong xây dựng ứng
dụng, bởi vì các thành phần (lớp Page, controls,…) được tích hợp chặc chẽ và
thường thì giúp bạn viết ít code hơn là áp dụng theo mô hình MVC.
HỌC VIÊN: Trần Văn Hanh 9
GS.TSKH HOÀNG KIẾM
3. So sánh mô hình MVC với mô hình 3 lớp
Hình 2: Mô hình MVC
3.1 Điểm giống
Tách rời programming core/business logic ra khỏi những phụ thuộc về tài nguyên
và môi trường.
Presentation Layer (PL) thể hiện giống như chức năng của View và Controller.
Business Layer (BL) và Data Access Layer (DL) thể hiện giống như chức năng
HỌC VIÊN: Trần Văn Hanh 10

GS.TSKH HOÀNG KIẾM
của Model. Như thế nhìn ở góc độ này, thì MVC tương đương với 3-layer (tất
nhiên có chồng chéo như hình vẽ)
3.2 Điểm khác
Trong mô hình 3 lớp, quá trình đi theo chiều dọc, bắt đầu từ PL, sang BL, rồi tới
DL, và từ DL, chạy ngược lại BL rồi quay ra lại PL.
Hình 3: Mô hình 3 lớp
Còn trong mô hình MCD, dữ liệu được nhận bởi View, View sẽ chuyển cho
Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được đưa lại cho
View mà không thông qua Controller, do vậy luồng xử lý này có hình tam giác.
HỌC VIÊN: Trần Văn Hanh 11
GS.TSKH HOÀNG KIẾM
4. MVC làm việc như thế nào
Nhìn lại sơ đồ phía trên, ta thấy có mũi tên nét liền và những mũi tên nét đứt.
Những mũi tên nét đứt được hình thành trên quan điểm của người dùng mà không
phải là của những nhà thiết kế phần mềm thực sự. Do đó chúng ta chỉ quan tâm
đến những mũi tên còn lại.
Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:
- User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi.
- Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model.
- Model nhận thông tin và thực thi các yêu cầu.
- Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại
cho người dùng.
HỌC VIÊN: Trần Văn Hanh 12
GS.TSKH HOÀNG KIẾM
5. Sự khác biệt giữa MVC và WebForm
c

HỌC VIÊN: Trần Văn Hanh 13
GS.TSKH HOÀNG KIẾM


- ASP.net WebForm sử dụng ViewState để quản lý, các trang ASP.net đều có
lifecycle, postback và dùng các web controls, các event để thực hiện các hành
động cho UI (User Interface) khi có sự tương tác với người dùng nên hầu hết
ASP.net WebForm xử lý chậm.
- ASP.net MVC chia ra làm 3 phần: Models, View, Controller. Mọi tương tác
của người dùng với Views sẽ được thực hiện hành động trong Controllers,
không còn postback, lifecycel và events.
- Việc kiểm tra (test), gỡ lỗi (debug) với ASP.net WebForm đều phải chạy tất cả
các tiến trình của ASP.net, và sự thay đổi ID của bất kỳ Controls nào cũng ảnh
hưởng đến ứng dụng. Đối với MVC thì việc đó có thể sử dụng các unit test có
thể thẩm định rất dễ dàng các Controllers thực hiện như thế nào.
- Sau đây là bảng so sánh các tính năng của ASP.net WebForm với ASP.net
MVC
Các tính năng ASP.net WebForm ASP.net MVC
Kiến trúc
chương trình
Kiến trúc mô hình
WebForm –> Bussiness –>
Database
Kiến trúc sử dụng việc
phân chia chương trình
thành: Models, Views,
Controllers
Cú pháp
chương trình
Sử dụng cú pháp của
WebForm, tất cả các sự
kiện và controls do server
quản lý

Các sự kiện được điều
khiển bởi controllers, các
controls không do server
quản lý.
HỌC VIÊN: Trần Văn Hanh 14
GS.TSKH HOÀNG KIẾM
Truy cập dữ
liệu
Sử dụng hầu hết các công
nghệ truy cập dữ liệu trong
ứng dụng
Phần lớn dùng LINQ và
SQL class để tạo mô hình
truy cập đối tượng.
Debug
Debug phải thực hiện tất cả
bao gồm các lớp truy cập dữ
liệu, sự hiển thị, điều khiển
các controls.
Debug có thể sử dụng các
unit test để kiểm tra các
phương thức trong
controllers.
Tốc độ phân
tải
Tốc độ phân tải chậm khi
trong trang có quá nhiều các
controls vì ViewState quá
lớn
Phân tải nhanh hơn do

không phải quản lý
ViewState để quản lý các
controls trong trang.
Tương tác với
JavaScript
Tương tác với JavaScript
khó khăn vì các controls
được điều khiển bởi server
Tương tác với JavaScript
dễ dàng vì các đối tượng
không do server quản lý
điều khiển không khó
URL address
Cấu trúc địa chỉ URL có
dạng:
<filename>.aspx?&<các
tham số>
Cấu trúc địa chỉ rành mạch
theo dạng
Controllers/Action/ID
HỌC VIÊN: Trần Văn Hanh 15
GS.TSKH HOÀNG KIẾM
PHẦN II: CÁC NGUYÊN TẮC SÁNG TẠO
1. Phân chia
- Chia vật thể thành những phần độc lập
- Tạo một vật thể lắp ghép
- Tăng mức độ phân chia của vật thể
2. Trích đoạn
- Trích (bỏ hoặc tách) phần hoặc tính chất « nhiễu loạn » ra khỏi vật thể hoặc,
- Trích phần hoặc tính chất cần thiết

3. Đặc tính định xứ
- Chuyển cấu trúc (của vật thể hoặc môi trường/tác động bên ngoài) từ đồng nhất
sang không đồng nhất.
- Những bộ phận khác nhau thực hiện những chức năng khác nhau.
- Đặt mỗi bộ phận của vật thể dưới các điều kiện hoạt động tối ưu.
4. Bất đối xứng
- Thay một hình đối xứng thành một hình không đối xứng.
- Nếu vật thể đã bất đối xứng rồi thì tăng độ bất đối xứng.
5. Kết hợp
- Kết hợp về không gian những vật thể đồng nhất hoặc những vật thể dành cho
những thao tác kề nhau.
- Kết hợp về thời gian những thao tác đồng nhất hoặc kề nhau.
6. Tổng hợp
- Vật thể hoạt động đa chức năng loại bỏ một số vật thể khác
7. Xếp lồng
- Để một vật thể trong lòng một vật thể khác, vật thể khác này lại để trong lòng
một vật thể thứ ba
- Để một vật thể trong lòng một vật thể khác, vật thể khác này lại để trong lòng
một vật thể thứ ba
- Chuyển một vật thể thông qua một khoảng trống của một vật thể khác
8. Đối trọng
HỌC VIÊN: Trần Văn Hanh 16
GS.TSKH HOÀNG KIẾM
- Bù trừ trọng lượng của vật thể bằng cách nối với một vật thể khác mà có một
lực đẩy
- Bù trừ trọng lượng của vật thể bằng tương tác với môi trường cung cấp khí
hoặc thủy động lực
9. Phản hoạt động trước tiên
- Thực hiện phản hoạt động trước tiên
- Nếu vật thể chịu áp lực thì cung cấp cung cấp một phản áp lực trước đó

10. Hoạt động trước tiên
- Trước tiên thực hiện tất cả hoặc một phần hoạt động
- Sắp xếp các vật thể sao cho chúng có thể đi vào hoạt động trong một khoảng
thời gian hợp lí và từ một vị trí thích hợp
11. Đề phòng
- Bù trừ cho tính không tin cậy của vật thể bằng biện pháp trả đũa trước tiên
12. Đẳng thế
- Thay đổi điều kiện làm việc sao cho không phải nâng lên hoặc hạ xuống
13. Đảo ngược
- Thay cho một hành động điều khiển bởi các chi tiết kĩ thuật của bài toán, áp
dụng một hành động ngược lại
- Làm cho phần chuyển động của vật thể hoặt môi trường bên ngoài của vật thể
trở nên bất động và những phần bất động trở thành chuyển động
- Lật úp vật thể
14. Làm tròn
- Thay những vật thể thẳng hoặc bề mặt bằng phẳng thành những mặt cong ;
thay thể hình lập phương thành hình cầu.
- Sử dụng con lăn, vật hình xoắn ốc.
- Thay thế chuyển động thẳng bằng chuyển động quay ; tận dụng lực li tâm.
15. Năng động
- Tạo một vật thể hoặc môi trường của nó tự động điều chỉnh tới chế độ tối ưu
tại mỗi trạng thái hoạt động
- Chia vật thể thành những phần nhỏ mà có thể thay đổi vị trí tương đối với nhau
- Nếu vật thể bất động thì làm cho nó chuyển động và có thể trao đổi được
16. Hành động một phần hoặc quá mức
- Nếu khó có thể đạt 100% hiệu quả mong muốn thì cố đạt đến cái đơn giản nhất
HỌC VIÊN: Trần Văn Hanh 17
GS.TSKH HOÀNG KIẾM
17. Chuyển động tới một chiều mới
- Loại bỏ các bài toán bằng cách dịch chuyển một vật thể trong một chuyển động

hai chiều (tức là dọc theo mặt phẳng)
- Dùng tổ hợp chồng chập đa lớp thay cho đơn lớp
- Làm nghiêng vật thể hoặc quay nó lên cạnh của nó
18. Rung động cơ học
- Đặt vật thể vào thế rung động
- Nếu đã rung động rồi thì tăng tần số, thậm chí đến tận tần số sóng siêu âm
- Sử dụng tần số cộng hưởng
- Thay áp rung cho rung cơ học
- Dùng rung động siêu âm với từ trường
19. Hành động tuần hoàn
- Thay một hành động liên tục thành một hành động tuần hoàn (xung)
- Nếu một hành động đã tuần hoàn rồi thì thay đổi tần số
- Sử dụng xung giữa các xung lực để cung cấp hành động bổ xung
20. Liên tục hóa hành động hiệu quả
- Thực hiện một hành động liên tục (không nghỉ) trong đó tất cả các phần của
vật thể hoạt động hết công suất
- Loại bỏ các hành động không hiệu quả và trung gian
21. Dồn đột ngột
- Thực hành các thao tác có hại hoặc mạo hiểm với tốc độ thật nhanh
22. Chuyển thiệt thành lợi
- Sử dụng những yếu tố có hại hoặc các tác động môi trường để thu những hiệu
quả tích cực
- Loại bỏ những yếu tố có hại bằng việc kết hợp nó với một yếu tố có hại khác
- Tăng tác động có hại đến khi nó tự triệt tiêu tính có hại của nó
23. Thông tin phản hồi
- Mở đầu thông tin phản hồi
- Nếu đã có thông tin phản hồi thì đảo ngược nó
24. Môi giới
- Dùng một vật thể trung gian để truyền hay thực hiện một hành động
- Tạm thời nối một vật thể với một vật thể khác mà nó dễ dàng được tháo bỏ đi

25. Tự phục vụ
HỌC VIÊN: Trần Văn Hanh 18
GS.TSKH HOÀNG KIẾM
- Làm cho vật thể tự phục vụ và thực hiện những thao tác bổ sung và sửa chữa
- Tận dụng vật liệu và năng lượng bỏ đi
26. Sao chụp
- Dùng một bản sao đơn giản và rẻ tiền thay cho một vật thể phức tạp, đắt tiền,
dễ vỡ hay bất tiện
- Thay thế một vật thể bằng bản sao hoặc hình ảnh của nó, có thể dùng thước để
tăng hoặc giảm kích thước
- Nếu các bản sao quang học đã được dùng, thay chúng bằng những bản sao
hồng ngoại hoặc tử ngoại
27. Vật thể rẻ tiền, tuổi thọ ngắn thay cho vật thể đắt tiền, tuổi thọ dài
- Thay một vật thể đắt tiền bằng nhiều những vật thể rẻ tiền có ít ưu điểm hơn
(ví dụ tuổi thọ kém đi)
28. Thay thế hệ cơ học
- Thay thế hệ cơ học bằng hệ quang, âm hoặc khứu giác (mùi)
- Dùng điện, từ, điện từ trường để tương tác với vật thể
- Thay thế các trường
29. Xây dựng khí, thủy lực học
- Thay thế các phần cứng rắn của vật thể bằng khí hoặc chất lỏng. Các phần này
có thể dùng không khí hoặc nước để phồng lên, hoặc dùng đệm hơi hay đệm
thủy tĩnh
30. Màng linh động hoặc màng mỏng
- Thay cấu trúc truyền thống bằng cấu trúc làm từ màng linh động hoặc màng
mỏng
- Cô lập vật thể ra khỏi môi trường xung quanh bằng cách sử dụng màng linh
động hoặc màng mỏng
HỌC VIÊN: Trần Văn Hanh 19
GS.TSKH HOÀNG KIẾM

31. Dùng vật liệu xốp
- Dùng vật thể xốp hoặc các yếu tố xốp (chèn, phủ, …)
- Nếu một vật thể đã xốp thì làm đầy các lỗ chân lông trước bằng một vài chất
liệu
32. Đổi màu
- Đổi màu của vật thể hoặc những thứ quanh nó
- Đổi độ trong suốt của vật thể hoặc quá trình mà khó có quan sát
- Dùng bổ sung màu để quan sát các vật thể hoặc quá trình khó quan sát
- Nếu đã dùng bổ sung màu thì dùng các yếu tố khác để theo dõi
33. Tính đồng nhất
- Làm các vật thể tương tác với vật thể đầu tiên bằng cùng loại vật liệu hoặc vật
liệu rất gần với vật thể đầu tiên đó
34. Những phần loại bỏ và tái sinh
- Một yếu tố của vật thể sau khi hoàn thành chức năng hoặc trở nên vô dụng thì
hãy loại bỏ hoặc thay đổi nó (vứt bỏ, phân hủy, làm bay hơi, …)
- Loại bỏ ngay lập tức những phần của vật thể không còn tác dụng
35. Chuyển pha lí hóa của vật thể
- Thay đổi trạng thái kết tập, phân bố mật độ, độ linh động, nhiệt độ của vật thể
36. Chuyển pha
- Ứng dụng các hiệu ứng trong quá trình chuyển pha của vật liệu. Ví dụ trong
khi thay đổi thể tích, bậc tự do hay hấp thụ nhiệt
37. Giãn nở nhiệt
- Dùng vật liệu có thể co giãn theo nhiệt độ
- Sử dụng các vật liệu khác nhau với các hệ số giãn nở nhiệt khác nhau
38. Sử dụng chất ô xi hóa mạnh
- Thay không khí thường bằng môi trường nhiều không khí
- Thay môi trường giàu không khí bằng ô xi
- Xử lí vật thể trong môi trường giàu không khí hoặc ô xi bằng phóng xạ ion hóa
- Sử dụng ô xi ion hóa
39. Môi trường khí trơ

- Thay môi trường thường bằng môi trường khí trơ
- Thực hiện quá trình trong chân không
40. Vật liệu composite
- Thay vật liệu đồng nhất bằng vật liệu composite
HỌC VIÊN: Trần Văn Hanh 20
GS.TSKH HOÀNG KIẾM
PHẦN III: Những nguyên lý đã được áp dụng trong mô hình MVC
1. Nguyên tắc lấy ra bỏ đi, rút bớt
- Mô hình MVC đã loại bỏ đi post-back từ giao diện gửi đến Server mà chỉ đưa
ra post-back từ giao diện đó đến thẳng ứng dụng.
- Không còn tồn tại khái niệm lifecycle, viewstate trong mô hình MVC, dễ dàng
cho lập trình viên hơn.
2. Nguyên tắc kết hợp
- Kết hợp lại các thành phần của phần mềm có cùng chức năng nghiệp vụ vào
cùng 1 lớp, để dễ dàng quản lý, chỉnh sửa, phát triển. Và có tính bảo mật cao
hơn.
- Trong View chứa tất cả các thông tin cho người dùng của ứng dụng. Giữ
nhiệm vụ nhận thông tin đầu vào và xuất thông tin đầu ra.
- Tất cả các thành phần trong Controller có nhiệm vụ nhận các yêu cầu từ phía
máy khách.
- Tất cả các thành phần trong Model được giao nhiệm vụ cung cấp cho cơ sở dữ
liệu và lưu trữ giữ liệu vào các kho dữ liệu.
3. Nguyên tắc phân đoạn
HỌC VIÊN: Trần Văn Hanh 21
GS.TSKH HOÀNG KIẾM
- Theo như cách viết Web theo mô hình cổ điển thì ta sẽ viết một mạch từ đầu
đến cuối, bằng cách viết này rất khó cho việc bảo trì và phát triển. Không phù
hợp với nhu cầu làm việc nhóm của hiện tại.
- Trong khi sử dụng mô hình MVC 1 trang Web được chia nhỏ ra làm nhiều
phần, mỗi người viết một phần nhỏ, dễ bảo trì và phát triển.

- Tạo điều kiện thuận lợi cho việc làm việc nhóm, khi thay đổi đội dữ án cũng dễ
sửa lỗi hơn.
4. Nguyên tắc chất lượng nội
- Mỗi nhóm viết thật tốt phần của mình, thì sau khi kết hợp lại sẽ tạo thành 1 dự
án có chất lượng.
- Nhóm viết Model thực hiện các thao tác liên quan đến cơ sở dữ liệu, nhóm viết
View thì thiết kế thật tốt tạo giao diện trực quan đối với người dùng, nhóm viết
Controller thì thực hiện tốt các thao tác nghiệp vụ và điều hướng hiển thị của
View.
5. Nguyên tắc loại bỏ và tái sử dụng
- Loại bỏ những phần riêng, phần chi tiết trong mô hình MVC, chỉ giữ lại những
bộ khung Frammework trong mô hình nhằm mục đích tái sử dụng.
- Nhờ nguyên tắc này mà lập trình viên chỉ cần viết bộ khung thật tốt 1 lần duy
nhất sau đó sử dụng bộ khung này để viết cho những trang web khác.
- Nhờ áp dụng nguyên tác sáng tạo này mà viết 1 trang web trở lên dễ dàng hơn,
hiệu xuất làm việc cao hơn. Khi 1 bộ khung áp dụng được cho tất cả các trang
web.
6. Nguyên tắc sử dụng trung gian
- Đối với mô hình MVC chúng ta có thể sử dụng các thư viện trung gian, đã
được viết sẵn, để phục vụ cho nhu cầu lập trình, thay vì chúng ta phải tự viết,
rất mất thời gian mà hiệu quả công việc đôi khi lại không cao.
7. Nguyên tắc vạn năng
- Sử dụng mô hình MVC lập trình viên có thể tạo ra rất nhiều sản phẩm có ích,
có thể tạo ra những trang web có khả năng thay thế cho phần mềm cũng loại
mà lại rất mềm dẻo, có thể truy cập từ mọi nơi, chỉ cần có 1 máy tính kết nối
internet và một trình duyệt. Thay vì phải cài đặt nhiều phần mềm hỗ trợ khi sử
dụng phần mềm.
HỌC VIÊN: Trần Văn Hanh 22
GS.TSKH HOÀNG KIẾM
- Chính vì sử dụng mô hình MVC nên trong tương lai hô mình MVC sẽ rất phổ

biến và có khả năng thay thế cho phần mềm.
TÀI LIỆU THAM KHẢO
1. Giáo trình của GS TSKH Hoàng Kiếm.
2. GS-PTS Phan Dũng - TRUNG TÂM SÁNG TẠO KHOA HỌC KỸ
THUẬT (TSK).
3. />4. Tài liệu ASP.NET MVC 4 in Action.
5. Tài liệu Professtional ASP.NET MVC 4.
HỌC VIÊN: Trần Văn Hanh 23

×