Tính năng tạo gian hàng
Tạo gian hàng và cho phép người dùng tạo ra “tổ ấm” của riêng mình trên web
là một yêu cầu xã hội. Hiện tại rất nhiều web cho phép người dùng làm điều này,
như vatgia.com hay chodientu.vn. Vì vậy, mã nguồn Nukeviet sẽ có tính năng
cho phép người dùng tạo gian hàng trên web. Những gian hàng ấn tượng, có lượt
truy cập cao sẽ được đưa lên TOP nhằm thu hút sự cố gắn cập nhật thông tin của
thành viên. Ngoài ra, gian hàng có thể cho phép người dùng mua bán sản phẩm
của mình ngay trên chính web được làm từ nukeviet, mỗi user có b ảng quản trị
tài khoản, sản phẩm, tin tức, gian hàng riêng của họ.
38 trang |
Chia sẻ: lylyngoc | Lượt xem: 2908 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Các nguyên lý sáng tạo & vận dụng vào web PORTA CMS NUKEVIET, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
xây
dựng được tác phong, suy nghĩ và làm việc một cách khoa học, sáng tạo; góp
phần xây dựng tư duy biện chứng. Dưới đây xin được lần lượt điểm qua 40
nguyên tắc đó:
1. Nguyên tắc phân nhỏ
Chia đối tượng thành các phần độc lập.
Làm đối tượng trở nên tháo lắp được.
Tăng mức độ phân nhỏ đối tượng.
2. Nguyên tắc “tách khỏi”
Tách phần gây “phiền phức hay ngược lại tách phần duy nhất “cần thiết”
ra khỏi đối tượng.
3. Nguyên tắc phẩm chất cục bộ
Chuyển đối tượng (hay môi trường bên ngoài, tác động bên ngoài) có cấu
trúc đồng nhất thành không đồng nhất.
Các phần khác nhau của đối tượng phải có các chức năng khác nhau.
Mỗi phần của đối tượng phải ở trong những điều kiện thích hợp nhất đối
với công việc.
4. Nguyên tắc phản đối xứng
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 5
Chuyển đối tượng có hình dạng đối xứng thàng không đối xứng (nói
chung giảm bậc đối xứng).
5. Nguyên tắc kết hợp
Kết hợp các đối tượng đồng nhất hoặc các đối tượng dùng cho các hoạt
động kế cận.
Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận.
6. Nguyên tắc vạn năng
Đối tượng thực hiện một số chức năng khác nhau, do đó không cần sự
tham gia của các đối tượng khác.
7. Nguyên tắc “chứa trong”
Môt đối tượng được đặt bên trong đối tượng khác và bản thân no1 lại chứa
đối tượng thứ ba…
Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác.
8. Nguyên tắc phản trọng lượng
Bù trừ trọng lượng của đối tượng bằng cách gắn nó với các đối tượng
khác, có lực nâng.
Bù trừ trọng lượng của đối tượng bằng cách tương tác với môi trường như
sử dụng các lực thủy động, khí động …
9. Nguyên tắc gây ứng suất sơ bộ
Gây ứng suất trước đối với đối tượng để chống lại ứng suất không cho
phép hoặc không mong muốn khi đối tượng làm việc (hoặc gây ứng súât
trước để khi làm việc sẽ dùng ứng súât ngược lại).
10. Nguyên tắc thực hiện sơ bộ
Thực hiên trước sự thay đổi cần có, hoàn toàn hoặc từng phần, đối với đối
tượng.
Cần sắp xếp đối tượng trước, sao cho chúng có thể hoạt động từ vị trí
thuận lợi nhất, không mất thời gian dịch chuyển.
11. Nguyên tắc dự phòng
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 6
Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị trước các
phương tiện báo động, ứng cứu, an toàn.
12. Nguyên tắc đẳng thế
Thay đổi điều kiện làm việc để không phải nâng lên hay hạ xuống các đối
tượng.
13. Nguyên tắc đảo ngược
Thay vì hành động như yêu cầu bài toán, hành động ngược lại (ví dụ :
không làm nóng mà làm lạnh đối tượng).
Làm phần chuyển động của đối tượng (hay môi trường bên ngoài) thành
đứng yên và ngược lại phần đứng yên thành chuyển động.
14. Nguyên tắc cầu (tròn) hoá
Chuyển những phần thẳng của đối tượng thành cong, mặt phẳng thành mặt
cầu, kết cấu hình hộp thành kết cấu hình cầu.
Sử dụng các con lăn, viên bi, vòng xoắn.
Chuyển sang chuyển động quay, sử dụng lực ly tâm.
15. Nguyên tắc linh động
Cần thay đổi các đặc trưng của đối tượng hay môi trường bên ngoài sao
cho chúng tối ưu trong từng giai đoạn làm việc.
Phân chia đối tượng thành từng phần, có khả năng dịch chuyển với nhau.
16. Nguyên tắc giải “thiếu” hoặc “thừa”
Nếu như khó nhận được 100% hiệu quả cần thiết, nên nhận ít hơn hoặc
nhiều hơn “một chút”. Lúc đó bài toán có thể trở nên đơn giản hơn và dễ
giải hơn.
17. Nguyên tắc chuyển sang chiều khác
Những khó khăn do chuyển động (hay sắp xếp) đối tượng theo đường
(một chiều) sẽ được khắc phục nếu cho đối tượng khả năng di chuyển trên
mặt phẳng (hai chiều), tương tự những bài toán liên quan đến chuyển động
(hay sắp xếp) các đối tượng trên mặt phẳng sẽ được đơn giản hóa khi
chuyển sang không gian (ba chiều).
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 7
Chuyển các đối tượng có kết cấu một tầng thành nhiều tầng.
Đặt đối tượng nằm nghiêng.
Sử dụng mặt sau của diện tích cho trước.
Sử dụng các luồng ánh sáng tới diện tích bên cạnh hoặc tới mặt sau của
diện tích cho trước.
18. Nguyên tắc sử dụng các dao động cơ học
Làm đối tượng dao động.
Nếu đã có dao động, tăng tần số dao động.
Sử dụng tần số cộng hưởng.
Thay vì dùng các bộ rung cơ học. dùng các bộ rung áp điện.
Sử dụng siêu âm kết hợp với trường điện từ.
19. Nguyên tắc tác động theo chu kỳ
Chuyển tác động liên tục thành tác động theo chu kỳ (xung).
Nếu đã có tác động theo chu ký, hãy thay đổi chu kỳ.
Sử dụng các khoảng thời gian giữa các xung để thực hiên tác động khác.
20. Nguyên tắc liên tục tác động có ích
Thực hiên công viêc một cách liên tục (tất cả các phần của đối tượnng cần
luôn luôn làm việc ở chế độ đủ tải).
Khắc phục vận hành không tải và trung gian.
Chuyển chuyển động tịnh tiến qua lại thành chuyển động quay.
21. Nguyên tắc “vượt nhanh”
Vượt qua các giai đoạn có hại hoặc nguy hiểm với vận tốc lớn.
Vượt nhanh để có được hiệu ứng cần thiết.
22. Nguyên tắc biến hại thành lợi
Sử dụng những tác nhân có hại (ví dụ tác động có hại của môi trường) để
thu được hiệu ứng có lợi.
Khắc phục tác nhân có hại bằng cách kết hợp nó với tác nhân có hại khác.
Tăng cường tác nhân có hại đến mức nó không còn có hại nữa.
23. Nguyên tắc quan hệ phản hồi
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 8
Thiết lập quan hệ phản hồi.
Nếu đã có quan hệ phản hồi, hãy thay đổi nó.
24. Nguyên tắc sử dụng trung gian
Sử dụng đối tượng trung gian, chuyển tiếp.
25. Nguyên tắc tự phục vụ
Đối tượng phải tự phục vụ bằng cách thực hiện các thao tác phụ trợ, sửa
chữa.
Sử dụng phế liệu, chất thải, năng lương dư.
26. Nguyên tắc sao chép (copy)
Thay vì sử dụng những cái không được phép, phức tạp, đắt tiền, không
tiện lợi hoặc dễ vỡ, sử dụng bản sao.
Thay thế đối tượng hay hệ các đối tượng bằng bản sao quang học(ảnh,
hình vẽ với các tỷ lệ cần thiết.
Nếu không thể sử dụng bản sao quang học ở vùng biểu kiến (vùng ánh
sáng nhìn thấy được bằng mắt thường), chuyển sang sử dụng các bản sao
hồng ngoại hoặc tử ngoại.
27. Nguyên tắc “rẻ” thay cho “đắt”
Thay đối tượng đắt tiền bằng bộ các đối tượng rẻ có chất lượng kém hơn
(ví dụ như tuổi thọ).
28. Thay thế sơ đồ cơ học
Thay thế sơ đồ cơ học bằng điện, quang, nhiệt, âm hoặc mùi vị.
Sử dụng diện trường, từ trừơng và điện từ trường trong tương tác với đối
tượng.
Chuyển các trường đứng yên sang chuyển động, các trường cố định sang
thay đổi theo thời gian, các trường đồng nhất sang có cấu trúc nhất định.
Sử dụng các trường kết hợp với các hạt sắt từ.
29. Sử dụng các kết cấu khí và lỏng
Thay cho các phần của đối tượng ở thể rắn, sử dụng các chất khí và lỏng;
nạp khí, nạp chất lỏng, đệm không khí, thủy tĩnh, thủy phản lực.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 9
30. Sử dụng vỏ dẽo và màng mỏng
Sử dụng các vỏ dẽo và mành mỏng thay cho các kết cấu khối.
Cách ly đối tượng với môi trường bên ngoài bằng các vỏ dẽo và màng
mỏng.
31. Sử dụng các vật liệu nhiều lỗ
Làm đối tượng có nhiều lỗ hoặc sử dụng thêm những chi tiết nhiều lỗ
(miếng đệm, tấm phủ,…).
Nếu đối tượng đã có nhiều lỗ, sơ bộ tẩm nó bằng chất nào đó.
32. Nguyên tắc thay đổi màu sắc
Thay đổi màu sắc của đối tượng hay môi trường bên ngoài.
Thay đổi độ trong suốt của đối tượng hay mội trường bên ngoài.
Để có thể quan sát được những đối tượng hoặc những quá trình, sử dụng
các chất phụ gia màu, huỳnh quang.
Nếu các chất phụ gia đó đã được sử dụng, dùng các nguyên tử đánh dấu.
Sử dụng các hình vẽ, ký hiệu thích hợp.
33. Nguyên tắc đồng nhất
Những đối tượng tương tác với đối tượng cho trước, phải được làm từ
cùng một vật liệu (hoặc từ vật liệu gần về các tính chất) với vật liệu chế
tậo đối tượng cho trước.
34. Nguyên tắc phân hủy hoặc tái sinh các phần
Phần đối tượng đã hoàn thành nhiêm vụ hoặc trở nên không cần thiết phải
tự phân hủy (hòa tan, bay hơi,…) hoặc phải biến dạng.
Các phần mất mát của đối tượng phải được phục hối trực tiếp trong quá
trình làm việc.
35. Thay đổi các thông số hoá lý của đối tượng
Thay đổi trạng thái đối tượng.
Thay đổi nồng độ hay độ đậm đặc.
Thay đổi dộ dẻo.
Thay đổi nhiệt độ, thể tích.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 10
36. Sử dụng chuyển pha
Sử dụng các hiện tượng nảy sinh, trong các quá trình chuyển pha như thay
đổi thể tích, tỏa hay hấp thu nhiệt lượng …
37. Sử dụng sự nở nhiệt
Sử dụng sự nở (hay co) nhiệt của các vật liệu.
Nếu đã dùng sự nở nhiệt, sử dụng với vật liệu có các hệ số nở nhiệt khác
nhau.
38. Sử dụng các chất ôxy hóa mạnh
Thay không khí thường bằng không khí giàu ôxy.
Thay không khí giàu ôxy bằng chính ôxy.
Dùng các bức xạ iôn hóa tác động lên không khí hoặc ôxy.
Thay ôxy giàu iôn (hoặc ôxy bị iôn hóa) bằng chính ôxy.
39. Thay đổi độ trơ
Thay môi trường thông thường bằng môi trường trung hòa.
Đưa thêm vào đối tượng các phần, các chất, phụ gia trung hòa.
Thực hiện quá trình trong chân không.
40. Sử dụng các vật liệu hợp thành (composite)
Chuyển từ các vật liệu đồng nhất sang sử dụng những vật liệu hợp thành
(composite), Hay nói chung sử dụng các loại vật liệu mới.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 11
2. CÁC NGUYÊN LÝ SÁNG TẠO TRONG TIN
HỌC
2.1. Theo phương pháp trực tiếp
Phương pháp trực tiếp xác định trực tiếp được lời giải qua một thủ tục tính
toán như công thức, hệ thức, định luật …vv… hoặc qua các bước căn bản để có
được lời giải. Đối với phương pháp này, việc giải quyết vấn đề trên máy tính chỉ
là thao tác lập trình hay là sự chuyển đổi lời giải từ ngôn ngữ bên ngoài sang
các ngôn ngữ được sử dụng trong máy tính. Tìm hiểu về phương pháp này chính
là tìm hiểu về kỹ thuật lập trình trên máy tính.
Để thực hiện tốt phương pháp trực tiếp, chúng ta cần áp dụng các nguyên lý
sau:
Nguyên lý 1
Chuyển đổi dữ liệu bài toán thành dữ liệu của chương trình, điều này có nghĩa
là “Dữ liệu của bài toán sẽ được biểu diễn lại dưới dạng các biến của chương
trình thông qua các quy tắc xác định của ngôn ngữ lập trình cụ thể”.
Nguyên lý 2
Chuyển đổi quá trình tính toán của bài toán thành các cấu trúc của chương
trình, điều này có nghĩa là “Mọi quá trình tính toán đều có thể mô tả và thực hiện
dựa trên ba cấu trúc cơ bản: Cấu trúc tuần tự, cấu trúc rẽ nhánh và cấu trúc lặp”.
Nguyên lý 3
Biểu diễn các tính toán chính xác, điều này có nghĩa là “Chương trình tính
toán theo các biểu thức chính xác không đồng nhất với quá trình tính toán chính
xác về mặt hình thức”.
Nguyên lý 4
Biểu diễn các tính toán gần đúng bằng cấu trúc lặp, có nghĩa là “Mọi quá trình
tính toán gần đúng đều dựa trên các cấu trúc lặp với tham số xác định ”.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 12
Nguyên lý 5
Phân chia bài toán ban đầu thành những bài toán nhỏ hơn, có nghĩa là “Mọi
vấn đề - bài toán đều có thể giải quyết bằng cách phân chia thành những vấn đề -
bài toán nhỏ hơn ”. Đây là nguyên tắc khá quan trọng.
Nguyên lý 6
Biểu diễn các tính toán không tường minh bằng đệ quy, điều này có nghĩa là
“Quá trình đệ quy trong máy tính không đơn giản như các biểu thức quy nạp
trong toán học”. Kỹ thuật đệ quy được sử dụng khá nhiều trong lập trình phần
mềm.
2.2. Theo phương pháp gián tiếp
Phương pháp gián tiếp được sử dụng khi chưa tìm ra lời giải chính xác của vấn
đề. Đây cũng chính là cách tiếp cận chủ yếu của loài người từ xưa đến nay. Điểm
khác ở đây là chúng ta đưa ra những giải pháp mang đặc trưng của máy tính, dựa
vào sức mạnh tính toán của máy tính. Tất nhiên, một lời giải trực tiếp bao giờ
cũng tốt hơn, nhưng không phải lúc nào cũng có.
Chúng ta có thể áp dụng các phương pháp gián tiếp như sau:
Phương pháp thử – sai
Khi xây dựng lời giải bài toán theo phương pháp thử – sai, người ta thường
dựa vào 3 nguyên lý sau :
Nguyên lý vét cạn: Đây là nguyên lý đơn giản nhất, liệt kê tất cả các
trường hợp có thể xảy ra.
Nguyên lý ngẫu nhiên: Dựa vào việc thử một số khả năng được chọn một
cách ngẫu nhiên. Khả năng tìm ra lời giải đúng phụ thuộc rất nhiều vào
chiến lược chọn ngẫu nhiên.
Nguyên lý mê cung: Nguyên lý này được áp dụng khi chúng ta không thể
biết được chính xác “hình dạng” lời giải mà phải xây dựng dần lời giải
qua từng bước một giống như tìm đường đi trong mê cung.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 13
Để thực hiện tốt phương pháp thử - sai, chúng ta nên áp dụng các nguyên lý
sau:
Nguyên lý vét cạn toàn bộ : Muốn tìm được cây kim trong đống rơm, hãy
lần lượt rút ra từng cọng rơm cho đến khi rút được cây kim
Nguyên lý mắt lưới : Lưới bắt cá chỉ bắt được những con cá có kích
thước lớn hơn kích thước mắt lưới.
Nguyên lý giảm độ phức tạp của thử và sai : Thu hẹp trường hợp trước và
trong khi duyệt, đồng thời đơn giản hóa tối đa điều kiện chấp nhận một
trường hợp.
Nguyên lý thu gọn không gian tìm kiếm : Loại bỏ những trường hợp hoặc
nhóm trường hợp chắc chắn không dẫn đến lời giải.
Nguyên lý đánh giá nhánh cận : Nhánh có chứa quả phải nặng hơn trọng
lượng của quả.
Ưu điểm duy nhất của phương pháp thử sai là không cần phải học mà tự nhiên
ai cũng có. Ngoài ưu điểm đó ra phương pháp này có rất nhiều nhược điểm ảnh
hưởng đến hiệu quả tư duy - giải quyết vấn đề con người. Các nhược điểm chủ
yếu của phương pháp này là:
Số phép thử- sai nhiều nên mất nhiều trí lực, thời gian, vật chất và có thể
là sinh mạng của con người.
Công suất phát ý tưởng (số ý tưởng đưa ra trên một đơn vị thời gian) để
giải quyết vấn đề thấp.
Tuy số phép thử nhiều nhưng không bao quát được hết các phương án có
thể có đối với bài toán cho trước một cách khách quan.
Không có cơ chế định hướng tư duy. Rất cần có phương pháp cho phép
định hướng chính xác con đường đi từ bài toán đến lời giải.
Phương pháp Heuristic
Phương pháp thử – sai có một số nhược điểm, khi giải quyết vấn đề bằng cách
dùng một số lượng phép thử quá lớn, thời gian để có được kết quả có khi khá lâu
không chấp nhận được. Phương pháp Heuristic có đặc điểm là đơn giản và gần
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 14
gủi với cách suy nghĩ của con người, cho ra được những lời giải đúng trong đa số
các trường hợp áp dụng. Các thuật giải Heuristic được xây dựng dựa trên một số
nguyên lý rất đơn giản như “vét cạn thông minh”, “tối ưu cục bộ” (Greedy),
“hướng đích”, “sắp thứ tự”,... Đây là một số thuật giải khá thú vị và có rất nhiều
ứng dụng trong thực tiễn.
Để thực hiện tốt phương pháp Heuristic, chúng ta nên áp dụng các nguyên lý
sau:
Nguyên lý leo núi: Muốn leo lên đến đỉnh thì bước sau phải cao hơn bước
trước.
Nguyên lý chung: Chọn hướng đi triển vọng nhất trong số những hướng đi
đã biết.
Phương pháp trí tuệ nhân tạo
Phương pháp thử – sai và Heuristic nói chung đều dựa trên một điểm cơ bản
là trí thông minh của chính con người để giải bài toán, máy tính chỉ đóng vai trò
thực thi mà thôi. Còn các phương pháp trí tuệ nhân tạo lại dựa trên trí thông minh
của máy tính. Trong những phương pháp này, người ta sẽ đưa vào máy tính trí
thông minh nhân tạo giúp máy tính bắt chước một phần khả năng suy luận như
con người. Từ đó, khi gặp một vấn đề, máy tính sẽ dựa trên những điều nó đã
được “học“ để tự đưa ra phương án giải quyết vấn đề.
Trong lĩnh vực máy học, các hình thức học có thể phân chia như sau :
Học vẹt.
Học bằng cách chỉ dẫn.
Học bằng qui nạp.
Học bằng tương tự.
Học dựa trên giải thích.
Học dựa trên tình huống.
Khám phá hay học không giám sát.
Các kỹ thuật thường được áp dụng trong “máy học” là :
Khai khoáng dữ liệu.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 15
Mạng nơ ron.
Thuật giải di truyền.
Một số ví dụ áp dụng điển hình trong tin học:
Áp dụng nguyên tắc “tách khỏi”:
Chúng ta thấy rằng, các máy tính đầu tiên của thế hệ 8086, 8088 hay thậm chí
80286 và một phần thế hệ 80386 thì các bộ phận CPU, RAM được gắn “chết”
vào bo mạch chính, muốn thay thế rất khó khăn thường là phải thay cả bo mạch
chính, đây chính là thành phần gây “rắc rối” cho sản phẩm. Khi xuất hiện các
máy tính thế hệ sau 80386, 80486 và máy tính ngày nay, các bộ phận CPU, RAM
được tách riêng khỏi bo mạch chính làm cho người dùng rất dễ thay thế hay nâng
cấp khi cần.
Trong các ngôn ngữ lập trình ngày nay, một ngôn ngữ lập trình thường tách ra
các chức năng hay đối tượng riêng biệt như là các đối tượng COM, DCOM giúp
cho người lập trình khi nào cần dùng đối tượng nào thì chỉ cần “chèn” đối tượng
đó vào để sử dụng và thậm chí người lập trình có thể “nâng cấp” đối tượng đó để
có thêm những tính năng mới tốt hơn hay tạo thêm các đối tượng mới.
Áp dụng nguyên tắc kết hợp:
Trong lĩnh vực phần mềm, ngày nay một dự án khó có thể dùng một ngôn ngữ
lập trình thực hiện từ đầu đến cuối mà phải có sự kết hợp nhiều phần với nhau.
Chẳng hạn như một dự án về cơ sở dữ liệu, phần dữ liệu thường được tạo và
quản lý bằng MySQL, SQL Server hay Oracle còn phần giao diện thường được
lập trình bằng một trong các ngôn ngữ Visual Basic, .Net, Delphi hay Visual
C,… thậm chí có thể kết hợp các ngôn ngữ đó trong phần thiết kế giao diện và
các báo cáo thường được thiết kế bởi Crysral Report hay JReport.
Áp dụng nguyên tắc chứa trong:
Trong mã nguồn phần mềm tin học, một chương trình chính chứa nhiều
chương trình con. Trong chương trình con lại chứa những chương trình con khác.
Áp dụng nguyên tắc dự phòng:
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 16
Trong lĩnh vực phần cứng, ngày nay trong CMOS luôn luôn có chức năng
giúp người sử dụng đặt nhiệt độ tối đa cho Cpu, khi nhiệt độ Cpu tới mức đó thì
sẽ báo động. Đây là biện pháp dự phòng tốt.
Ngoài ra, trong hệ điều hành Windows, luôn có chương trình Backup và
Restore dữ liệu, cho phép người dùng “ghost” lại hệ điều hành nếu gặp trường
hợp hư hỏng hệ điều hành. Hiện tại các hệ điều hành như Mac OSX, Android hay
hệ điều hành xài trên iPhone đều cho phép sao lưu và phục hồi dữ liệu.
Áp dụng nguyên tắc sao chép:
Trong lĩnh vực phần cứng và mạng có một số phần mềm giúp người học mạng
chỉ cần một máy tính vẫn có thể thực tập được việc cài đặt và quản trị mạng, đó
là các phần mềm giả lập (simulator) các thiết bị router hay các phần mềm VM
(Virtual Machine) giả lập một máy tính thành nhiều máy tính.
Áp dụng nguyên tắc đảo ngược:
Trong lĩnh vực đồ thị, khi yêu cầu chứng minh hai đồ thị liên thông nhau, ta
thường giả sử ngược lại là hai đồ thị không liên thông và chứng minh điều giả sử
đó không đúng, hoặc ngược lại khi yêu cầu chứng minh hai đồ thị không liên
thông nhau, ta thường giả sử ngược lại là hai đồ thị liên thông nhau và chứng
minh điều giả sử đó không đúng. Đây là cách chứng minh phản chứng, được
dùng rất nhiều trong lĩnh vực toán và tin học.
Áp dụng nguyên tắc vượt nhanh:
Trong máy tính, khi chúng ta khởi động máy, máy sẽ kiểm tra bộ nhớ RAM,
chúng ta muốn vượt qua phần kiểm tra này thì bấm phím “ESC”. Trong các ngôn
ngữ lập trình, cấu trúc rẽ nhánh giúp chương trình vượt nhanh qua các phần
không thỏa điều kiện. Hiện tại trong rất nhiều chương trình luôn có thiết lập các
bộ phím tắt nhằm cho user thao tác nhanh hơn. Nút ESC cũng giúp người dùng
hủy nhiều thao tác nếu đợi quá lâu.
Áp dụng nguyên tắc thay đổi màu sắc:
Nguyên tắc thay đổi màu sắc được áp dụng rất nhiều trong các phần mềm, trên
các giao diện web. Ví dụ như textbox yêu cầu phải nhập thì thường có màu đỏ,
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 17
khi người dùng nhập đúng định dạng của username thì có thông báo màu xanh,
khi người dùng nhập lại mật khẩu nếu trùng với mật khẩu thứ nhất thì sẽ hiển thị
thông báo màu xanh…vv…
Trong các chương trình máy tính khi xuất hiện hộp thông báo thường kèm
theo các biểu tượng giúp người dùng hiểu họ được thông báo với tình trạng gì
(xem hình 2.1).
Hình 2.1. Một mẫu thông báo có biểu tượng màu đỏ giúp người dùng dễ hiểu thông điệp hơn
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 18
3. VẬN DỤNG NGUYÊN LÝ SÁNG TẠO VÀO
WEB PORTA CMS NUKEVIET
3.1. Cơ bản về NukeViet
Giới thiệu
NukeViet là một hệ quản trị nội dung mã nguồn mở, người sử dụng thường
gọi NukeViet là portal vì nó có khả năng tích hợp nhiều ứng dụng trên nền Web.
NukeViet cho phép xây dựng một website động, đa chức năng, hiện đại một cách
nhanh chóng mà không cần phải biết về lập trình. Nói đơn giản, NukeViet giống
như một phần mềm giúp bạn xây dựng và vận hành các trang web của mình một
cách dễ dàng nhất. NukeViet là một phần mềm mã nguồn mở, do đó việc sử dụng
hoàn toàn miễn phí, bạn có thể tải NukeViet về bất cứ lúc nào tại website chính
thức của NukeViet là nukeviet.vn. Bạn có thể cài NukeViet lên hosting để sử
dụng hoặc cũng có thể thử nghiệm bằng cách cài ngay lên máy tính cá nhân (xem
hình 3.1).
Hình 3.1. Hệ thống mã nguồn CMS Nukeviet
NukeViet cho phép xây dựng một website động, đa chức năng, hiện đại một
cách nhanh chóng mà người vận hành nó thậm chí không cần phải biết một tí gì
về lập trình bởi tất cả các tác vụ quản lý phức tạp đều được tự động hóa ở mức
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 19
cao. NukeViet đặc biệt dễ dàng sử dụng vì hoàn toàn bằng tiếng Việt và được
thiết kế phù hợp nhất với thói quen sử dụng mạng của người Việt Nam.
Bằng việc sử dụng các công nghệ web mới nhất hiện nay, thiết kế hệ thống
uyển chuyển và sở hữu những tính năng độc đáo, NukeViet sẽ giúp bạn triển khai
các ứng dụng web từ nhỏ đến lớn một cách nhanh chóng và tiết kiệm: từ các
website cá nhân cho tới các cổng thông tin điện tử; từ các gian hàng trực tuyến
cho tới các mạng xã hội...
Sự phát triển của các phiên bản nuke
Việc “review” lại sự phát triển của các phiên bản Nukeviet sẽ giúp chúng ta
hình dung được người làm ra nó đã áp dụng những nguyên lý sáng tạo nào để
hoàn thiện sản phẩm này.
NukeViet 1.0: Phiên bản thế hệ 1
Phiên bản đầu tiên của NukeViet là phiên bản NukeViet 1.0 (hay NukeViet
1.0.0) có nguồn gốc từ PHP-Nuke 6.5. Các phiên bản tiếp theo có dạng 1.0.x, về
cơ bản chúng chỉ là những bản được vá lỗi do đó thường gọi là NukeViet 1.0
Điểm mạnh của NukeViet 1.0: Có một số lượng rất lớn các thành phần mở
rộng (Module, block); giao diện (theme) được chuyển đổi từ bản dùng cho PHP-
Nuke cũng như được viết mới bởi người sử dụng.
Dòng phiên bản đã đã ngưng hỗ trợ từ năm 2007 nhưng hiện vẫn còn một số ít
các website vẫn sử dụng.
Phiên bản 2.0 beta
Phần nhân của NukeViet 2.0 beta được viết lại rất nhiều. Nếu như NukeViet
1.0 chỉ là bản Việt hóa và cải tiến từ PHP-Nuke thì NukeViet 2.0 beta được viết
mới rất nhiều.
Điểm mạnh của NukeViet 2.0: NukeViet 2.0 có nhiều lớp bảo mật tốt hơn, tối
ưu kết nối vào CSDL, một số tính năng được cải tiến hơn so với NukeViet 1.0
Phiên bản test "hậu" 2.0 beta
Phiên bản được giới thiệu vào tháng 4 năm 2007 nhưng không phát hành: xử
lý hình ảnh trực tuyến, đa ngôn ngữ toàn diện, đa giao diện theo ứng dụng, sử
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 20
dụng Ajax, hướng tới thương mại điện tử, khả năng nhận diện bản nâng cấp hệ
thống, tự động bóc tách dữ liệu từ các nguồn khác nhau, tự động sao lưu CSDL.
Phiên bản chính thức: NukeViet RC
Dòng phiên bản chính thức của NukeViet 2.0 được đánh dấu từ phiên bản
NukeViet 2.0 RC1 phát hành ngày 24/05/2009. Đây là phiên bản nâng cấp đầu
tiên kể từ sau khi bản beta cuối cùng ra mắt. Đây cũng là bản đầu tiên có
hackmod (sửa đổi hệ thống PHPBB) để kết nối với mã nguồn PHPBB3 (trước đó
NukeViet 2.0 beta chỉ tích hợp sẵn PHPBB2).
Đây là phiên bản mà NukeViet mang nhiều tính năng nhất từ trước đến nay.
Với khả năng tùy biến cực cao, khả năng đa giao diện, độ bảo mật và hoàn thiện
cũng hơn hẳn các phiên bản trước. Ngoài việc nâng cấp, sửa lỗi, phiên bản này
còn bổ sung nhiều tính năng và thêm một loạt module như:
Addnews (Gửi bài viết);
AutoTranslate (Dịch tự động);
Contact (Liên hệ, thay cho module Feedback của bản 1.x và 2.beta);
Rss (Kênh tin chia sẻ; RSS được tạo tự động bằng cách thả file rss.php
phù hợp vào thư mục chứa module tương ứng cần xuất RSS);
Sitemap (Sơ đồ site);
Support (Hỗ trợ);
Weblinks (Liên kết website).
Vì những khác biệt về lập trình nên các thành phần mở rộng của NukeViet 1.0
không sử dụng chung với NukeViet 2.0 được. Các thành phần mở rộng của bản
2beta có thể sử dụng chung với bản RC2 nhưng bị hạn chế tính năng.
NukeViet 1.0 và NukeViet 2.0 có cùng cấu trúc 3 lớp, bao gồm:
a. Lớp lõi (nhân hệ thống) là cấu trúc chính để vận hành NukeViet
b. Lớp thành phần mở rộng bao gồm 2 loại:
Module: Một dạng cấu trúc mở rộng của NukeViet cho phép người sử
dụng có thể thêm các tính năng khác nhau cho Website của mình như:
Quản lý trò chơi trực tuyến (module Games), Nghe nhạc trực tuyến
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 21
(module Music, NVMusic ...), Thư viện Web (module Web Links), Dịch
vụ Blog (module Blog), Album ảnh trực tuyến (module Albums, Photos
...), Lưu bút (module Love, Wishing và Guestbook ...), Hệ thống rao vặt,
quảng cáo, tạo RSS (module RSS-News), Quản lý Truyện (module Pages)
...
Block: Một dạng cấu trúc đơn giản giúp thêm các thành phần nhỏ vào
website dưới dạng các khối nhỏ trên Web.
c. Lớp giao diện (Theme) cho phép người lập trình có thể tạo ra các giao diện
khác nhau cho NukeViet. Đây là thành phần quyết định giao diện mà
Website tương tác với người sử dụng
Ưu điểm của Nukeviet 2.0:
Mã nguồn thuần Việt, cộng đồng người dùng Việt Nam đông đảo nên dễ
tìm thấy sự hỗ trợ bằng tiếng Việt.
Quản lý đơn giản, đặc biệt module News rất phù hợp với sở thích người
Việt.
Linh hoạt trong việc quản lý giao diện, dễ tùy biến.
Có thời gian phát triển lâu dài, có nhiều tài liệu hướng dẫn, tạo dựng nền
tảng vững chắc trong cộng đồng.
Mã nguồn đơn giản, dễ dàng lập trình về giao diện.
Nhược điểm của Nukeviet 2.0:
Cho tới bản 2.0 RC, NukeViet còn những nhược điểm sau:
Chưa sử dụng Ajax (cho đến bản NukeViet 2.0 beta 2)
Vẫn sử dụng chuẩn HTML 4.1
Mức độ cài đặt tiện ích (Addons: Block, Modules, Themes) chưa được tự
động hóa cao.
NukeViet 2.0 trở về trước, người dùng cũng nhiều, kẻ chê cũng không ít.
Nhưng nhắc đến nguồn mở có yếu tố của Việt Nam nhất là Web mã nguồn mở,
không thể không nhắc đến NukeViet. Mặc dù là mã nguồn mở miễn phí nhưng
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 22
NukeViet "được" nhiều công ty thiết kế web sửa đổi để bán với giá cao. Nhiều
Website sử dụng NukeViet nhưng không ghi xuất xứ mã nguồn.
NukeViet 3.x
Kể từ phiên bản 3, NukeViet được quản lý theo mô hình chuyên nghiệp của
doanh nghiệp, trong đó đội lập trình chính được trả lương để thực hiện các dự án
và phát triển bộ mã nguồn NukeViet.
Điểm khác biệt về tính năng của Nukeviet 3 với các phiên bản trước nó:
So với phiên bản cũ, NukeViet 3 đã khắc phục hoàn toàn nhược điểm của
các phiên bản cũ trong khi vẫn giữ được các đặc tính vốn được người sử
dụng ưa chuộng. NukeViet 3.0 được cho là một cuộc cách mạng của mã
nguồn mở NukeViet.
Toàn bộ mã nguồn được viết mới hoàn toàn dựa trên các công nghệ mới
nhất gồm PHP5 và MySQL5. Website tạo ra đạt chuẩn xHTML 1.0 và
CSS 2.1.
So với các hệ thống khác, NukeViet 3 xây dựng dựa trên cấu trúc hướng
module. Theo đó, block và theme chỉ là những nhân tố phục vụ cho
module. Module, block, theme được tổ chức phân lập và tách biệt hoàn
toàn khỏi nhau và không ảnh hưởng đến tính toàn vẹn của hệ thống nếu
xảy ra lỗi. Đây là điểm khác biệt rất lớn mà nhờ cách tổ chức này người ta
cho rằng NukeViet an ninh và bảo mật hơn các hệ thống khác cùng loại.
Hệ thống NukeViet được thiết kế rất rõ ràng, mạch lạc, theo đó NukeViet
phân cấu trúc thành 2 tầng, 1 lớp (xem hình 3.2).
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 23
Hình 3.2: Cấu trúc mã nguồn Nukeviet
Tầng nền tảng (Core) hay còn gọi là "nhân hệ thống": Chứa các thư viện và
module vận hành hệ thống. Nếu một trong các thành phần này bị lỗi có thể làm
ảnh hưởng một phần hoặc toàn bộ hệ thống. Tầng này chiếm 10% dung lượng và
dòng code của NukeViet nhưng được sử dụng trong 90% các hoạt động của
website.
Tầng module: bao gồm module admin, module site, các block (kèm theo
module hoặc chạy độc lập), các cronjob...
Lớp giao diện: bao gồm giao diện admin, giao diện module và giao diện
site.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 24
Đặc điểm chính:
Module và giao diện (theme) của NukeViet được gọi chung là các Addons
(thành phần mở rộng). Các thành phần mở rộng này có thể được cài đặt
hoặc gỡ bỏ mà không làm ảnh hưởng đến hệ thống.
Phần quản trị của hệ thống nằm toàn bộ trong thư mục admin của hệ
thống. Nó được bảo vệ bằng nhiều lớp bảo mật khác nhau.
Phần quản trị của module nằm trong thư mục admin của module. Nó được
gọi và tương tác qua phần quản trị của hệ thống nên được hệ thống kiểm
soát và đảm bảo tính an toàn, bảo mật.
Theo nguyên lý thiết kế hướng module, block và theme được bố trí nhằm
phục vụ module do đó hình thành khái niệm block của module và theme
của module. Theo đó tệp tin block của module nằm trong thư mục chứa
module nhưng có thể hiển thị ở các khu vực ngoài site. Nếu block không
thuộc module nào thì nó được đặt trong thư mục includes/blocks của hệ
thống. Tương tự, ngoài theme cho hệ thống còn có theme cho block và
theme cho module (được bố trí trong thư mục theme).
Dữ liệu được người quản trị tương tác từ Admin Control Panel thông qua
trình duyệt, được nhân hệ thống và các module (admin module hoặc
website module) tham gia xử lý, cuối cùng theme sẽ chịu trách nhiệm việc
tổ chức và trình bày thông tin cho người truy cập xem.
3.2. Các nguyên lý sáng tạo được áp dụng trong NukeViet
Nguyên tắc phân nhỏ
Nguyên tắc phân nhỏ là chia đối tượng thành các phần độc lập, tăng mức độ
phân nhỏ đối tượng. Trong Nukeviet, nguyên tắc phân nhỏ được thể hiện rất rõ
trong việc phân chia toàn bộ mã nguồn thành các thành phần tùy theo chức năng
(xem hình 3.3):
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 25
Hình 3.3: Các thành phần cấu thành bộ mã nguồn Nukeviet
Như hình trên, ta thấy rằng Nukeviet được chia thành các phần chính:
Phần Admin Control Panel: dùng để quản trị nội dung web.
Phần Core: Bao gồm các chức năng hỗ trợ, như kết nối cơ sở dữ liệu,
upload file…vv…
Phần module: mỗi module là một chức năng khác nhau, nó bao gồm
module tin tức, module giới thiệu, module bán hàng, module thống kê,
module người dùng (thành viên), module quảng cáo, module album hay
module videos …
Phần block: mỗi module thì có nhiều block, block là một trong những thể
hiện rõ nhất của nguyên tắc phân nhỏ: các block là những khu vực hiển thị
trên web, người dùng có thể tạo block, chỉnh sửa nó và đặt vào bất cứ nơi
nào trên module nhất định.
Phần template: mã nguồn Nukeviet hỗ trợ đa template, mỗi template là
một giao diện khác nhau.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 26
Ngoài ra, ở NukeViet, người lập trình đã áp dụng nguyên tắc phân nhỏ để chia
trang web thành những phần nhỏ hơn ứng với chức năng và vai trò của nó trong
trang web như phần bên để hiển thị quảng cáo, phần hiển thị tin, hiển thị thống
kê, phần giới thiệu, phần album. Cũng tương tự như trang web dành cho người
dùng, bên phía giao diện của web danh riêng cho người quản trị cũng có những
quy tắc phân chia các thành phần riêng biệt theo đúng chức năng của nó.
Phần cấu hình trong quản trị admin cũng được chia thành từng phần riêng,
dành cho từng module riêng biệt hoặc từng chức năng riêng.
Một trang portal được dựng lên từ các portlet. Các portlet được xây dựng như
những module, phần tử hoạt động độc lập, là các đơn vị cơ bản làm nên một Web
Portal. Các module này được xây dựng tuân theo một chuẩn nào đó, như vậy các
module mới có thể tích hợp lại với nhau và giúp cho Portal hoạt động hiệu quả.
Các chuẩn này có thể là các chuẩn nội bộ, nghĩa là chỉ đúng với một loại Portal
cụ thể, nhưng cũng có những chuẩn mở, có thể áp dụng, để xây dựng các module
trên nhiều Portal khác nhau.
Nguyên tắc kết hợp
Nguyên tắc này thường đi chung với nguyên tắc chia nhỏ, kết hợp các đối
tượng đồng nhất hoặc các đối tượng dùng cho các hoạt động kế cận, kết hợp về
mặt thời gian các hoạt động đồng nhất hoặc kế cận, đồng thời chúng ta phải đặt
ra câu hỏi: kết hợp theo kiểu gì?, kết hợp như thế nào?, đến mức nào?, để có
phương pháp thực hiện tốt nhất.
Trong nukeviet, phần dữ liệu được tạo và quản lý bằng My SQL còn phần giao
diện thường được lập trình bằng một trong các ngôn ngữ PHP, phần giao diện
được viết bằng HTML, kết hợp Javascript và CSS. Sau đó người lập trình kết
hợp lại các thành phần này lại để tạo ra bộ mã nguồn CMS.
Trong quá trình lập trình sau khi chia nhỏ các đối tượng ra để tiện cho việc lập
trình và quản lí, người ta sẽ kết hợp các đối tượng đó lại thành một bài toán hoàn
chỉnh. Cũng như khi lập trình ta chia thành các lớp nhỏ, mỗi lớp nhỏ chứa từng
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 27
đối tượng riêng biệt và các sự kiện liên quan tới từng đối tượng đó, và sau đó kết
hợp các lớp với nhau để hoàn thiện chương trình.
Nguyên tắc vạn năng
Một đối tượng có thể thực hiện nhiều chức năng khác nhau. Để tiện cho việc
kết nối cơ sở dữ liệu khi lập trình Nukeviet, người lập trình tạo ra các clas trong
thư mục includes để kết nối với cơ sở dữ liệu, vừa phục vụ cho việc truy xuất dữ
liệu, vừa phục vụ cho việc insert dữ liệu vào cơ sở dữ liệu.
Trong khi đó, phần template ngoài chức năng hiển thị giao diện web, còn có
thể chứa các block được người dùng chèn lên trên nó.
Mã nguồn Nukeviet cũng điển hình cho nguyên tắc vạn năng: người dùng có
thể dùng bộ mã nguồn này cho lĩnh vực giáo dục, cho cá nhân, cho lĩnh vực
thông tin tin tức, cho việc mua bán hàng qua mạng, shop trực tuyến, thậm chí
diễn đàn hay các hệ thống web kinh doanh khác. Với mỗi lĩnh vực, ta chỉ cần
thay đổi template cho phù hợp là đã hoàn thiện website của mình (xem hình 3.3
và 3.4).
Hình 3.3. Một website tin tức làm từ Nukeviet
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 28
Hình 3.4. Một website mua bán làm từ Nukeviet
Nguyên tắc chứa trong
Một đối tượng được đặt bên trong một đối tượng khác và bản thân nó lại chứa
trong một đối tượng thứ ba, ngoài ra, một đối tượng chuyển động xuyên suốt bên
trong một đối tượng khác. Trong mã nguồn Nukeviet, một chương trình chứa
nhiều chương trình con, trong chương trình con lại chứa nhiều chương trình con
khác. Ngoài ra, trong file này sẽ chứa nội dung file kia và ngược lại. Ví dụ để
hiển thị trang chủ, người ta thực hiện như sau:
{FILE "header.tpl"}
[HEADER]
[TOP]
{MODULE_CONTENT}
[BOTTOM]
[FOOTER]
{FILE "footer.tpl"}
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 29
Điều này có nghĩa là trang chủ sẽ bao gồm file header chứa banner web, logo,
các menu trên cùng, sau đó là phần nội dung web và phần cuối cùng là footer,
chứa các thành phần ở cuối trang web như thông tin công ty, thông tin bản quyền
…vv…
Nguyên tắc thực hiện sơ bộ
Nguyên tắc thực hiện sơ bộ là thực hiện trước sự thay đổi cần có, hoàn toàn
hoặc từng phần, đối với đối tượng. Để làm được như vậy, cần sắp xếp đối tượng
trước, sao cho chúng có thể hoạt động từ vị trí thuận lợi nhất, không mất thời
gian dịch chuyển. Thông thường ta thường đặt ra các câu hỏi trước khi thực hiện
nguyên tắc này: hệ thống cho trước có những nhược điểm gì? Nó bao gồm những
phần việc gì được thực hiện theo tuần tự thời gian như thế nào? Việc thực hiện
trước một hoặc tất cả các phần việc có giúp khắc phục các nhược điểm nêu trên
không? Nếu có thì tìm cách giải quyết?.
Để thực hiện mã nguồn Nukeviet, người lập trình sẽ thực hiện phần cơ sở dữ
liệu trước, sau đó đến phần core, được xem như là frameword của mã nguồn, đó
là các thành phần kết nối database, các cấu hình, sau đó sẽ tiến hành các module,
sau module là tiền hành code các block, sau block người lập trình tiến hành code
template bao gồm cả việc cắt css, design.
Việc thực hiện chức năng quản trị web (phần admin) được thực hiện song
song.
Nguyên tắc dự phòng
Nguyên tắc dự phòng để bù đắp độ tin cậy không lớn của đối tượng bằng cách
chuẩn bị trước các phương tiện báo động, ứng cứu, an toàn. Nukeviet đã thực
hiện nguyên tắc này bằng chức năng sao lưu dữ liệu trong phần admin. Mã nguồn
cũng sử dụng nguyên tắc sao chép bằng cách sao chép và lưu dữ liệu sang một vị
trí khác để phòng ngừa việc dữ liệu bị mất mát hay hư hỏng trong trường họp dữ
liệu không thể phục hồi lại được.
Sao lưu dự phòng dữ liệu:
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 30
Nhằm lưu lại toàn bộ dữ liệu trong hệ thống hiện tại để đề phòng trong trường
hợp hệ thống bị phá hoại, hư hỏng, mất mát dữ liệu…(xem hình 3.5).
Hình 3.5. Chức năng sao lưu dữ liệu trong phần admin
Chức năng phục hồi dữ liệu:
Trong trường hợp hệ thống bị sự cố phải cài lại từ đầu,hệ thống bị kẻ xấu phá
hoại, các dữ liệu trong cơ sở dữ liệu bị mất mát hoặc bị thay đổi ngoài ý
muốn…thì chúng ta có thể phục hồi lại dữ liệu từ bản sao lưu trước đó.
Cách đơn giản để thực hiện sao lưu dữ liệu là bạn vào nhấp checkbox kích
hoạt chế độ sao lưu của hệ thống. Nếu có bất trắc xảy ra, bạn có thể chọn file sao
lưu thích hợp để phục hồi lại web.
Nguyên tắc thay đổi màu sắc
Trong bất cứ trang Web Portal nào, người lập trình cũng chú ý đến nguyên tắc
thay đổi màu sắc. Ở đây xin dẫn chứng về nguyên tắc thay đổi màu sắc bằng việc
báo lỗi trong quá trình đăng kí thành viên ở Nukeviet. Khi viết một form cho
người dùng đăng ký thông tin, người lập trình hẳn đã nghĩ tới nhiều trường hợp
có thể xảy ra khi người dùng điền thông tin vào, từ đó đưa ra những quy định cho
họ. Ví dụ như tên đăng kí không dài quá 20 kí tự, password ít nhất phải 8 kí tự,
hay số điện thoại phải là 10 chữ số,… Nếu người dùng không điền đúng những
yêu cầu trên thì việc đăng kí sẽ không thực hiện được đồng thời sẽ hiển thị thông
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 31
tin bằng màu đỏ (chữ màu đỏ). Việc làm này giúp người dùng nhanh chóng biết
được đề mục này bị sai, đề mục nào là yêu cầu phải nhập …vv….(xem hình 3.6).
Hình 3.6. Thông báo màu đỏ hiển thị khi người dùng nhập sai thông tin
Ở trên là giao diện đăng kí một tài khoản trong trang web được tạo từ mã
nguồn Nukeviet. Người dùng cố ý không điền vào các textbox có yêu cầu. Khi
nhấn Submit thì sẽ thấy cảnh báo “Trường này là bắt buộc”. Vấn đề ở đây là tại
sao phải chuyển màu để nhắc nhở người dùng trong khi chỉ cần hiện câu thông
báo là được. Trong cuộc sống hằng ngày, chúng ta thường thấy những gì có màu
sắc mạnh sẽ được chú ý nhiều hơn. Quay lại với form đăng kí, khi dòng thông
báo màu đỏ làm cho người dùng chú ý hơn, và sẽ không quên điền vào đó nữa.
Nguyên tắc thay đổi màu sắc cũng được thể hiện ở phần menu TOP. Khi bạn
click chuột vào một module thì dòng chữ của module đó sẽ thay đổi màu sắc
khác với các chữ của các module còn lại. Điều này giúp cho người dùng dễ dàng
nhận ra rằng họ đang ở module nào đó. Ví dụ trong trường hợp này là module
“sản phẩm”, màu của nó chuyển thành màu vàng trong khi màu của các module
khác là màu trắng (xem hình 3.7).
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 32
Hình 3.7. Màu của menu Sản phẩm là màu vàng, trong khi các modile khác là màu trằng
Nguyên tắc tự phục vụ
Nguyên tắc tự phục vụ mang lại cho Web Portal Nukeviet chức năng cho phép
người dùng tùy biến giao diện cũng như cá nhân nhân hóa nội dung thể hiện. Đây
là một phần chức năng của hệ quản trị nội dung người dùng CMS (Content
Management System) mà Web Portal tích hợp vào. Một portal có sẵn rất nhiều
module, mỗi module thì có nhiều block, người dùng có thể tự tạo block của
mình, chèn bất cứ đâu, di chuyển (kéo và thả) đến bất cứ nơi nào mà bạn thích.
Người dùng có thể tạo một portal page riêng cho mình, ở đó người dùng có thể
tùy biến giao diện, màu sắc và các thành phần portlet sử dụng (xem hình 3.8).
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 33
Hình 3.8. Người dùng có thể bật chức năng kéo thả block và tự “phục vụ” cho giao diện của mình
Nguyên tắc tách khỏi
Nguyên tắc tách khỏi là tách các thành phần “gây phiền phức” ra khỏi đối
tượng hoặc thành phần tối quan trọng (cần thiết) ra khỏi đối tượng. Trong
Nukeviet, nguyên tắc này thể hiện giữa block và module. Với các web portral
trước, người lập trình thường xây dựng chung, gộp module và block lại với nhau.
Việc hiển thị giao diện web do module quyết định. Trong Nukeviet, người lập
trình đã tách đối tượng “phiền phức” là block ra khỏi module. Block hoạt động
độc lập, nó sẽ lấy dữ liệu của module và hiển thị trên giao diện. Tức block không
liên quan đến các xử lý logic, xử lý database mà chỉ chuyên phần hiển thị (xem
hình 3.9).
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 34
Hình 3.9. Một module tin tức có nhiều block khác nhau
Như hình trên, ta hình dung thấy module Tin tức có khá nhiều block:
Block news: hiển thị tin tức dạng bình thường
Block slider yahoo: hiển thị tin tức dạng chạy từng tin giống như trang
Yahoo News.
Block tophits: hiển thị các tin tức được nhiều người đọc nhất.
Block category: hiển thị các đề mục tin chính (category) của module.
…
3.3. Dự đoán tính năng tương lai của NukeViet
Cùng với sự phát triển của khoa học và lĩnh vực công nghệ thông tin, đặc biệt
là trong lĩnh vực web, internet, chắc chắn hệ quản trị mã nguồn mở Nukeviet sẽ
có nhiều cải tiến trong lương lại. Nhân đây tôi xin mạo mụi dự đoán một số tính
năng mới của hệ thống này, dựa vào những kiến thức học được từ các nguyên lý
sáng tạo trong khoa học.
Nukeviet dạng wab (chạy trên thiết bị di động)
Wab là một trong những công nghệ “hot”, hiện tại có rất nhiều web đã có wab.
Trong tương lai, về giao diện, với người sử dụng máy tính, nâng cấp lên
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 35
NukeViet mới để hiển thị trên di động sẽ không tác động gì nhiều tới giao diện
người dùng. Tính năng duyệt site trên di động chắc chắn có.
Ngoài ra, mở rộng tính năng này, mã nguồn sẽ cho phép chuyển đổi giao diện
giữa giao diện Máy tính (PC) và giao diện Mobile (có thể là một link hoặc một
nút ở ngoài trang chủ làm việc này). Ngoài ra, sau này sẽ có thêm bộ công cụ tự
động chuyển giao diện dựa vào thiết bị truy cập là PC hay mobile (đánh giá độ
rộng màn hình hoặc độ phân giải, hoặc truy tìm thông tin hệ điều hành để quyết
định chẳng hạn).
Bổ sung một giao diện đầy đủ cho mobile mượt và nhẹ, cho người sử dụng
một trải nghiệm web tuyệt vời khi truy cập bằng mobile.
Tính năng nhận diện thương hiệu
Marketing trên mạng đang phát triển và vấn đề thương hiệu luôn được quan
tâm. Hiện tại có rất nhiều website đưa ra nhiều giải pháp nhằm “gắn” thương
hiệu vào hình ảnh, bài viết hay videos. Theo tôi, phiên bản Nukeviet sau này sẽ
có các tính năng liên quan đến thương hiệu như:
Tự động chèn logo lên các ảnh được upload lên site để đánh dấu thương
hiệu riêng của site.
Công cụ quản lý tập tin cho phép bạn xử lý việc chèn logo theo ý muốn.
Có bộ sưu tập các thương hiệu liên quan đến web, cho phép gắn thương
hiệu (hình ảnh hoặc tên hoặc tên viết tắt) vào dưới mỗi bài viết.
Tự động hóa việc nâng cấp phiên bản
Hiện có rất nhiều web portal. Mỗi web portal đều dần tự hoàn thiện. Mỗi khi
release một phiên bản mới, yêu cầu người dùng phải nâng cấp. Việc nâng cấp
này có thể gây ra nhiều phiền phức và rủi ro (ví dụ như có thể làm sai, gây xáo
trộn dữ liệu, gây rủi ro về code hay bảo mật).
Nukeviet phiên bản hiện tại bắt người dùng phải nâng cấp phiên bản một cách
thủ công. Thiết nghĩ tự động hóa việc nâng cấp phiên bản là điều cần làm. Khi
đó, bạn chỉ việc nhấp nút đồng ý, và mọi quy trình nâng cấp sẽ diễn ra tự động.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 36
Tính năng tạo gian hàng
Tạo gian hàng và cho phép người dùng tạo ra “tổ ấm” của riêng mình trên web
là một yêu cầu xã hội. Hiện tại rất nhiều web cho phép người dùng làm điều này,
như vatgia.com hay chodientu.vn. Vì vậy, mã nguồn Nukeviet sẽ có tính năng
cho phép người dùng tạo gian hàng trên web. Những gian hàng ấn tượng, có lượt
truy cập cao sẽ được đưa lên TOP nhằm thu hút sự cố gắn cập nhật thông tin của
thành viên. Ngoài ra, gian hàng có thể cho phép người dùng mua bán sản phẩm
của mình ngay trên chính web được làm từ nukeviet, mỗi user có bảng quản trị
tài khoản, sản phẩm, tin tức, gian hàng riêng của họ.
Tính năng “trên mây”
Đưa web lên “mây” hay công nghệ điện toán đám mây hiện đang là từ khóa
“hot” trong lĩnh vực công nghệ thông tin. Hiện nay điện toán đám mây đang
được phát triển và cung cấp bới nhiều nhà cung cấp, trong đó có Amazon,
Google, DataSynapse, và Salesforce cũng như những nhà cung cấp truyền thống
như Sun Microsystems, HP, IBM, Intel, Cisco và Microsoft. Nó đang được nhiều
người dùng cá nhân cho đến những công ty lớn như General Electric, L'Oréal,
Procter & Gamble và Valeo chấp nhân và sử dụng
Dự đoán Nukeviet trong tương lai sẽ theo mô hình điện toán đám mây cụ thể
như sau:
Sử dụng Service Amazon SimpleDB để dùng cho việc lưu trữ cơ sở dữ
liệu Nukeviet, thay vì phải lưu ngay trên host như hiện nay.
Sử dụng điện toán đám mây trong việc lưu trữ các hình ảnh, flash, video
và các thành phần media khác.
Sử dụng điện toán đám mây cho phép user modify, up, chỉnh sửa và quản
lý ảnh, video, flash của mình và sau đó dùng cho web.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 37
4. KẾT LUẬN
Qua lý thuyết về nguyên lý sáng tạo cũng như các mẫu hình được áp dụng vào
bộ mã nguồn mở CMS Nukeviet, ta dễ dàng nhận thấy sự ảnh hưởng của 40
phương pháp sáng tạo trong quá trình giải quyết các vần đề tin học là vô cùng to
lớn, nó là kim chỉ nam và nên được áp dụng ở bất cứ lĩnh vực nào, bất cứ khi nào
và bất cứ nơi đâu, nhằm tạo ra nhiều sản phẩm ngày càng tốt hơn, đáp ứng đầy
đủ hơn nhu cầu phát triển của xã hội.
Thấy được tầm quan trọng của sáng tạo, cũng như ảnh hưởng của các nguyên
lý sáng tạo trên các sản phẩm tin học hiện hành, việc nắm vững các phương pháp
sáng tạo có thể coi như là chìa khoá để mở cánh cửa thành công không chỉ trong
lĩnh vực công nghệ thông tin mà cả trong các lĩnh vực khác.
BÀI THU HOẠCH MÔN HỌC: PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
HỌC VIÊN THỰC HIỆN: NGUYỄN VĂN KHOA – MSHV: CH1101016 Page 38
5. TÀI LIỆU THAM KHẢO
1. Bài giảng môn học “Phương pháp nhiên cứu khoa học trong tin học”,
Giảng viên : GS.TSKH Hoàng Văn Kiếm
2. Giải một bài toán trên máy tính như thế nào? (tập 1, 2, 3) - GS. TSKH
Hoàng Kiếm, Nhà xuất bản giáo dục – 2003.
3. Phương pháp luận nghiên cứu khoa học , Vũ Cao Đàm, Nhà xuất bản
Khoa Học và Kỹ Thuật – 1999.
4. Các thủ thuật (nguyên tắc) sáng tạo cơ bản, 2007 - Phan Dũng.
5. Phương pháp luận sáng tạo – Giải quyết vấn đề và ra quyết định - Phan
Dũng.
6. Algorit sang chế - Nguyễn Chân-Phan Dũng-Dương Xuân Bảo
7. Phương pháp luận sáng tạo - TRIZVIET -
Các file đính kèm theo tài liệu này:
- nguyenvankhoa_ch1101016_bth_ppnckhtth_8279.pdf