Professional Documents
Culture Documents
Đồ Án Tốt Nghiệp CNTT Tìm Hiểu Về Ruby on Rails, Viết Chương Trình Demo Quản Lý Trung Tâm Tin Học
Đồ Án Tốt Nghiệp CNTT Tìm Hiểu Về Ruby on Rails, Viết Chương Trình Demo Quản Lý Trung Tâm Tin Học
Tp.HCM Ngày……tháng……năm………
(Ký Tên)
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
Tp.HCM Ngày……tháng……năm………
(Ký Tên)
LỜI CẢM ƠN
Trong suốt quá trình thực hiện đề tài, chúng em luôn nhận được sự quan tâm giúp đỡ và
đóng góp nhiệt tình của quý thầy cô trường Đại học Công nghiệp Thành phố Hồ Chí
Minh, khoa Công nghệ thông tin.
Trước hết, tôi xin chân thành cám ơn đến quý thầy cô trường Đại học Công nghiệp Tp
HCM, khoa CNTT đã tận tình dạy bảo tôi trong suốt thời gian học tập tại trường.
Tiếp đó, chúng em xin cám ơn đến Nguyễn Minh Nghị, project manger công ty
LARION, đã không quản khó nhọc cũng như công sức, truyền đạt một số kinh nghiệm
cần thiết.
Chúng xin gửi lời biết ơn sâu sắc đến giáo viên hướng dẫn Từ Thị Xuân Hiền đã dành
rất nhiều thời gian và tâm huyết hướng dẫn nghiên cứu và giúp chúng em hoàn thành đồ
án tốt nghiệp.
Mặc dù chúng em đã có nhiều cố gắng và hoàn thiện đồ án với tất cả tâm huyết và đam
mê, tuy nhiên không thể tránh khỏi những thiếu sót, rất mong nhận được đóng góp quý
báu của quý thầy cô và các bạn.
MỤC LỤC
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
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)
• 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 để đoá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 luôn nằm trong ‘vùng kiểm soá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ới hạn bạn về vấn đề HĐH và pháp lý . Ruby có thể chạy trên Unix hay Linux ,
Microsoft Windows,….
• 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:
• == 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à ==)
5.1. 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ó quá í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à quá đủ dành cho bạn. Ngoà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ó.
5.2. 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.
5.3. 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ái plugin 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í.
5.4. 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ừ Eclipse nê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
SV thực hiện: Hoàng Việt Anh – Nguyễn Phong Trương
8
Đề tài: Tìm hiểu về Ruby on Rails, viết chương trình demo quản lý trung tâm tin học.
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ới bắ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ó.
5.5. 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 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 quá ì ạch.
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 chia sẻ 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.
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.
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
− 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), …
− 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
4.2 Views
Views đại diện cho giao diện người của ứng dụng. Trong Ruby on Rails, Views thường là
file HTML với mã nhúng là Ruby thực hiện các tác vụ chỉ liên quan tới trình bày dữ liệu.
Views xử lý công việc cung cấp dữ liệu cho trình duyệt web hoặc công cụ khác được sử
dụng để thực hiện để yêu cầu từ ứng dụng.
4.3 Cotroller
Cung cấp “chất kết dính” giữ models và views. Trong Rails, controllers có trách nhiệm
xử lý các yêu cầu gửi đến từ các trình duyệt web, truy vấn các model dữ liệu và truyền
các dữ liệu này lên trên views để trình bày nội dung.
5.7. Railties
Railties là code Rails cốt lõi để xây dựng ứng dụng Rails và “kết dính” nhiều framework
và plugin lại với nhau trong bất kỳ ứng dụng Rails nào.
Bước 2: Sau khi download xong bạn mở thư mục chứa file vừa download và chạy file
exe. Bắt đầu cài đặt click Install