Đề tài Các nguyên lý sáng tạo & vận dụng vào web PORTA CMS NUKEVIET

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ọ.

pdf38 trang | Chia sẻ: lylyngoc | Lượt xem: 2908 | Lượt tải: 0download
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:

  • pdfnguyenvankhoa_ch1101016_bth_ppnckhtth_8279.pdf