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

Slide Ruby on rails (Nâng cao)

54 1,5K 7

Đ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 54
Dung lượng 384,96 KB

Nội dung

Ruby on Rails (RoR) là một web framework được viết bằng ngôn ngữ Ruby và tất cả các ứng dụng trong Rails sẽ được viết bằng Ruby. Ruby on Rails được tạo ra để hỗ trợ các lập trình viên việc phát triển các phần mềm nền web một cách nhanh nhất có thể.Rails framework tận dụng các đặc điểm của ngôn ngữ Ruby. Yukishiro Matzumoto viết ra ngôn ngữ này vào năm 1995, nó khá giống với các ngôn ngữ thông dịch khác như Perl, Eiffel, Python…. Ruby là ngôn ngữ script, định nghĩa kiểu động và là một ngôn ngữ hướng đối tượng, nó được thiết kế với một cú pháp trong sáng, tạo cảm giác dễ đọc, và viết code ngắn gọn nhất có thể đối người dùng, ví dụ như nó không cần dấu chấm phẩy khi kết thúc câu lệnh, không cần các dấu ngoặc đơn khi khai báo các phương thức, có những đoạn code thậm chí được viết giống như việc chúng ta viết tiếng anh vậy.

Trang 1

Ruby On Rails

ROR

1

Trang 2

Phần 1: tóm tắt

 Giới thiệu

 Đặc trưng của ROR

 Định tuyến (routing) trong ROR

Trang 3

Giới thiệu ror

 Là một framework được viết bằng Ruby

 Cho phép tạo ra web app một cách nhanh nhất có thể bằng cách tận dụng các

đặc điểm của ngôn ngữ Ruby

Trang 4

Tại sao gọi là ruby on rails?

 Phần ngôn ngữ Ruby

 Phần Framework Rails bao gồm nhiều thư viện liên kết

 ROR được ra đời để trả lời câu hỏi về khó khăn trong việc phát triển và bảo trì

ứng dụng của lập trình viên

Trang 9

Đặc trưng của ror

 DRY – “Don’t Repeat Yourself” – không khuyến khích viết lại mã

 COC – Convention Over Configuration – tạo ra những quy ước về những gì sẽ

làm thay vì phải tự làm từng thứ một qua những file cấu hình

Trang 10

Đặc trưng của ror

 Tạo ra các giả định về những thứ mà nhà phát triển muốn bắt đầu

 Độc đoán, giả định đây là cách tốt nhất để làm việc

 Cho phép viết ít mã hơn

 Tiện lợi cho phát triển những ứng dụng lớn

Trang 11

Ví dụ

 Rails định nghĩa sẵn các thư mục stylesheets, images, JavaScript

 Tự động tạo các thư mục, các file cần thiết, database

Trang 13

Cấu trúc thư mục ứng dụng

File/Folder Purpose

app/ Chứa các controller, models, views, helpers, mailer và assets của ứng dụng

script/ Chứa rails script để khởi động ứng dụng

config/ Cấu hình routes, database

db/ Chứa các database chema, migration hiện tại

Gemfile

Gemfile.lock

Xác định những gem cần thiết cho ứng dụng Được sử dụng bởi Bundler gem

Trang 14

Cấu trúc thư mục ứng dụng

File/Folder Purpose

public/ Chứa các file tĩnh để hiển thị khi gặp lỗi

Rakefile Xác định vị trí và nạp các nhiệm vụ có thể chạy từ cmd.

README.rdoc Giới thiệu, cách cài đặt ứng dụng của bạn

Trang 15

Model – View – Controller

 Model: được sử dụng để tương tác với các thành phần tương ứng với chúng

trong database và validate dữ liệu

 View: hiển thị giao diện qua các file HTML nhúng cùng với các đoạn mã Ruby

(.html.erb)

 Controller: tương tác với model và view, xử lý các request đến từ browser, sau

đó tương tác với model để lấy dữ liệu và trả về cho view để hiển thị thông tin

Trang 16

Model – View – Controller

Trang 17

Định tuyến trong ror

Định nghĩa trong file routes.rb

 Một định tuyến cung cấp ánh xạ giữa các HTTP verbs (GET, POST, PATCH/PUT,

DELETE) và các URL đến các hành động (trong controller)

 Theo quy ước mỗi hành động cũng ánh xạ đến từng CRUD (CREATE, READ,

UPDATE, DELETE) trong database

Trang 18

Định tuyến trong ror

Ví dụ:

resources :posts trong routes.rb tạo ra 7 tuyến đường khác nhau trong ứng

dụng, tất cả đều ánh xạ tới Posts Controller

Nếu Rails không tìm thấy posts/new template, nó sẽ gọi một template có tên

là application/new (Vì PostsController kế thừa từ ApplicationController)

Trang 19

Định tuyến trong ror

HTTP Verb Path Action Used for

GET /posts/:id/edit edit Trả về HTML form để edit

PATCH/PUT /posts/:id update Update một post

Trang 20

Path và url helper

 Để tạo ra một route cần dùng đến một số helper

Đối với resource :posts

Trang 21

Các tài nguyên lồng nhau

 Có những tài nguyên là con của tài nguyên khác.

Trang 22

Các tài nguyên lồng nhau

 Đối với các route lồng nhau, bạn có thể khai báo:

Trang 23

HTTP Verb Path Action Used for

GET /posts/:post_id/comments index Hiển thị danh sách comment

GET /posts/:post_id/comments/new new Trả về HTML form để tạo

comment

POST /posts/:post_id/comments create Tạo comment mới

GET /posts/:post_id/comments/:id show Hiển thị một comment

GET /posts/:post_id/comments/:id/edit edit Trả về HTML form để edit

Trang 24

Tạo path và url từ object

 Rails có thể tạo đường dẫn và URL từ một mảng các tham số Ví dụ, bạn có

route sau:

resources :posts do

resources :comments

end

Trang 25

Tạo path và url từ object

Khi sử dụng post_comment_path, bạn có thể truyền vào một instance của Post

và Comment thay vì ID:

<%= link_to ‘Comment details’, post_comment_path(@post, @comment) %>

Trang 26

Tạo path và url từ object

Bạn cũng có thể sử dụng url_for với một bộ object, và Rails sẽ tự động xác

định bạn muốn route nào:

<%= link_to ‘Comment details’ , url_for([@post, @comment]) %>

Trong trường hợp này Rails sẽ sử dụng post_comment_path helper

Trang 27

Tạo path và url từ object

 Đối với những hành động khác, chỉ cần thêm action làm phần tử đầu tiên của

mảng:

<%= link_to ‘Edit comment’, [:edit, @post, @comment] %>

Trang 28

Phần 2 – tóm tắt

 Active Record là gì?

 Console Rails

 Cơ sở dữ liệu trong Rails

 Quản lý Relation với Active Record

Trang 29

Active Record là gì?

 Là thành phần cơ bản, quan trọng của Rails

 Điều khiển sự tương tác giữa các ứng dụng

 Thuộc tầng Model trong mô hình MVC

 Đại diện cho Business Data và Logic

 Đam bảo việc truy cập dữ liệu logic

 Cho phép đọc ghi dữ liệu

 Thao tác với DB không cần thông qua SQL

Trang 30

Object – Relational Mapping (ORM)

 ORM là cơ chế cho phép bạn xây dựng 1 ứng dụng mà thao tác

trên table trong database được đóng gói lại trong 1 business

class và không phải quan tâm nhiều đến việc viết query cho

mỗi lần truy xuất DB

Trang 31

ORM (tt)

 Thao tác truy cập, xử lý database một cách dễ dàng và nhanh chóng bạn

không cần phải  sử dụng SQL, mà chỉ cần sử dụng các API đơn giản

 Tự động gen ra các câu lệnh SQL như Insert, Update, Delete, Select

Trang 32

Active Record = ORM Framework

 Active Record cung cấp cho chúng ta các cơ chế

 Đại diện cho model và dữ liệu của chúng

 Đại diện cho sự liên kết giữa các model

 Đại diện cho các phân cấp kế thừa thông qua mô hình quan hệ

 Validate model trước khi chúng tồn tại trong DB

 Thực hiện các hoạt động DB một cách hướng đối tượng

Trang 33

Quy ước cấu hình trong active record

 Quy ước đặt tên:

 Tên bảng là dạng số nhiều của tên model

 Tên model gồm nhiều từ  tên bảng chứa các từ phân tách nhau bởi dấu gạch dưới

Trang 34

Quy ước cấu hình trong active record

 Quy ước lược đồ (schema)

Primary Key: cột số nguyên ID

Foreign Key: đặt theo mô hình, dùng để liên kết các bảng

Create_at: tự động thiết lập ngày và thời gian hiện tại khi ghi bản ghi lần đầu

Update_at: tự động thiết lập ngày và thời gian hiện tại khi ghi bản ghi được cập nhật

Trang 35

Rails console

 Là một tiện ích đi kèm với mỗi ứng dụng Rails, cho phép làm việc với các

model được liên kết với DB

 Khi khởi động Console, Rails thực hiện

 Rails liên kết với DB

Rails tải các class Active Record trong app/model

 Rails cho phép thao tác với model

Trang 37

Cơ sở dữ liệu trong Rails

 Column

 Các khái niệm liên quan đến name, type, primary, giống như ngôn ngữ

SQL

 Accessors

 Để thao tác với các cột trong 1 DB, ta chỉ cần gọi accessor như

photo.filename Với chức năng này, Rails sẽ giúp thao tác tìm kiếm CSDL

dễ dàng hơn

 ID

 Thuộc tính đặc biệt được Active Record tạo ra

Trang 38

Cơ sở dữ liệu trong Rails(tt)

 Method

Method Active Record

Find_by_<tên cột> Active Record sẽ thêm 1 method vào trong mỗi class được sử

dụng đối với mỗi cột trong CSDL

Trang 39

 Active Record cho phép kiểm tra tính hợp lệ của dữ liệu đầu vào.

 Ví dụ:

class Product < ActiveRecord::Base

attr_accessible :description, :image_url, :price, :title

validates :title, :description, :image_url, :presence => true

validates :price, :numericality => {:greater_than_or_equal_to => 0.01}

validates :title, :uniqueness => true validates :image_url, :format => {

:with => %r{\.(gif|jpg|png)$}i, :message => 'must be a URL for GIF, JPG or PNG image.' }

end

Trang 40

Quản lý Relation với Active Record

 Active Record lấy một phần của ngôn ngữ Ruby và sử dụng cách đặt tên theo

chuẩn làm đơn giản hóa việc tương tác giữa các table với nhau trong CSDL

 Cú pháp sử dụng có dạng:

relation :asociation :option1 => value, :option2 => value

Trang 41

Quản lý Relation với Active Record

• Relation: một method được xác định bởi Active Record để tạo relation giữa

join: nối các bảng thông qua từ khóa through

• Association(s): được hiểu như một ký hiệu đặc biệt dành cho mỗi relation

được tạo

• Option: cũng như mọi method được sử dụng trong Ruby, mỗi relation đều có

thể có một hoặc nhiều option

Trang 42

CRUD – đọc và ghi dữ liệu

 Active Record tự động tạo các phương thức cho phép ứng dụng có thể đọc và

thao tác với dữ liệu trong các bảng

 Create

 Read

 Update

 Delete

Trang 43

CRUD (tt)

Cho một model User với các thuộc tính name và occupation

 Create

user = User.create(name: "David", occupation: "Code Artist")

hoặc sử dụng phương thức new:

user = User.new

user.name = "David"

user.occupation = "Code Artist"

user.save

Trang 44

CRUD (tt)

 Read

users = User.all

user = User.first

david = User.find_by(name: 'David')

created_at in reverse chronological order

users = User.where(name: 'David', occupation: 'Code Artist').order('created_at DESC')

Trang 46

Active Record Migrations

 Migrations là một tính năng của Active Record cho phép bạn phát triển các

giản đồ cơ sở dữ liệu theo thời gian Thay vì sửa đổi trong lược đồ quan hệ

SQL, Migrations cho phép sử dụng dễ dàng Ruby DSL để mô sự thay đổi trên

các bảng

 Cú pháp:

$ rails generate migration <tên bảng> [<cột 1> :<kiểu 1> <cột 2> :<kiểu 2> ]

Trang 47

Active Record Migrations

 Ví dụ:

$ rails generate migration posts title :string content :text

Hoặc có thể truy cập file db/migrate/*create_posts.rb và sửa nội dung:

class CreatePosts < ActiveRecord::Migration

Trang 48

Part 3 – demo blog

Trang 49

Phần 4 – đánh giá

 Điểm yếu

 Kết luận

Trang 51

Điểm yếu

 Điểm yếu của Ruby: ngôn ngữ thông dịch

 Chạy chậm hơn các ngôn ngữ biên dịch khác như Java, C++/C

 Vấn đề hiệu năng:

 Không tối ưu hóa tốc độ

 Không hỗ trợ tốt về thread

 Quản lý bộ nhớ, thu gom rác

 Khó khăn trong phát triển tiếp một ứng dụng có sẵn

Trang 52

Kết luận

ROR thích hợp cho việc phát triển những ứng dụng vừa và nhỏ, yêu cầu thời

gian phát triển ngắn, dễ bảo trì, dễ đọc hiểu, không đòi hỏi hiệu năng cao

Trang 53

Tham khảo

 Agile Web Development with Rails Fourth Edition

 The Ruby Programming Language – O’ Relly

 https://www.ruby-lang.org/en/about/

Ngày đăng: 11/09/2015, 12:22

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w