1. Trang chủ
  2. » Mẫu Slide

Các vấn đề hiện đại Công nghệ phần mềm: Slide Ruby On Rails

30 714 2

Đ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 30
Dung lượng 480 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cha đẻ của Ruby là Matshumoto Yukishiro hay còn được biết đến với tên Matz. Ruby là sự kết hợp thành công của Smalltalk, Python, Perl,... Ruby mang đầy đủ các đặc điểm ưu việt của các ngôn ngữ đã có từ trước đó như: tính thông dịch (Perl, Python), hướng đối tượng (Smalltalk, Java). Phiên bản hiện tại của Ruby là 2.0.Ruby có cú pháp đơn giản. Mang đặc điểm của nhiều ngôn ngữ khác: hướng đối tượng (class, method, object…), chồng toán tử (operation overloading), Xử lý các ngoại lệ (Exception handling), trình gom và xử lí rác (garbage collection), nhập liệu tự động (dynamic loading) và độc lập trong cấu trúc, dependency injection, iterator. Ngoài các đặc điểm chung, Matz cũng đưa vào một số khái niệm khác như mixin, singleton method, renaming, closures… tính khả chuyển cao (high transportability) nên chạy được trên nhiều nên khác nhau như: Unices, Windows, DOS, OSX, OS2, Amiga… Ruby cũng hỗ trợ rất nhiều thư viện chuẩn cho lập trình viên.

Trang 1

Gi i thi u ngôn ng ới thiệu ngôn ngữ ệu ngôn ngữ ữ

Ruby

Trang 2

N i dung chính ội

I T ng quan v Ruby ổng quan về Ruby ề Ruby

II Ruby Advance

2

Trang 3

T ng quan v Ruby ổng quan về Ruby ề Ruby

Yukihiro Matsumoto (Matz)

Trang 4

T ng quan v Ruby ổng quan về Ruby ề Ruby

Ruby là:

 S k t h p thành công c a Smalltalk, Python, Perl ự kết hợp thành công của Smalltalk, Python, Perl ết hợp thành công của Smalltalk, Python, Perl ợp thành công của Smalltalk, Python, Perl ủa Smalltalk, Python, Perl

 Ngôn ng l p trình c p cao.ữ lập trình cấp cao ập trình cấp cao ấp cao

 Đượp thành công của Smalltalk, Python, Perl c thông d ch gi ng Perl, Pythonịch giống Perl, Python ống Perl, Python

 Hướng đối tượng giống Smalltalk, Javang đ i tống Perl, Python ượp thành công của Smalltalk, Python, Perl ng gi ng Smalltalk, Javaống Perl, Python

 Đượp thành công của Smalltalk, Python, Perl c vi t b i Matz năm 1993ết hợp thành công của Smalltalk, Python, Perl ởi Matz năm 1993

4

Trang 5

T ng quan v Ruby ổng quan về Ruby ề Ruby

M t s đ c tr ng c a Ruby: ội ố đặc trưng của Ruby: ặc trưng của Ruby: ưng của Ruby: ủa Ruby:

 Hướng đối tượng giống Smalltalk, Javang đ i tống Perl, Python ượp thành công của Smalltalk, Python, Perl ng thu n túyần túy

 D h c t p và nghiên c u.ễ học tập và nghiên cứu ọc tập và nghiên cứu ập trình cấp cao ứu

 Mã ngu n mồn mở ởi Matz năm 1993

 R t nhi u th vi nấp cao ều thư viện ư ện

 Code ít, l i ítỗi ít

Trang 6

T ng quan v Ruby ổng quan về Ruby ề Ruby

Variables:

 $ten_bien: bi n toàn c c, có th s d ng trong các class ết hợp thành công của Smalltalk, Python, Perl ục, có thể sử dụng trong các class ể sử dụng trong các class ử dụng trong các class ục, có thể sử dụng trong các class khác nhau

 @ten_bien: bi n th c th , có th s d ng trong các ết hợp thành công của Smalltalk, Python, Perl ự kết hợp thành công của Smalltalk, Python, Perl ể sử dụng trong các class ể sử dụng trong các class ử dụng trong các class ục, có thể sử dụng trong các class

phương thức khác nhau của 1 classng th c khác nhau c a 1 classứu ủa Smalltalk, Python, Perl

 @@ten_bien: bi n l p, gi ng bi n staticết hợp thành công của Smalltalk, Python, Perl ớng đối tượng giống Smalltalk, Java ống Perl, Python ết hợp thành công của Smalltalk, Python, Perl

 ten_bien: bi n localết hợp thành công của Smalltalk, Python, Perl

Pseudo-Variables:

 self: gi ng $this trong PHPống Perl, Python

 nil: gi ng null trong PHP ống Perl, Python

 …

6

Trang 7

T ng quan v Ruby ổng quan về Ruby ề Ruby

Trang 8

T ng quan v Ruby ổng quan về Ruby ề Ruby

Types

Integer Numbers, Floating Numbers, Boolean

String

String là lớp dùng để thể hiện chuỗi ký tự

string = ‘hello world!’

Trang 9

T ng quan v Ruby ổng quan về Ruby ề Ruby

Ruby Hashes

hsh = { "red" => 0xf00, "green" => 0x0f0 }

for key, value in hsh

puts “#{key} is #{value}”

Trang 10

T ng quan v Ruby ổng quan về Ruby ề Ruby

Trang 11

T ng quan v Ruby ổng quan về Ruby ề Ruby

Trang 12

T ng quan v Ruby ổng quan về Ruby ề Ruby

Trang 13

T ng quan v Ruby ổng quan về Ruby ề Ruby

end ary = [ "fred", 10, 3.14]

for j in ary puts “j = #{j}”

end

Trang 14

T ng quan v Ruby ổng quan về Ruby ề Ruby

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ác câu lệnh nằm trong cặp ngoặc nhọn hoặc trong lòng 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}

14

Trang 15

T ng quan v Ruby ổng quan về Ruby ề Ruby

class Hello [< Class]

def initialize( name )

Trang 16

T ng quan v Ruby ổng quan về Ruby ề Ruby

Trang 17

T ng quan v Ruby ổng quan về Ruby ề Ruby

M t s framework cho Ruby: ội ố đặc trưng của Ruby:

 Sinatra: Kích thướng đối tượng giống Smalltalk, Javac nhỏi vòng lặp

 Padrino: Kích thướng đối tượng giống Smalltalk, Javac trung bình

 Rails: Kích thướng đối tượng giống Smalltalk, Java ớng đối tượng giống Smalltalk, Javac l n

 Ngoài ra, còn nhi u framework khác nh : Camping, ều thư viện ư

Cramp, Cuba, Salad…

Trang 18

T ng quan v Ruby ổng quan về Ruby ề Ruby

Ưu điểm u đi m ểm

 Cú pháp trong sáng h n.ơng thức khác nhau của 1 class

 Hướng đối tượng giống Smalltalk, Javang đ i tống Perl, Python ượp thành công của Smalltalk, Python, Perl ng thu n ần túy

túy

 Kh năng khai thác văn ảy sang bước lặp kế tiếp

b n m nhảy sang bước lặp kế tiếp ạnh

 Có tính c u trúc và n ấp cao ổn

đ nh h n.ịch giống Perl, Python ơng thức khác nhau của 1 class

Nh ưng của Ruby:ợc điểm c đi m ểm

 S lống Perl, Python ượp thành công của Smalltalk, Python, Perl ng dòng code l n ớng đối tượng giống Smalltalk, Java

h n các ngôn ng khác ơng thức khác nhau của 1 class ữ lập trình cấp cao

nh Python, Perl …ư

 Là ngôn ng ch y khá ữ lập trình cấp cao ạnh

ch m.ập trình cấp cao

18

Trang 19

Ruby Advance

Ruby Object oriented

 Ruby là m t ngôn ng l p trình thu n h ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ữ lập trình cấp cao ập trình cấp cao ần túy ướng đối tượng giống Smalltalk, Java ng đ i t ống Perl, Python ượp thành công của Smalltalk, Python, Perl ng M i th trong ọc tập và nghiên cứu ứu Ruby đ u là Object, t các class cho đ n nh ng th c b n nh t: ều thư viện ừ các class cho đến những thứ cơ bản nhất: ết hợp thành công của Smalltalk, Python, Perl ữ lập trình cấp cao ứu ơng thức khác nhau của 1 class ảy sang bước lặp kế tiếp ấp cao.

strings, number, true và false, M t class b n thân nó là m t ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ảy sang bước lặp kế tiếp ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong Object,

đ ượp thành công của Smalltalk, Python, Perl c k th a t l p ết hợp thành công của Smalltalk, Python, Perl ừ các class cho đến những thứ cơ bản nhất: ừ các class cho đến những thứ cơ bản nhất: ớng đối tượng giống Smalltalk, Java Class.

 Gi ng nh Java, m t class bao g m ống Perl, Python ư ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ồn mở attributes và methods

 Khai báo class

class <class name>

code

end

 Đ nh nghĩa object ịch giống Perl, Python

Trang 20

Ruby Advance

 Attributes (Instance variables) c a Object là private v i các Object khác và ủa Smalltalk, Python, Perl ớng đối tượng giống Smalltalk, Java không th truy c p t bên ngoài c a class Chúng ch có s n đ i v i các object ể sử dụng trong các class ập trình cấp cao ừ các class cho đến những thứ cơ bản nhất: ủa Smalltalk, Python, Perl ỉ có sẵn đối với các object ẵn đối với các object ống Perl, Python ớng đối tượng giống Smalltalk, Java

mà đ ượp thành công của Smalltalk, Python, Perl c k th a ết hợp thành công của Smalltalk, Python, Perl ừ các class cho đến những thứ cơ bản nhất:

 Ngoài ra, t bên ngoài class, có th truy c p gián ti p đ n các attributes ừ các class cho đến những thứ cơ bản nhất: ể sử dụng trong các class ập trình cấp cao ết hợp thành công của Smalltalk, Python, Perl ết hợp thành công của Smalltalk, Python, Perl

thông qua các accessor method và setter method (t ương thức khác nhau của 1 class ng t các ph ự kết hợp thành công của Smalltalk, Python, Perl ương thức khác nhau của 1 class ng th c ứu get và set trong java)

Trang 21

Ruby Advance

Ruby Object oriented (ti p) ếp)

 Variables và Method của class: được share giữa các object

Trang 22

Ruby Advance

Ruby Object oriented (ti p) ếp)

3 level of access at instance method: private, protected, public Các

level này không áp d ng đ i v i instance và class variables ục, có thể sử dụng trong các class ống Perl, Python ớng đối tượng giống Smalltalk, Java

 Inheritance: ch h tr đ n k th a, không h tr đa k th a Thay ỉ có sẵn đối với các object ỗi ít ợp thành công của Smalltalk, Python, Perl ơng thức khác nhau của 1 class ết hợp thành công của Smalltalk, Python, Perl ừ các class cho đến những thứ cơ bản nhất: ỗi ít ợp thành công của Smalltalk, Python, Perl ết hợp thành công của Smalltalk, Python, Perl ừ các class cho đến những thứ cơ bản nhất: vào đó Ruby đ a ra khái ni m ư ện Mixins.

 Overriding: các l p con có th thay đ i hành vi c a các method đã ớng đối tượng giống Smalltalk, Java ể sử dụng trong các class ổn ủa Smalltalk, Python, Perl

đ ượp thành công của Smalltalk, Python, Perl c đ nh nghĩa s n l p cha ịch giống Perl, Python ẵn đối với các object ởi Matz năm 1993 ớng đối tượng giống Smalltalk, Java

 Overloading: gi ng n p ch ng toán t trong C++ ống Perl, Python ạnh ồn mở ử dụng trong các class

Trang 23

Ruby Advance

Ruby Database Access

 Các script Ruby tương thức khác nhau của 1 classng tác v i các database thông qua m t ớng đối tượng giống Smalltalk, Java ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong interface đ c l p v i c s d li u đột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ập trình cấp cao ớng đối tượng giống Smalltalk, Java ơng thức khác nhau của 1 class ởi Matz năm 1993 ữ lập trình cấp cao ện ượp thành công của Smalltalk, Python, Perl c cung c p b i ấp cao ởi Matz năm 1993

Ruby DBI module

 DBI t o ra m t l p tr u tạnh ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ớng đối tượng giống Smalltalk, Java ừ các class cho đến những thứ cơ bản nhất: ượp thành công của Smalltalk, Python, Perl ng hóa gi a code Ruby và ữ lập trình cấp cao

database n m bên dằng = giá_trị ướng đối tượng giống Smalltalk, Javai Nó đ nh nghĩa m t t p các ịch giống Perl, Python ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ập trình cấp cao

method, các variables và các conventions mà cung c p ấp cao

m t consistence database interface, đ c l p v i database ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ập trình cấp cao ớng đối tượng giống Smalltalk, Javađang đượp thành công của Smalltalk, Python, Perl c s d ng Nh v y, l p trình viên có th d ử dụng trong các class ục, có thể sử dụng trong các class ờ vậy, lập trình viên có thể dễ ập trình cấp cao ập trình cấp cao ể sử dụng trong các class ễ học tập và nghiên cứu

dàng giao tác v i database mà không c n quan tâm đ n ớng đối tượng giống Smalltalk, Java ần túy ết hợp thành công của Smalltalk, Python, Perl

Trang 24

DBD:Oracle

Postgr eSQL RDBMS

MySQL RDBMS

Oracle RDBMS DBD:MySQL

DBD:Postgr eSQL

 DBI layer: đ c l p v i database, cung c p m t t p các ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ập trình cấp cao ớng đối tượng giống Smalltalk, Java ấp cao ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ập trình cấp cao

phương thức khác nhau của 1 classng th c đ giao tác v i databaseứu ể sử dụng trong các class ớng đối tượng giống Smalltalk, Java

 DBD layer: ph thu c database, cung c p các drivers cho ục, có thể sử dụng trong các class ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ấp cao

t ng database từ các class cho đến những thứ cơ bản nhất: ương thức khác nhau của 1 classng ng M i drivers s thông d ch các ứu ỗi ít ẽ thông dịch các ịch giống Perl, Pythonrequest t DBI layer và ánh x chúng thành các request ừ các class cho đến những thứ cơ bản nhất: ạnhphù h p v i lo i database đang đợp thành công của Smalltalk, Python, Perl ớng đối tượng giống Smalltalk, Java ạnh ượp thành công của Smalltalk, Python, Perl c s d ng ử dụng trong các class ục, có thể sử dụng trong các class

Trang 25

Net::SMTP.new (<Server>, <Port>)

 Th c hi n k t n i đ n Server, v i account và password v i ự kết hợp thành công của Smalltalk, Python, Perl ện ết hợp thành công của Smalltalk, Python, Perl ống Perl, Python ết hợp thành công của Smalltalk, Python, Perl ớng đối tượng giống Smalltalk, Java ớng đối tượng giống Smalltalk, Java

đ nh d ng cho mã hóa là Authtype M c đ nh Authtype là ịch giống Perl, Python ạnh ặp ịch giống Perl, Pythoncraim_md5

Net::SMTP.start(<Domain>, <Account>, <Password>,

Trang 26

Ruby Advance

Ruby/TK Guid

 Tk là chu n giao di n đ h a c a Ruby.ẩn giao diện đồ họa của Ruby ện ồn mở ọc tập và nghiên cứu ủa Smalltalk, Python, Perl

 Tk cho phép t o GUI đ c l p v i platform Tk ch y trên ạnh ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ập trình cấp cao ớng đối tượng giống Smalltalk, Java ạnhWindows, Mac, Linux, và trên m i h đi u hành này, GUI ỗi ít ện ều thư viện

đượp thành công của Smalltalk, Python, Perl c t o ra s có giao di n gi ng nhau.ạnh ẽ thông dịch các ện ống Perl, Python

 Ứng dụng Tk là một hệ thống phân cấp các widget ng d ng Tk là m t h th ng phân c p các widget ục, có thể sử dụng trong các class ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ện ống Perl, Python ấp cao

Widget là component c b n nh t, b t kỳ widget nào ơng thức khác nhau của 1 class ảy sang bước lặp kế tiếp ấp cao ấp cao

cũng đượp thành công của Smalltalk, Python, Perl c đ t trong 1 widget khác và b n thân nó cũng ặp ảy sang bước lặp kế tiếp

ch a các widget khác Widget chính trong Tk là widget ứu

root, đượp thành công của Smalltalk, Python, Perl c t o ra b ng cách t o m t instance t TkRootạnh ằng = giá_trị ạnh ột ngôn ngữ lập trình thuần hướng đối tượng Mọi thứ trong ừ các class cho đến những thứ cơ bản nhất: root = TkRoot.new

26

Trang 27

Ruby Advance

Webservice

 S d ng giao th c SOAP (Simple Object Acces Protocol).ử dụng trong các class ục, có thể sử dụng trong các class ứu

 Trên Ruby, b n cài đ t SOAP có tên SOAP4R.ảy sang bước lặp kế tiếp ặp

 SOAP4R h tr 2 lo i SOAP server applications:ỗi ít ợp thành công của Smalltalk, Python, Perl ạnh

CGI/FastCGI based (SOAP::RPC::CGIStub)

Standalone (SOAP::RPC:StandaloneServer)

 SOAP::RPC::Driver h tr cho vi c vi t ng d ng SOAP ỗi ít ợp thành công của Smalltalk, Python, Perl ện ết hợp thành công của Smalltalk, Python, Perl ứu ục, có thể sử dụng trong các class

client applications

Trang 28

 K th a trong Rubyết hợp thành công của Smalltalk, Python, Perl ừ các class cho đến những thứ cơ bản nhất:

 Sending mail use a gmail

 Webservice

28

Trang 29

T ng k t ổng quan về Ruby ếp)

 Là s k t h p c a nhi u ngôn ng khác nhau.ự kết hợp thành công của Smalltalk, Python, Perl ết hợp thành công của Smalltalk, Python, Perl ợp thành công của Smalltalk, Python, Perl ủa Smalltalk, Python, Perl ều thư viện ữ lập trình cấp cao

 Mang u đi m đ c tr ng c a hư ể sử dụng trong các class ặp ư ủa Smalltalk, Python, Perl ướng đối tượng giống Smalltalk, Javang đ i tống Perl, Python ượp thành công của Smalltalk, Python, Perl ng thu n túy.ần túy

 S d ng công ngh m i nh t.ử dụng trong các class ục, có thể sử dụng trong các class ện ớng đối tượng giống Smalltalk, Java ấp cao

 Là ngôn ng khá m i.ữ lập trình cấp cao ớng đối tượng giống Smalltalk, Java

Trang 30

Thanks for watching

Ngày đăng: 20/05/2015, 08:10

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w