Tải bản đầy đủ (.pdf) (69 trang)

Xây dựng website giới thiệu, đánh giá về sách

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

TRƢỜNG ĐẠI HỌC SƢ PHẠM
ĐẠI HỌC ĐÀ NẴNG
KHOA TIN HỌC

BÁO CÁO
KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG WEBSITE GIỚI THIỆU VÀ
ĐÁNH GIÁ VỀ SÁCH

CBHD:

TS. Nguyễn Trần Quốc Vinh

Sinh viên thực hiện:

Mai Văn Nhật Tiến

Mã sinh viên:

312022151151

Lớp sinh hoạt:

15CNTT1

Đà Nẵng, 4/2019


LỜI CẢM ƠN


Để hoàn thành đồ án thực tập ngoài sự nổ lực của bản thân, em
đã nhận được sự hướng dẫn và giúp đỡ tận tình từ nhiều phía. Tất cả
những điều đó đã trở thành động lực lớn giúp em hoàn thành tốt đợt
thực tập này. Với tất cả sự cảm kích em xin gửi lời cảm ơn đến tất cả
mọi người.
Trước tiên em xin chân thành cảm ơn thầy Ts. Nguyễn Trần Quốc
Vinh đã nhiệt tình hỗ trợ, hướng dẫn em trong việc chọn đề tài, hướng
tiếp cận, giúp chúng em chỉnh sửa những thiết sót trong quá trình
nghiên cứu. Và em xin gửi lời cảm, sự tri ân sâu sắc đối với các thầy
cô của Khoa Tin Học- Đại học Sư Phạm Đà Nẵng đã tận tình dạy bảo,
giúp đỡ em trong thời gian em học tại trường cũng như trong thời gian
em thực tập.
Em xin được gửi lời cảm ơn đến lãnh đạo trường Đại học Sư
phạm Đà Nẵng, lãnh đạo khoa Tin học đã tạo ra những cơ hội và điều
kiện học tập giúp em có được những kiến thức bổ ích để hồn thành đồ
án nghiên cứu.
Xin trân trọng cảm ơn!
Đà Nẵng, ngày 10 tháng 04 năm 2019
Sinh viên thực hiện

Mai Văn Nhật Tiến


LỜI CAM ĐOAN

Tôi xin cam đoan:
1. Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng
dẫn trực tiếp của thầy TS. Nguyễn Trần Quốc Vinh.
2. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tơi
xin chịu hồn tồn trách nhiệm.


Sinh viên thực hiện

Mai Văn Nhật Tiến


NHẬN XÉT CỦA CÁN BỘ HƢỚNG DẪN
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................

Đà Nẵng, ngày tháng năm 2019
Cán bộ hướng dẫn


NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................


Đà Nẵng, ngày

tháng

năm 2019

Hội đồng phản biện


MỤC LỤC
LỜI MỞ ĐẦU ............................................................................................................... 1
1. Tính cấp thiết của đề tài: ..................................................................................... 1
2. Mục tiêu và nhiệm vụ nghiên cứu: ..................................................................... 1
2.1 Mục tiêu: ...................................................................................................... 1
2.2 Nhiệm vụ: ..................................................................................................... 2
3. Đối tƣợng và phạm vi nghiên cứu: ..................................................................... 2
3.1 Đối tƣợng nghiên cứu: ................................................................................ 2
3.2 Phạm vi nghiên cứu: ................................................................................... 2
4. Phƣơng pháp nghiên cứu: ................................................................................... 3
4.1 Về mặt lý thuyết: ......................................................................................... 3
4.2 Về mặt lập trình: ......................................................................................... 3
5. Phƣơng tiện, công cụ triển khai: ........................................................................ 3
6. Kết quả dự kiến và hƣớng phát triển của đề tài: .............................................. 3
6.1 Kết quả dự kiến: .......................................................................................... 4
6.2 Hƣớng phát triển của đề tài: ......................................................................... 4
7. Bố cục của đề tài: ................................................................................................. 4
CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN ................................................................ 6
1.1 Lý thuyết tổng quan .......................................................................................... 6
1.1.1 Ngôn ngữ ruby........................................................................................... 6
1.1.2 Rails Framework .................................................................................... 11

1.1.3 Giới thiệu về hệ quản trị cơ sở dữ liệu SQLite .................................... 17
1.1.4 Phân lớp văn bản .................................................................................... 18
1.1.5 Thuật toán Naive Bayes Classifier ........................................................ 19
1.2 Triển khai thực hiện ......................................................................................... 22
1.2.1 Mô tả đề tài .............................................................................................. 22


1.2.2 Quy trình cần thực hiện ......................................................................... 23
1.3 Phân tích website .............................................................................................. 23
1.3.1 Khảo sát yêu cầu ..................................................................................... 23
1.3.2 Phân tích u cầu .................................................................................... 24
CHƢƠNG 2: PHÂN TÍCH THIẾT KẾ ................................................................... 25
2.1 Mục tiêu và chức năng của hệ thống .............................................................. 25
2.2 Phân tích thiết kế hệ thống thơng tin .............................................................. 26
2.2.1 Biểu đồ Use Case của hệ thống .............................................................. 26
2.2.2 Đặc tả Use Case ....................................................................................... 30
2.2.3 Sơ đồ tuần tự ........................................................................................... 39
2.2.4 Thiết kế sơ đồ cơ sở dữ liệu ................................................................... 42
2.2.5 Cấu trúc bảng và ràng buộc .................................................................. 43
CHƢƠNG 3: TRIỂN KHAI VÀ KẾT QUẢ ĐẠT ĐƢỢC ..................................... 47
3.1 Môi trƣờng triển khai...................................................................................... 47
3.2 Kết quả triển khai ............................................................................................ 47
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ................................................................ 57
TÀI LIỆU THAM KHẢO.......................................................................................... 58


MỤC LỤC HÌNH ẢNH
Hình 1: Mơ hình MVC trong ruby .............................................................................. 13
Hình 2: Kiến trúc tổng quan của Ruby on rails ........................................................... 14
Hình 3: Biểu đồ Use Case mơ tả chức năng của hệ thống .......................................... 26

Hình 4: Biểu đồ Use Case mô tả chức năng của khách vãng lai ................................. 27
Hình 5: Biểu đồ Use Case mơ tả chức năng của thành viên ........................................ 28
Hình 6: Biểu đồ Use Case mô tả chức năng của quản trị viên .................................... 29
Hình 7: Sơ đồ tuần tự chức năng đăng kí .................................................................... 40
Hình 8: Sơ đồ tuần tự chức năng hiển thị sách ............................................................ 40
Hình 9: Sơ đồ tuần tự chức năng đăng nhập ............................................................... 41
Hình 10: Sơ đồ tuần tự chức năng thêm đánh giá ....................................................... 41
Hình 11: Sơ đồ tuần tự chức năng thêm bình luận ...................................................... 42
Hình 12:Sơ đồ cơ sở dữ liệu quan hệ .......................................................................... 42
Hình 13: Giao diện trang đăng ký ............................................................................... 47
Hình 14: Giao diện trang đăng nhập............................................................................ 48
Hình 15: Giao diện trang chủ ...................................................................................... 48
Hình 16: Giao diện trang chi tiết sách ......................................................................... 49
Hình 17: Giao diện trang hiển thị sách ........................................................................ 50
Hình 18: Giao diện trang đánh giá sách ...................................................................... 51
Hình 19: Giao diện trang gửi yêu cầu thêm sách ........................................................ 51
Hình 20: Giao diện trang đổi thơng tin người dùng .................................................... 52
Hình 21: Giao diện trang xem thông tin bạn bè và theo dõi ....................................... 52
Hình 22: Giao diện trang hoạt động của bạn bè .......................................................... 53
Hình 23: Giao diện trang sách được u thích ............................................................ 53
Hình 24: Giao diện trang quản lý người dùng ............................................................. 54


Hình 25: Giao diện trang quản lý yêu cầu ................................................................... 55
Hình 26: Giao diện gửi mail xác nhận......................................................................... 55
Hình 27: Giao diện trang thống kê .............................................................................. 56


MỤC LỤC BẢNG
Bảng 1: Bảng đặc tả Use Case đăng nhập ................................................................... 30

Bảng 2: Bảng đặc tả Use Case đăng xuất .................................................................... 30
Bảng 3: Bảng đặc tả Use Case xem thông tin sách ..................................................... 31
Bảng 4: Bảng đặc tả Use Case thêm mới sách ............................................................ 32
Bảng 5: Bảng đặc tả Use Case xóa sách ...................................................................... 32
Bảng 6: Bảng đặc tả Use Case cập nhật sách .............................................................. 33
Bảng 7: Bảng đặc tả Use Case xem thông tin người dùng .......................................... 33
Bảng 8: Bảng đặc tả Use Case tạo tài khoản mới........................................................ 34
Bảng 9: Bảng đặc tả Use Case cập nhật thông tin cá nhân ......................................... 34
Bảng 10: Bảng đặc tả Use Case cập nhật quyền cho user ........................................... 35
Bảng 11: Bảng đặc tả Use Case xóa tài khoản ............................................................ 35
Bảng 12: Bảng đặc tả Use Case xem danh sách yêu cầu ............................................ 36
Bảng 13: Bảng đặc tả Use Case thêm mới yêu cầu ..................................................... 36
Bảng 14: Bảng đặc tả Use Case xóa yêu cầu............................................................... 37
Bảng 15: Bảng đặc tả Use Case cập nhật trạng thái yêu cầu....................................... 37
Bảng 16: Bảng đặc tả Use Case xem đánh giá ............................................................ 37
Bảng 17: Bảng đặc tả Use Case xóa đánh giá ............................................................. 38
Bảng 18: Bảng đặc tả Use Case xem bình luận của đánh giá ..................................... 38
Bảng 19: Bảng đặc tả Use Case xóa bình luận của đánh giá....................................... 39
Bảng 20: Bảng đặc tả Use Case thêm yêu thích sách .................................................. 39
Bảng 21: Bảng người dùng .......................................................................................... 43
Bảng 22: Bảng sách ..................................................................................................... 43
Bảng 23: Bảng yêu cầu ................................................................................................ 44
Bảng 24: Bảng thể loại ................................................................................................ 44


Bảng 25: Bảng quan hệ của user ................................................................................. 44
Bảng 26: Bảng hoạt động ............................................................................................ 45
Bảng 27: Bảng đánh giá............................................................................................... 45
Bảng 28: Bảng u thích ............................................................................................. 45
Bảng 29: Bảng bình luận ............................................................................................. 46



BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH
LỜI MỞ ĐẦU

1. Tính cấp thiết của đề tài:
Ngày nay, ứng dụng cơng nghệ thơng tin và việc tin học hóa được xem là một
trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức,
cũng như của các cơng ty. Nó đóng vai trị hết sức quan trọng, có thể tạo ra những
bước đột phá mạnh mẽ.
Qua khảo sát tình hình thực tế tại Việt Nam chúng ta sẽ nhận thấy nhu cầu đọc và
mua sách là rất cần thiết cho mọi người. Nhưng do đời sống kinh tế ngày càng phát
triển nên mọi người khơng có thời gian để đi khắp nơi tìm và mua những quyển sách
mà mình thích, phù hợp với bản thân. Vì vậy việc xây dựng một website giới thiệu và
review về những cuốn sách hay bổ ích sẽ là một điều hết sức cần thiết trong việc tiết
kiệm thời gian và chọn ra những quyển sách phù hợp với mọi người.
Tuy nhiên việc xem những bình luận, đánh giá của người dùng xuất hiện một cách
lộn xộn khơng có sắp xếp phân loại rõ ràng sẽ gây ra khơng ít khó khăn trong việc
chọn ra những cuốn sách được nhận xét phù hợp với người sử dụng hệ thống. Bên
cạnh đó khơng có nhiều những trang website chun bình luận, đánh giá sách mà có
tích hợp tính năng tự động phân lớp các nhận xét của người dùng phục vụ cho nhu
cầu tìm hiểu và xem đánh giá về sách một sách dễ dàng và có những trải nghiệm tốt
hơn trong quá trình tìm ra những cuốn sách phù hợp với bản thân. Bắt nguồn với ý
tưởng này, em đã chọn đề tài: “XÂY DỰNG WEBSITE GIỚI THIỆU, ĐÁNH GIÁ
VỀ SÁCH” – hệ thống được xây dựng bằng ngôn ngữ ruby on rails có tích hợp các
gem hỗ trợ và tính năng tự động phân loại các đánh giá sách của người dùng theo
nhiều hướng.
2. Mục tiêu và nhiệm vụ nghiên cứu:

2.1 Mục tiêu:
 Website được sắp xếp bố cục một cách hợp lý thân thiện với người dùng,
tạo điều kiện cho người đọc dễ định hướng trong website.

SVTH: MAI VĂN NHẬT TIẾN

1


BÁO CÁO KHĨA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

 Website có hình thức đẹp phù hợp với chủ đề, có đầy đủ nội dung người
dùng quan tâm, thân thiện và thích hợp với mọi lứa tuổi.
2.2 Nhiệm vụ:
Để đạt được những mục tiêu trên thì nhiệm vụ đặt ra của đề tài là:
 Khảo sát nhu cầu của mọi người về việc đọc sách và xem giới thiệu review
về sách trước khi mua.
 Tìm hiểu các loại sách trên thị trường được nhiều người quan tâm.
 Quản lý thông tin sách.
 Xây dựng các chức năng: hiện thị các sách mới và hot ở ngoài thị trường,
đăng nhập để đánh giá và bình luận về sách quan tâm, hiển thị các đánh
giá, phê bình của người đánh giá, tên tác giả, thể loại. Cho phép người
dùng dễ dàng tìm kiếm cũng như đánh giá sách theo thang điểm, đề xuất
với quản trị viên để thêm sách theo yêu cầu, đánh dấu sách. Theo dõi
những hành động của bản thân và các người dùng khác trên trang cá nhân.
 Tự động phân lớp những bình luận tích cực và tiêu cực của người dùng.
 Thống kê sách được yêu thích nhất và xem các loại sách được yêu thích.
 Liên kết với tài khoản gmail và facebook của người dùng.

3. Đối tƣợng và phạm vi nghiên cứu:
3.1 Đối tƣợng nghiên cứu:
 Các công ty, doanh nghiệp về sách và các hiệu sách trên cả nước.
 Những người quan tâm và có sở thích về sách muốn tìm hiểu và xem
những đánh giá khách quan về sách trước khi mua.
 Hướng đến người dùng ở mọi lứa tuổi.
3.2 Phạm vi nghiên cứu:
 Đề tài nghiên cứu xây dựng hệ thống giới thiệu, đánh giá sách trong một
phạm vi nhỏ, trong một vài thể loại cụ thể.

SVTH: MAI VĂN NHẬT TIẾN

2


BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

 Giới hạn về thời gian của dữ liệu trong vòng 3 năm gần đây.
4. Phƣơng pháp nghiên cứu:
Đề tài này sẽ kết hợp các phương pháp nghiên cứu, đó là:
4.1 Về mặt lý thuyết:
 Nghiên cứu các tài liệu về ngôn ngữ lập trình ruby on rails.
 Khảo sát nhu cầu thực tế, sử dụng các phương pháp phỏng vấn, điều tra,
phân tích, thống kê.
 Tìm hiểu, tham khảo các ứng dụng sử dụng ngôn ngữ Ruby on Rails và các
website giới thiệu về sách, nghiên cứu và ứng dụng vào đề tài.
 Tìm hiểu về khai phá dữ liệu và thuật tốn Machine Learning.
 Tìm hiều về các gem hỗ trợ trong rails.

4.2 Về mặt lập trình:
 Sử dụng những kỹ thuật thiết kế website để đưa website giới thiệu về sách
vào thực tiễn ngày nay.
 Nghiên cứu sử dụng các nền tảng Gem hổ trợ của rails và áp dụng vào đề
tài.
 Nghiên cứu về thuật toán phân lớp văn bản K-nearest neighbor và các
module hỗ trợ.
5. Phƣơng tiện, công cụ triển khai:
 Xây dựng hệ thống trên hệ điều hành Ubuntu.
 Ngơn ngữ lập trình được sử dụng là Ruby viết trên nền tảng của rails.
 Trình soạn thảo biên dịch Sublime text.
 Công cụ lưu trữ mã nguồn: Git
 Cơ sở dữ liệu: SQLite
 Công cụ kiểm thử: Rspec, Rubocop
6. Kết quả dự kiến và hƣớng phát triển của đề tài:
SVTH: MAI VĂN NHẬT TIẾN

3


BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

6.1 Kết quả dự kiến:
Kết quả đạt đƣợc là một website có những yếu tố sau :
 Hình ảnh đăng tải với chất lượng cao.
 CSDL bảo mật cao về quản lí thơng tin thành viên.
 Hiển thị tất cả hình ảnh về thơng tin sách được giới thiệu.
 Chức năng bình luận, đánh giá của khách hàng với sách.

 Thống kê lượt sách thường được u thích, bình luận và đánh giá về chất
lượng của sách.
 Phân quyền truy cập đối với người quản trị hệ thống và người dùng.
 Hiển thị các hoạt động của người dùng lên trang chủ.
 Cho phép người dùng đề xuất thêm mới sách. Đánh dấu sách theo sở thích.
 Chức năng cho phép người dùng tìm kiếm theo thể loại sách, tiêu đề, theo
u thích của sách.
 Chức năng tự động phân loại nhận xét, đánh giá của người dùng dựa trên
nội dung nhận xét.
6.2 Hƣớng phát triển của đề tài:
Có thể áp dụng vào thực tế.
7. Bố cục của đề tài:
Mở đầu
Giới thiệu lý do chọn đề tài, khách thể và đối tượng nghiên cứu trong đề tài, giới
hạn phạm vi nghiên cứu của đề tài, nhiệm vụ và phương pháp nghiên cứu của đề tài.
Chƣơng 1: Giới thiệu tổng quan
Nghiên cứu lý thuyết liên quan đến đề tài và cách thức triển khai đề tài.
Chƣơng 2: Phân tích và thiết kế
Trình bày phân tích thiết kế hệ thống và phân tích cơ sở dữ liệu

SVTH: MAI VĂN NHẬT TIẾN

4


BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

Chƣơng 3: Triển khai và kết quả đạt đƣợc

Các kết quả đạt được
Kết luận và hƣớng phát triển
Đánh giá kết quả đã đạt được, hướng phát triển và các kiến nghị nếu có.

SVTH: MAI VĂN NHẬT TIẾN

5


BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1

Lý thuyết tổng quan

1.1.1 Ngôn ngữ ruby
1.1.1.1 Lịch sử phát triển
Ruby được tạo ra bởi Yukihiro Matsumoto (hay cònđược gọi là Matz),người Nhật
Bản, vào ngày 24 tháng 2, 1993 và đưa ra bản chính thức vào năm 1995.
Ruby chịu nhiều ảnh hưởng từ Perl, và khi hoàn tất ngôn ngữnày, Matz đã đùa với
một người bạn rằng nên đặt tên thếnào nghe cho nó giống một thứđá quý nào đó (Perl
lúc đầu cũng được đặt tên là Pearl -ngọc trai). Và bạn của anh đã gợi ý cái tên Ruby.
Sau này Matz cũng bất ngờ khi phát hiện ra Pearl là viên đá quý tượng trưng cho
những người sinh tháng 6, cịn Ruby thì tượng trưng cho những người sinh tháng 7.
Anh cho rằng cái tên Ruby như thế là phù hợp vì Ruby kế thừa và phát triển nhiều
đặc tính từ Perl.
1.1.1.2 Ruby là gì?

Hiện nay, có nhiều ngơn ngữ lập trình để các lập trình viên có thể chọn lựa. Đối
với các lập trình viên mới vào nghề, việc chọn một ngơn ngữ có thể gặp khó khăn. Có
nhiều ngơn ngữ đang phát triển, nhưng khơng phổ biến và khó đểtự học một cách
thơng thường. Trong số đó, Ruby là một ngơn ngữ rất hay mà các lập trình viên mới
có thể thử. Ruby là một mã nguồn mở, một ngơn ngữ lập trình hướng đối tượng thuần
túy, nghĩa là, mỗi giá trịbao gồm: số, giá trịtrue và false,... đều là một đối tượng.
Ruby được thiết kế tập trung vào tính đơn giản và hiệu suất. Ruby lấy cảm hứng
từ Lisp, Perl, Smalltalk. Mặc dù là ngơn ngữ hướng đối tượng nhưng Ruby cũng có
thể được sử dụng các kiểu lập trình thủ tục(procedure) và chức năng(functional).
1.1.1.3 Ruby có thể làm đƣợc những gì?
Ruby đã tạo nên những nét đặc biệt nhất của những ngôn ngữ lập trình. Những nét
chính đó là:

SVTH: MAI VĂN NHẬT TIẾN

6


BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

 Sức mạnh: là sự kết hợp hoàn hảo giữa sức mạnh hướng đối tượng thuần túy
của ngôn ngữ hướng đối tượng với sức diễn đạt và sự tiện lợi của ngôn ngữ
kịch bản(Script) của Perl. Chương trình Ruby rất nhỏ gọn, dễ đọc.
 Tính đơn giản : Cú pháp và nghĩa của nó rất trực quan và dễđọc (clean). Và
cũng khơng có “những trường hợp đặc biệt” nào mà ta cần phải ghi nhớ. Như
các instance, số nguyên (integer), hay các lớp (classes), vừa đủ giống vối các
ngôn ngữ khác. Mỗi khi ta học những cái cơ bản, nó rất dễ dàng đểđốn trước
được cách làm những cái mới hơn.

 Tính vơ hình:Ruby giải phóng người lập trình khỏi sự cực nhọc trong việc
nhồi nhét của các trình biên dịch (complier). Ruby ln nằm trong „vùng kiểm
sốt‟ ,do đó ta có thể tập trung giải quyết các lỗi bằng tay.
 Sẵn có: Ruby là nguồn mở nên có thể sử dụng một cách tự do đối với người
dùng hay người phát triển. Không giống như nhiều ngôn ngữ mới khác, Ruby
không giớihạn bạn về vấn đề HĐH và pháp lý . Ruby có thể chạy trên Unix
hay Linux, Microsoft Windows,….
1.1.1.4 So sánh với các ngơn ngữ lập trình khác
Ruby với Java
 Điểm giống nhau:
Giống nhƣ Java, Ruby cũng có:
 Bộ nhớđược quản lý thông qua bộ thu dọn rác (garbage collector).
 Đối tượng là chủ đạo.
 Đều có những method public, private, protected
 Điểm khác nhau
Không giống nhƣ Java, trong Ruby:
 Không cần biên dịch code, ta có thể chạy trực tiếp.
 Sử dụng từ khóa “end” sau khi định nghĩa một cái gì đó, ví dụ như class,
thay vì đặt dấu ngoặc quanh khối lệnh.
SVTH: MAI VĂN NHẬT TIẾN

7


BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

 Sử dụng “require” thay vì “import” ở Java.
 Tất cả các biến thành viên là private. Từ bên ngồi, ta có thể truy xuất mọi

thứ qua các method.
 Mọi thứ đều là đối tượng, bao gồm cả số, ví dụ như 5 và 3.14.
 Tên biến chỉ là một cái nhãn, không một kiểu đi kèm với nó.
 Contructor ln ln có tên là “initialize” thay vì có tên của class
 == và equals() xử lý khác nhau trong Ruby. Sử dụng == khi ta muốn kiểm
tra sự tương đương trong Ruby (với Java là equal()). Sử dụng equal?() khi
ta muốn biết hai đối tượng có như nhau hay hơng (với Java là ==).
Ruby với C++
 Điểm giống nhau:
Giống nhƣ C++, Ruby cũng có:
 Đều có những method public, protected, privated.
 Cú pháp kế thừa(inheritance) chỉ có một kí tự (với Ruby là “<” và C++ là
“:”)
 Exception làm việc theo cách giống nhau.
 Điểm khác nhau
Không giống nhƣ C++, trong Ruby:
 Contructor ln ln có tên là “initialize” thay vì có tên của class.
 Tất cả method luôn là ảo.
 Biến của class bắt đầu với @@
 Không truy xuất trực tiếp vào các biến thành viên, mà phải thông qua
method.
 Một số method kết thúc với dấu “?”, “!”. Nó thực sự là một phần tên
method.

SVTH: MAI VĂN NHẬT TIẾN

8


BÁO CÁO KHĨA LUẬN


GVHD: NGUYỄN TRẦN QUỐC VINH

 Chỉ có hai kiểu chứa là : “Array” và “Hash”.
1.1.1.5 Ruby IDE và editor hỗ trợ.
Khi bắt đầu học một ngôn ngữ lập trình mới, thì lúcđó bạn sẽ nghĩ ngay tới việc
tìm cho mình một cơng cụ IDE đểhỗ trợ cho việc soạn thảo lập trình. Với Ruby cũng
khơng là ngoại lệ, bạn cũng sẽ gặp phải vấn đềkhó khăn này khi bắt đầu.Dưới đây là
danh sách các công cụ IDE thông dụng:
SciTE
Là một công cụ tuyệt với, rất đơn giản và gọn nhẹ. Ưu điểm nổi trổi là tốc độ khi
nạp và chạy chương trình. Hơn thế nữa, khi cài Ruby mà sử dụng gói dành cho hệ
điều hành Windows, bạn có thể chọn trực tiếp để bộ cài đặt cài kèm theo công cụ
SciTE cho máy của bạn. Tuy nhiên, cơng cụ này lại có q ít các chức năng hỗ trợ cho
người lập trình và vì vậy, nếu bạn là người thích làm mọi việc khi „coding‟ mà khơng
cần sự hỗ trợ và giúp đỡ gì nhiều từ các cơng cụ IDE thì SciTE là q đủ dành cho
bạn. Ngồi ra, bạn có thể cấu hình SciTE bằng cách chỉnh sửa các tệp tin cấu hình nó.
Trang chủ:
Tình trạng: Miễn phí, mã nguồn mở
Hệ điều hành: Windows, Linux
RDE
Là một cơng cụ rất nhẹ và đơn giản. Nó khơng phải là bộ soạn thảo lập trình cho
nhiều loại ngôn ngữ khác nhau, mà chỉđơn giản chỉ là bộ soạn thảo lập trình cho mỗi
Ruby và các anh em họ hàng của nó, như Perl, Python… Hơn thế nữa, RDE mang lại
nhiều tính năng sử dụng, nhiều tiện ích kèm theo như chạy các đoạn script trực tiếp
mà không cần lưu trước, biên dịch và đưa kết quả ra trực tiếp mà khơng cần chạy
console, có tính năng giúp đỡngười sử dụng cho việc soạn thảo nhanh hơn dựa vào
giúp đỡ nhớ các lệnh, hàm và phương thức trong Ruby, và quan trọng nhất là có thể
chạy gỡ lỗi (debug) cho các đoạn script Ruby.
Trang chủ: />

SVTH: MAI VĂN NHẬT TIẾN

9


BÁO CÁO KHĨA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

Tình trạng: Miễn phí, mã nguồn mở
Hệ điều hành: Windows
jEdit
Là một chương trình miễn phí, được viết bằng ngơn ngữ Java, cho nên nó có khả
năng chạy đa nền, từ Mac OS X, OS/2, Unix, VMS tới cả Windows. Hỗ trợ việc soạn
thảo nhiều loại ngôn ngữ trên thế giới, hiện nay đã hỗ trợ được 130 ngôn ngữ. Mặc
định sau khi cài đặt xong, cần phải cáiplugin Rubyđể có thểtối ưu việc cho việc lập
trình bằng ngơn ngữ Ruby. Điểm nổi bật của jEdit là được hỗ trợ kèm theo rất nhiều
plugin miễn phí.
Trang chủ:
Tình trạng: Miễn phí
Hệ điều hành: Mac OS X, Unix, Windows
RadRails
Là một công cụ soạn thảo lập trình miễn phí rất tốt, được triển từ Eclipsenên
RadRails mang trong mình là một ứng dụng được viết bằng ngơn ngữ Java. Do vậy,
RadRails khởi động vô cùng chậm chạp, nhưng sau khi khởi động, ta sẽ mau chóng
quên đi và chỉ cảm thấy hài lịng về nó. Cái tên của nó cũng đã nói lên rõ ràng rằng nó
được phát triển chỉ dành riêng cho việc soạn thảo lập trình Rails mà thơi. Vì vậy,
những người mớibắt đầu sử dụng Ruby, hay chỉ viết các đoạn script Ruby đơn giản
thì sẽ khơng phát huy hết được khảnăng của RadRails đang có.
Trang chủ:

Tình trạng: Miễn phí
Hệ điều hành: Mac OS X, Unix,Windows
RubyMine
Được nhà phát triển JetBrains cho rằng đây là một cơng cụ IDE lập trình Ruby
thơng minh nhất. Với RubyMine, ta có thể soạn thảo lập trình Ruby hay lập trình
Web trên cơng nghệ Ruby on Rails sẽ trởnên đơn giản hơn. Từ việc soạn thảo lập

SVTH: MAI VĂN NHẬT TIẾN

10


BÁO CÁO KHĨA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

trình thơng minh, công cụ tổ chức cấu trúc thư mục mạnh mẽ, cơng cụ phân tích lỗi
lập trình trong Ruby cho tới việc hỗ trợ mạnh mẽphát triển ứng dụng trên nên Web và
cũng như công cụ phân phối chia sẽmã nguồn tới các CVS nổi tiếng như Git,
Subversion… Tuy nhiên, cấu hình hệ thống tối thiểu để sử dụng RubyMine là thuộc
loại khá, tức là bộ nhớ RAM từ 1GB trở lên để sửdụng mà khơng cảm thấy chạy q ì
ạch.
Trang chủ: />Tình trạng: Bản quyền
Hệ điều hành: Windows, Linux, Mac OS X
1.1.2 Rails Framework
1.1.2.1 Lịch sử phát triển
Lịch sử của Ruby on Rails vẫn còn rất ngắn , nhưng đã có nhiều điều xảy ra trong
khoảng thời gian ngắn này:
Dựa trên cơng việc của mình tại Basecamp, đó là một công cụ quản lý dự án
37signals, David Heinemeier đã đầu tiên ra mắt Ruby on Rails là một mã nguồn mở

vào tháng 7 năm 2004. Tuy nhiên, phải đến tháng 2 năm 2005, David mới chiasẻ
quyền cảm kết với Rails. Sau đó, khoảng 10 tháng sau, tức là tháng 12 năm 2005,
phiên bản 1 của Ruby on Rails ra đời .
Và rồi phiên bản 1 cuối cùng cũng được thay thế bằng phiên bản 1.2 vào tháng
Giêng năm 2007. Mặc dù có một số cải tiến nhưng điều đó khơng quá nhiều. Ở phiên
bản này, Rails 1.2 được bổ sung thêm nhiều web server để chạy trên nó và nó cũng dễ
dàng cài đặt hơn trên hầu hết các web server.
Ruby on Rails trở nên phổ biến và chính thống, khi Apple quyết định đóng gói và
phát hành trên hệđiều hành MAC OS X của họ: Leopard vào tháng 10 năm 2007.
Phiên bản 2.0 được phát hành vào tháng 12 năm 2007 .Phiên bản 2 và các phiên bản
sau này được cung cấp hai định dạng đầu ra là HTML và XML.Phiên bản 3.0 với
nhiều cải tiến hơn, hỗ trợ javascrip, jquery, giới thiệu CoffeeScript và Sass.

SVTH: MAI VĂN NHẬT TIẾN

11


BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

Sau khi phiên bản đầu tiên được tung ra thì cộng đồng Rails cũng đã đóng góp bổ
sung hàng mở rộng nó, và sửa các lỗi được tìm thấy. Và phiên bản mới nhất của Rails
bây giờ là phiên bản 3.2.3.
1.1.2.2 Ruby on rails là gì?
Ruby on Rails, hay cịn được biết đến với cái tên ngắn gọn: Rails hay là ROR, là
một framework cho phép phát triển ứng dụng web gồm 2 phàn cơ bản:
 Ngôn ngữ Ruby(lấy đối tượng làm chủ đạo).
 Phần Framework Rails bao gồm nhiều thư viện liên kết.

Cũng giống như nhiều framework ứng dụng web khác, Ruby on Rails sửdụng kiến
trúc model(mơ hình), view(xem), controller(bộ điều khiển) gọi tắt là MVC. Nó bao
gồm các cơng cụ cho phép làm nhiều chức năng thông dụng cho web, chẳng hạn như
thêm xóa, sửa, thơng qua việc sử dụng scaffold, Ruby on Rails có thểtự động xây
dựng các view và model cần thiết cho hầu hết các website cơ bản. Thật sự, đó là lý do
vì sao Ruby on Rails có thể làm trang web dễ dàng hơn.
1.1.2.3 Các tính năng chính của Ruby on rails
Ruby on Rails bao gồm các tính năng giúp tăng hiệu suất làm việc. Sau đây là một
số tính năng chính của nó:
 Kiến trúc MVC: Ruby on Rails dựa trên kiến trúc MVC (Model View
Controller) cho phép dữ liệu được tách ra.
 Thư viện truy xuất dữ liệu (Database Access Library): Ruby on Rails bao
gồm một thư viện: Active Record, giúp đơn giản hóa việc xử lý dữ liệu
trong cơ sở dữ liệu. Active Record tự động ánh xạ(map) bảng tới class, các
hàng trong bảng tới những đối tượng.
 Thư viện cho các tác vụ thông thường: Ruby on Rails bao gồm một máy
chủ thư viện, giúp đơn giản hóa việc gõ code cho các tác vụ lập trình thơng
thường như: validation(xác nhận hình thức), quản lý phiên làm
việc(sessions managemnet), …

SVTH: MAI VĂN NHẬT TIẾN

12


BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

 Thư viện AJAX: Một thư viện phong phú cho các chức năng của AJAX,

được cung cấp trong framework Rails. Code Ruby có thể sửdụng để tạo ra
code AJAX. Các đoạn mã kịch bản Java liên kết yêu cầu cho AJAX được
tạo ra tự động.
 Quy ước về cấu hình: Ruby on Rails khơng có bất kỳtập tin cấu hình XML.
Thay vào đó nó bao gồm các quy ước lập trình có thể sử dụng để xác định
các thơng số cấu hình.
 Debugging: Cung cấp chi tiết các bản ghi lỗi, làm cho việc gỡ rốiứng dụng
trở nên dễdàng hơn.
 Components(các thành phần): Các thành phần có thểđược sử dụng để lưu
trữ các đoạn code có thể tái sử dụng.
1.1.2.4 Kiến trúc MVC

Hình 1: Mơ hình MVC trong ruby
 Model
Tầng Model xử lý các nghiệp vụ của ứng dụng và trực tiếp thao tác với dữ liệu.
Trong Ruby on Rails, tầng model thường được sử dụng để tương tác với các thành
phần tương ứng với chúng trong cơ sở dữ liệu và validate dữ liệu.
 View

SVTH: MAI VĂN NHẬT TIẾN

13


BÁO CÁO KHÓA LUẬN

GVHD: NGUYỄN TRẦN QUỐC VINH

Tầng view hiển thị giao diện người dùng, trong Ruby on Rails các view là các file
HTML được nhúng cùng với các đoạn mã Ruby. Các đoạn mã Ruby được nhúng

trong HTML file là khá đơn giản, thường chỉ gồm các vòng lặp và các lệnh điều kiện
rẽ nhánh, nó được sử dụng để hiện thị dữ liệu lên form của view.
 Controller
Controller tương tác với model và view. Các request đến từ trình duyệt sẽ được xử
lý bởi controller, sau đó controller có thể sẽ tương tác với model để lấy dữ liệu sau đó
trả về cho view để hiển thị thơng tin.

1.1.2.5 Các thành phần của Rails

Hình 2: Kiến trúc tổng quan của Ruby on rails
 Action Mailer
Mô đun này chịu trách nhiên cung cấp các dịch vụ email. Nó xử lý các email đến
và cho phép tao mới các email. Mơ đun này có thể xử lý từ những email text đơn giản
đến những email có các định dạng phức tạp. Action Mailer được kế thừa từ Action

SVTH: MAI VĂN NHẬT TIẾN

14


×