1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận môn Nguyên lý các ngôn ngữ lập trình. Đề tài tìm hiểu ngôn ngữ lập trình RUBy và ứng dụng

23 955 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 246,55 KB

Nội dung

LỜI MỞ ĐẦUCuối thế kỷ 20 mở ra một thời đại mới , thời đại khoa học công nghệ đòi hỏi con người luôn luôn không ngừng tìm tòi học tập để tiến bộ .Với sự nhảy vọt của khoa học, các kỹ thu

Trang 1

MỤC LỤC

LỜI MỞ ĐẦU 2

Chương 1: Ngôn ngữ lập trình Ruby 3

1 Lịch sử hình thành 3

2 Giới thiệu về ngôn ngữ ruby 3

3 Xem mọi thứ như hướng đối tượng 3

4 Ruby là một ngôn ngữ mềm dẻo và linh hoạt 4

Chương 2: Ngôn ngữ Ruby 5

1 Biến trong Ruby 5

2 Các dạng dữ liệu trong ruby 5

2.1 Số 5

2.2 Ký tự 5

3 Mảng trong ruby 5

4 Cấu trúc điều khiển trong ruby 6

5 Vòng lặp trong ruby 7

5.1 While 7

5.2 Util 7

5.3 For 8

5.4 Cấu trúc liệt kê 8

5.5 Hash 8

5.6 Có một vấn đề trong đây là Blocks 9

6 Lớp và modules 10

7 Thừa kế trong Ruby 12

Chương 3: Framework Rails 14

1 Thế nào là framework 14

2 Mô hình MVC 14

2.1 Khái quát về mô hình MVC 14

2.2 Các thành phần của mô hình MVC 14

2.3 Ưu và nhược điểm của mô hình MVC 15

3 Ruby on Rails 15

3.1 Nguồn gốc của Rails 15

3.2 Mô hình MVC với Rails 16

3.3 Tự động sinh code trong Rails 16

3.4 Vòng đời phát triển một ứng dụng trong Rails 16

3.5 So sánh Ruby on Rails với Java và PHP 17

Chương 4: Cài đặt và phát triển môi trường Rails 19

1 Các môi trường cụ thể để phát triển Ruby on Rails 19

2 Cách cài đặt môi trường phát triển Ruby on Rails 19

3 Cài đặt công cụ hỗ trợ code 19

Chương 5: Những vấn đề cụ thể của Rails 20

1 Bộ công cụ để phát triển 20

2 Đặc điểm cơ bản với cơ sở dữ liệu của Ruby on Rails 22

2.1 Giới thiệu Active Record 22

2.2 Đánh giá Active Record với các hệ csdl khác 22

2.3 Thao tác sử dụng Active Record 22

Chương 6: Tổng kết 24

Phụ Lục 24

Tài liệu tham khảo 24

Trang 2

LỜI MỞ ĐẦU

Cuối thế kỷ 20 mở ra một thời đại mới , thời đại khoa học công nghệ đòi hỏi con người luôn luôn không ngừng tìm tòi học tập để tiến bộ Với sự nhảy vọt của khoa học, các kỹ thuật thực hiện trong ngành Công nghệ thông tin nói chung và các ngôn ngữ lâp trình nói riêng ngày càng phát triển chỉ trong thời gian ngắn nó đã đạt được những thành tựu to lớn ở hầu hết các lĩnh vực khác nhau trong đời sống xã hội Một trong những ngôn ngữ lập trình ra đời trong thời kỳ đó là ngôn ngữ lập trình Ruby Ruby là một ngôn ngữ lập trình hướng đối tượng cung cấp nhiều mẫu hình lập trình như lập trình hàm, hướng đối tượng, mệnh lệnh, phản xạ nó sử dụng

hệ thống kiểu biến động và tự động quản ký bộ nhớ Để tìm hiểu sâu hơn về cú pháp, ưu điểm của ngôn ngữ lập trình Ruby Trong bài tiểu luận này, nhóm em xin

trình bày về “Tìm hiểu về ngôn ngữ lập trình Ruby”

Em xin trân thành cảm ơn thầy TS.Nguyễn Hữu Đức đã hướng dẫn và tạo

mọi điều kiện tốt nhất để em hoàn thành tốt bài tiểu luận này.

Trang 3

Chương 1: Ngôn ngữ lập trình Ruby

1 Lịch sử hình thành

Ruby là một ngôn ngữ lập trình hướng đối tượng, có khả năng reflection Cú pháp

bị ảnh hưởng từ Ada và Perl với các đặc tính hướng đối tượng của Smalltalk, và cũng chia

sẻ một số đặc tính với Python, Lisp, Dylan và CLU

Ruby được tạo ra bởi Yukihiro Matz Matsumoto từ 24 tháng 2, 1993 và đưa ra bản chínhthứ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, anh đã đùa vớimộ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 Và bạncủa anh đã gợi ý cái tên Ruby 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

Tháng 9 năm 2005, phiên bản ổn định mới nhất là 1.8.3 Ruby 1.9 (với một số thayđổi) cũng đang trong quá trình phát triển

2 Giới thiệu về ngôn ngữ ruby

Thay vì định nghĩa về Ruby tôi xin trích nguyên văn lời giới thiệu về Ruby củacộng đồng Ruby như sau: “Ruby là một ngôn lập trình mã nguồn mở, linh hoạt, với một

sự nổi bật về sự đơn giản dễ dùng và hữu ích Nó có cú pháp tự nhiên dễ đọc và dễ dàng

Một vài đặc điểm nhận thấy ở ngôn ngữ Ruby là:

 Ruby có cú pháp ngắn nhưng có thể làm được nhiều việc

 Ruby là ngôn ngữ rất hướng đối tượng

3 Xem mọi thứ như hướng đối tượng

Với Ruby, mọi thứ đều là một đối tượng Mọi bit thông tin hay code đều có thểđược đưa ra cho chính chúng việc sở hữu các thuộc tính hay hành động Trong lập trìnhhướng đối tượng thì các thuộc tính gọi là các biến thực thể (instance variables) và cáchành động gọi là các phương thức Ruby là một hướng đối tượng “tinh khiết”, điều này cóthể thấy bằng một bit của code mà thực hiện một hành động với một con số Số 5 cũngđược coi là một đối tượng và có phương thức làm times

Đoạn code dưới sẽ in ra 5 lần dòng “We *love* Ruby”:

5.times{ print "We *love* Ruby" }

Đa số các ngôn ngữ khác, con số và một số kiểu dữ liệu nguyên thủy khác thì không đượccoi là hướng đối tượng Nhưng Ruby theo sự ảnh hưởng lớn của ngôn ngữ Smalltalk bằngviệc đưa ra các phương thức và thực thể biến tới tất cả các kiểu của nó Điều này tạo nên

sự thống nhất và dế dàng khi sử dụng Ruby với tất cả các đối tượng

Trang 4

4 Ruby là một ngôn ngữ mềm dẻo và linh hoạt

Ruby được coi là một ngôn ngữ mềm dẻo và linh hoạt, từ khi nó cho phép ngườidùng tự do sửa đổi cả phần cốt lõi của nó Các phần cốt lõi của Ruby có thể được rời đihoặc định nghĩa lại như ý muốn Các phần hiện hữu có thể được thêm vào Ruby cố gắngkhông hạn chế các nhà lập trình

Trang 5

Chương 2: Ngôn ngữ Ruby

1 Biến trong Ruby

Biến của ruby không cần khai báo kiểu Khi gán giá trị cho biến nó sẽ tự động nhận kiểu,nhận các giá trị cho biến

Ví dụ:

User =”user”

Puts user => user

Khai báo biến của ruby làm cho ngôn ngữ trở lên linh hoạt hơn

Biến toàn cục của ruby:

khi thêm @ trước biến thì nó trở thành biến toàn cục để sử dụng khi tác động trongchương trình

Còn khi không có @ thì nó là biến địa phương chỉ được sử dụng trong một phần nào đócủa chương trình

Mỗi biến của ruby là một đối tượng Nhờ vào vấn đề này, bạn có thể tác động đến từngvấn đề của biến: như chuyển kiểu, ghép các biến với nhau

Nhờ có tính chất trên các biến trong ruby có thể tương tác với nhau một cách dễ dàng

Ví dụ:

@u =”Ngon ngu”

“{#@u} lap trinh”=> “Ngon ngu lap trinh”

Cũng có thể đảo ngược chuỗi hoặc viết hoa …

2 Các dạng dữ liệu trong ruby

Ruby là một ngôn ngữ hướng đối tượng Ở đây các thành phần dữ liệu từ số, ký tự,mảng đều được xây dựng trên cơ sở các lớp

2.1 Số

Cấu trúc phân cấp dữ liệu dạng số trong Ruby: Các dang dữ liệu kiểu số được xâydựng từ lớp Numeric Kiểu số nguyên: Integer có hai dạng là Fixnum với độ dài 31 bits vàBignum có độ dài tùy ý Kiểu số thực được thể hiện qua lớp Float Bên cạnh đó một sốkiểu dữ liệu khác không có sẵn nhưng được đinh nghĩa trong thư viện chuẩn của Ruby

Với dạng chuối trong dấu nháy kép “” thì nhiều ký tự đặc biệt được hỗ trợ, ví dụ như \n, \tnhư trong java Bên cạnh đó chuối trong dấu nháy kép còn có thể hiện thị kết quả của biểuthức trong nó thông qua ký tự #

3 Mảng trong ruby

Trang 6

Mảng có thể khai báo trực tiến hoặc thông qua đối tượng Array.

Ví dụ:

Arr = [1,2,3,4,5,6]

Arr = Array.new

Cách đánh chỉ số mảng trong Ruby được đánh từ 0 đến số phần tử -1

Ruby việc sắp xếp các thành phần mảng khá linh hoạt và mềm dẻo

Ta có thể khai báo mảng một chiều gồm các phần tử đơn: arr = [1,2,3,4,5,6].

Hoặc mảng lồng: arr = [[1,2],[3,4,5,6],[7,8,9]].

Hoặc mảng được trích xuất subArr = arr[0,2] # subArr = [[1,2],[3,4,5,6]].

Các mảng có thể tương tác với nhau thông qua các toán tử như +,-,*…

Với phép + ta có thể cộng hai mảng với nhau: arr = [1,2,3] +[4] # arr =[1,2,3,4]

Với phép - các phần tử mảng ở mảng trừ sẽ loại bỏ các phần tử có trong mảng bị trừ

Arr = [1,2,3] -[2] # arr =[1,3]

Với phép * ta có thể nhân một mảng với một số và kết quả cho ta số phần tử mảng được

lặp lại theo giá trị được nhân: arr = [1,2,3]*2 # arr = [1,2,3,1,2,3]

Các mảng có thể đính thêm phần tử với phép toán <<: arr = [1,2,3]<<4 # arr= [1,2,3,4]

Và các phép so sánh: |, & Với | các giá trị trùng lặp của hai mảng sẽ được bỏ đi ( kể cả

các phần tử trùng lặp trong 1 mảng arr = [1,2,2,4,3,4] | [] # arr [1,2,4,3] Trong khi đó với phép toán & các phần tử trùng nhau được giữ lại (và không lặp) arr = [1,2,2,4,3,4] & [4,4] # arr[4]

4 Cấu trúc điều khiển trong ruby

Trang 7

unless cũng có thể được sử dụng với else như trường hợp của

if.

case

Case trong Ruby không lằng nhằng như trong java ( quên break là cả một vấn đề rồi) Ởđây có thể sử dụng cấu trúc elseif để đưa ra khối điều khiển giống như trong khối điềukhiển case, tuy nhiên cú pháp case vấn thường được sử dụng nhiều hơn

when x==2 then puts "x is 2"

when x<3 then "three"

Trang 8

5.3 For

for <<variables>> in <<collection>> do

<<actions>>

end

5.4 Cấu trúc liệt kê

Với đối tượng số

Trang 9

mảng Array chỉ chấp nhận các chỉ số (index) là dạng Integer thì mảng Hash chấp nhận bất

kỳ Object nào vẫn được xem như một chỉ số

Ví dụ: với mảng Array

persons = ["Ho Chi Minh","Nhan vat lich su","yeu nuoc"]

Giả sử nếu muốn biết chính xác tên nhân vật là gì, xếp loại nhân vật, tính cách là gì ,… thìphải cần tới class Hash

persons = {

"ten"=>"Ho Chi Minh",

"xep loai"=>"Nhan vat lich su",

"tinh cach"=>"yeu nuoc"

}

Với mảng Hash, ta có persons[xep loai] = "Nhan vat lich su"

Mảng Hash không sử dụng chỉ số (index) để truy vấn dữ liệu mà sử dụng từ khóa (clef) đểliên kết với dữ liệu liên quan

Mảng Hash cũng gi ống như mảng Array nên được thừa hưởng phương thức each

Persons = {

"ten" => "Ho Chi Minh",

"xep loai" => "Nhan vat lich su",

"tinh cach" => "yeu nuoc"

}persons.each do |clef,value|

puts clef + "=>" + valueend

5.6 Có một vấn đề trong đây là Blocks

Trong quá trình sử dụng các cấu trúc liệt kê, chúng ta thường thấy một nhóm cáccâu lệnh nằm trong cặp ngoặc nhọn hoặc trong long khối begin/end Người ta gọi đó làblock Thông thường block bao giờ cũng được thực hiện sau lời gọi hàm

Ví dụ:

10.downto(0){|x| print x}

Ở đây khối |x| print x được thực hiện sau lời gọi hàm và đó là block Theo quy ước thì với

với block trong phạm vi một dòng ta nên dùng ngoặc nhọn còn với block có nhiều dòng ta

Trang 10

Một điểm đặc biệt ở đây là nhiều giá trị có thể đồng thời được trả về trong một phươngthức.

Các giá trị trả về sẽ được tập hợp trong một mảng

procs và lambdas là hai cách thức để đưa blocks vào trong đối tượng Tùy thuộc vào cách

mà đối tượng được tạo ra ta sẽ có procs haylambdas.

Closures là một khái niệm chỉ một hàm sử dụng một biến giới hạn Thông thường

closures dùng để nói đến hàm lồng Ở đó hàm bên trong sử dụng biến được khai báo bởihàm chứa nó Ở Ruby, khái niệm này thường được thể hiện bởi các khối lambdas hoặcprocs

Trang 11

Đối với các hàm việc xác định khả năng truy cập được thông qua các từ khóa

public , private, protected giống như Java Tuy nhiên ở Java chúng ta có thêm default và được coi như mặc định trong khai báo còn ở đây public được coi là mặc định trong khai báo Public cho phép các hàm được truy nhập từ bất kỳ đâu trong khi private chỉ cho các hàm được truy nhập từ các thành phần khác trong lớp đó và các lớp con của nó, protected giống private chỉ khác ở chỗ các hàm protected có thể được gọi bởi các thực thể của chính lớp đó hoặc với sefl.

Trang 12

là public.

7 Thừa kế trong Ruby

Là ngôn ngữ hướng đối tượng nên Ruby có đầy đủ các tính chất như tính đa hình,đóng gói…và kế thừa

Child <>def printOut

puts "This is Child Class"

Trang 13

Chương 3: Framework Rails

Đến với chương này các bạn có thể biết được thế nào là một framework, mô hình kiếntrúc của nó, những đặc điểm của framework Rails và những đánh giá của nó với cácframework khác

1 Thế nào là framework

Framework là những thư viện code, được thiết kế để giúp đỡ trong việc phát triểnphần mềm Framework tạo ra một bộ ứng dụng thiết kế dựa vào những thư viện phát triểntheo ngôn ngữ để tạo người lập trình dễ dàng để phát triển những phần mềm một cáchnhanh nhóng và hiệu quả

Khi phát triển một phần mềm dựa vào một framework nào đó thì việc phát triển nó trở lênthuận lợi với người lập trình bởi vì nó giảm bớt thời gian tập trung vào việc code hơn để

có thể tập trung vào việc giải quyết những vấn đề liên quan đến logic điều đó làm tănghiệu quả của người lập trình

2 Mô hình MVC

Ngày này các framework về thiết kế website hầu như đều sử dụng mô hình MVC

để phát triển vậy mô hình này có những đặc điểm gì mà các framework được sử dụng nó

để phát triển như vậy?

2.1 Khái quát về mô hình MVC

MVC là viết tắt của Model – View – Controller Nó là một kiến trúc phần mêmhay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm, giúp cho người lập trìnhtách ứng dụng của họ thành ba thành phần khác nhau Model, View và Controller Mỗithành phần có một nhiệm vụ riêng biệt và độc lập với thành phần khác

2.2 Các thành phần của mô hình MVC

Dưới đây là sơ đồ của mô hình MVC:

Trang 14

Các thành phần trong mô hình MVC có mỗi quan hệ chặt chẽ với nhau Các thao tác của

nó được lặp lại mỗi khi tiếp nhận yêu cầu của người dùng

Như hình trên có th ể thấy mô hình MVC gồm 3 thành phần chính: Model, View vàController

Model:

Gồm mọi hoạt động liên quan đến cơ sở dữ liệu, các thao tác với cơ sở dữ liệu đều đượcthực hiện ở đây gồm: chuẩn hóa, phân tích đánh giá…

View:

Phần này liên quan đến người dùng Nó là phần hiển thị với người dùng Nó đưa thông tin

cụ thể đến với người dùng một cách cụ thể nhất Và nó cũng nh ận tương tác giữa ngườidùng và hệ thống

Controller

Controller chịu trách nhiệm phân phối ứng dụng Nó nhận sự kiện từ bên ngoài, rồi tươngtác với Model để xử lý thông tin Sau khi xử lý tác động liên quan đến hệ thống thì nótruyền đến View để hiển thị với người dùng

Như vậy dễ dàng thấy rằng sự tương tác giữa các thành phần trong mô hình đều thông quacontroller Controller là cầu lối giữa View và Model Nó điều khiển dữ liệu rồi sau đó đưa

ra những thông tin cần thiết cho người dùng

2.3 Ưu và nhược điểm của mô hình MVC

 Ưu điểm của mô hình MVC:

 Mô hình MVC làm tăng khả năng phát triển và mở rộng ứng dụng

 Mô hình MVC khiến cho việc bảo trì trở lên dễ dàng hơn: vì các thành phần phụthuộc thấp với nhau, vì vậy khi thay đổi một cái thì không ảnh hưởng đến cáikhác

 Các thành phần trong mô hình MVC được sử dụng lại: ví dụ một model có thể sửdụng cho nhiều phần hiển thị và ngược lại cũng vậy

 Mô hình MVC có thể phân tán: sự chia sẽ cách biệt về code giữa các thành phần

có ý nghĩa là mỗi thành phần trong chúng có thể ở trên một máy tính riêng, nếuthấy cần thiết

 Nhược điểm của mô hình MVC:

 Đối với dự án nhỏ áp dụng mô hình MVC gây cồng kềnh, tốn thời gian trong quátrình phát triển và tốn thời gian luân chuyển qua các tầng

3 Ruby on Rails

3.1 Nguồn gốc của Rails

Rails ra mắt công chúng lần đầu tiên vào năm 2004, Rails thoạt đầu được dùng như

là nền tảng cho một công cụ quản lý dự án được đặt tên là Basecamp và được tạo ra bởinhà phát triển web David Heinemeier Hansson, một nhân viên của công ty phát triển web37signals (Mỹ) Ban đầu họ xây dựng Rails không phải với mục đích là xây dựng ra mộtframework riêng, chủ tâm ban đầu là dùng nó để xây dựng các ứng dụng khác của37signals Sau đó Heinemeier Hansson thấy tiềm năng của nó giúp cho anh ấy làm cáccông việc dễ dàng hơn bằng cách rút ra các tính năng phổ biến như trừu tượng cơ sở dữliệu và khuôn mẫu(template) bên trong, và sau đó nó trở thành phiên bản đầu tiên đượctung ra của Ruby on Rails

Ngày đăng: 17/04/2016, 21:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w