SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Ruby on Rails
Overview
Koki Shimizu
(u2daijibrother@gmail.com)
13年4月18日木曜日
What is Rails?
Rails is a web application development
framework written in the Ruby.
13年4月18日木曜日
The Rails philosophy includes
several guiding principles
•DRY (Don’t Repeat Yourself)
•CoC (Convention over Configuration)
•REST(REpresentational State Transfer)
Railsはソフトウェア開発上重要な、いくつかの設計実装
手法、考え方を元に作成されている。
13年4月18日木曜日
DRY
Every piece of knowledge must have a
single, unambiguous, authoritative
representation within a system.
すべての知識はシステム内において、単一、かつ明確な、そして
信頼できる表現になっていなければならない。
13年4月18日木曜日
DRY
• Documents and Code
• Code Comments
• State
• Class/Utlity
13年4月18日木曜日
CoC
Design paradigm to decrease the
number of decisions that developers
need to make, gaining simplicity, but not
necessarily losing flexibility.
設定より規約。規約に従った実装を行い、開発者に決
定させるべきことを少なくし、単純さを維持する。
13年4月18日木曜日
CoC
• Mapping File ( Class to DB Table )
• Class Name/ Method Name
• Folder Structure/ Namespace Design
• Template Method/ Class Design
13年4月18日木曜日
REST
REST is an architectural style and the
best pattern for web application.
RESTは、アーキテクチャスタイルの一つであり、良
いWEBアプリケーションのためのパターンである。
13年4月18日木曜日
REST
Resource Resource
Each request includes all of the
information.
HTTP
The set of operations supported
by the web service using HTTP
methods as known well-defined-
interface (e.g., GET, PUT, POST, or
DELETE).
Uniform Interface
Stateless
HTML,XML or JSON etc
HTML,XML or JSON etc
Response is cacheable to
improving scalability and
performance.
Cacheable
KEY GOALS of REST include:
•Scalability of component interactions
•Generality of interfaces
•Independent deployment of components
•Intermediary components to reduce latency, enforce security and encapsulate
legacy systems
13年4月18日木曜日
MVC
Model-View-Controller
• Isolation of business Logic from the user interface
• Ease of keeping code DRY
• Making it clear where different types of code belong for
easier maintenance
13年4月18日木曜日
MVC
Model-View-Controller
• Isolation of business Logic from the user interface
• Ease of keeping code DRY
• Making it clear where different types of code belong for
easier maintenance
Controller
View Model Storage
13年4月18日木曜日
MVC
Model-View-Controller
• Isolation of business Logic from the user interface
• Ease of keeping code DRY
• Making it clear where different types of code belong for
easier maintenance
①
Controller
View Model Storage
Request to controller from user interface
13年4月18日木曜日
MVC
Model-View-Controller
• Isolation of business Logic from the user interface
• Ease of keeping code DRY
• Making it clear where different types of code belong for
easier maintenance
①
②
Controller
View Model Storage
Request to controller from user interface
Controller calls Model and gets results
13年4月18日木曜日
MVC
Model-View-Controller
• Isolation of business Logic from the user interface
• Ease of keeping code DRY
• Making it clear where different types of code belong for
easier maintenance
①
②③
Controller
View Model Storage
Request to controller from user interface
Controller calls Model and gets results
Controller puts View the results
13年4月18日木曜日
MVC
Model-View-Controller
• Isolation of business Logic from the user interface
• Ease of keeping code DRY
• Making it clear where different types of code belong for
easier maintenance
①
②③④
Controller
View Model Storage
Request to controller from user interface
Controller calls Model and gets results
Controller puts View the results
View is rendered user interface
13年4月18日木曜日
MVC on Rails
13年4月18日木曜日
MVC on Rails
Controller
View Model DB
13年4月18日木曜日
MVC on Rails
Controller
View Model DB
Router
13年4月18日木曜日
MVC on Rails
①
Controller
View Model DB
Router
Browser posts request to Router
13年4月18日木曜日
MVC on Rails
①
Controller
View Model DB
Router discovers controller to execute and Rails executes the controller
Router
②
Browser posts request to Router
13年4月18日木曜日
MVC on Rails
①
③
Controller
View Model DB
Router discovers controller to execute and Rails executes the controller
Controller calls Model and gets results
Router
②
Browser posts request to Router
13年4月18日木曜日
MVC on Rails
①
③④
Controller
View Model DB
Router discovers controller to execute and Rails executes the controller
Controller calls Model and gets results
Controller puts View the results
Router
②
Browser posts request to Router
13年4月18日木曜日
MVC on Rails
①
③④⑤
Controller
View Model DB
Router discovers controller to execute and Rails executes the controller
Controller calls Model and gets results
Controller puts View the results
View is rendered user interface
Router
②
Browser posts request to Router
13年4月18日木曜日
Model13年4月18日木曜日
View•eRuby
•Sassy-CSS
•JavaScript(CoffeeScript)
•AJAX
•JQuery
13年4月18日木曜日
Controller
•Redirect
•Session Manager
13年4月18日木曜日
Development Flow
on Rails
ControllerView
Model
Scaffold
Migration
One Iteration
13年4月18日木曜日

Contenu connexe

En vedette

La Salle Guest Speaking Presentation
La Salle Guest Speaking PresentationLa Salle Guest Speaking Presentation
La Salle Guest Speaking PresentationCasey Zweigle
 
Mango health benefits By Allah Dad khan
Mango health benefits By Allah Dad khanMango health benefits By Allah Dad khan
Mango health benefits By Allah Dad khanMr.Allah Dad Khan
 
National Mango Board 2016 Programs
National Mango Board 2016 ProgramsNational Mango Board 2016 Programs
National Mango Board 2016 ProgramsKen Molay
 
Mango cultivation in bangladesh
Mango cultivation in bangladeshMango cultivation in bangladesh
Mango cultivation in bangladeshNazmul Ahsan
 
Mango_Pitch_Presentation_by_pana
Mango_Pitch_Presentation_by_panaMango_Pitch_Presentation_by_pana
Mango_Pitch_Presentation_by_panaPanajot Jelev
 
Project on mango juice industry Ltd.
Project on mango juice industry Ltd.Project on mango juice industry Ltd.
Project on mango juice industry Ltd.Md Mir Belal
 
Production technology of Mango
Production technology of MangoProduction technology of Mango
Production technology of MangoJunaid Abbas
 
Solar mango corporate presentation
Solar mango   corporate presentationSolar mango   corporate presentation
Solar mango corporate presentationAnjali Khandelwal
 

En vedette (13)

La Salle Guest Speaking Presentation
La Salle Guest Speaking PresentationLa Salle Guest Speaking Presentation
La Salle Guest Speaking Presentation
 
Mango health benefits By Allah Dad khan
Mango health benefits By Allah Dad khanMango health benefits By Allah Dad khan
Mango health benefits By Allah Dad khan
 
Mango
MangoMango
Mango
 
Mango
MangoMango
Mango
 
National Mango Board 2016 Programs
National Mango Board 2016 ProgramsNational Mango Board 2016 Programs
National Mango Board 2016 Programs
 
Mango cultivation in bangladesh
Mango cultivation in bangladeshMango cultivation in bangladesh
Mango cultivation in bangladesh
 
Mango_Pitch_Presentation_by_pana
Mango_Pitch_Presentation_by_panaMango_Pitch_Presentation_by_pana
Mango_Pitch_Presentation_by_pana
 
Project on mango juice industry Ltd.
Project on mango juice industry Ltd.Project on mango juice industry Ltd.
Project on mango juice industry Ltd.
 
Common Varieties of Mango
Common Varieties of MangoCommon Varieties of Mango
Common Varieties of Mango
 
Mango's PowerPoint
Mango's PowerPointMango's PowerPoint
Mango's PowerPoint
 
Production technology of Mango
Production technology of MangoProduction technology of Mango
Production technology of Mango
 
Mango Processing PPT of Pakistan
Mango Processing PPT of PakistanMango Processing PPT of Pakistan
Mango Processing PPT of Pakistan
 
Solar mango corporate presentation
Solar mango   corporate presentationSolar mango   corporate presentation
Solar mango corporate presentation
 

Similaire à Ruby on Rails Overview

[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力オラクルエンジニア通信
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 
ActiveResourceモデルによるAPIの隠蔽の怖い話 ~レスポンスタイムへの致命的影響~ at #shinjukurb
ActiveResourceモデルによるAPIの隠蔽の怖い話~レスポンスタイムへの致命的影響~ at #shinjukurbActiveResourceモデルによるAPIの隠蔽の怖い話~レスポンスタイムへの致命的影響~ at #shinjukurb
ActiveResourceモデルによるAPIの隠蔽の怖い話 ~レスポンスタイムへの致命的影響~ at #shinjukurbKoichiro Sumi
 
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsShotaro Suzuki
 
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】Masato Mori
 
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステムOCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステムオラクルエンジニア通信
 
オープンキャンパス体験授業20150802
オープンキャンパス体験授業20150802オープンキャンパス体験授業20150802
オープンキャンパス体験授業20150802義広 河野
 
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020SORACOM,INC
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
CodeIgniter 〜 2008年大躍進のPHPフレームワーク
CodeIgniter 〜 2008年大躍進のPHPフレームワークCodeIgniter 〜 2008年大躍進のPHPフレームワーク
CodeIgniter 〜 2008年大躍進のPHPフレームワークkenjis
 
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界オラクルエンジニア通信
 
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介Yasushi Ishikawa
 
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...TIS Inc.
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)TIS Inc.
 
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~Saki Homma
 

Similaire à Ruby on Rails Overview (20)

[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
ActiveResourceモデルによるAPIの隠蔽の怖い話 ~レスポンスタイムへの致命的影響~ at #shinjukurb
ActiveResourceモデルによるAPIの隠蔽の怖い話~レスポンスタイムへの致命的影響~ at #shinjukurbActiveResourceモデルによるAPIの隠蔽の怖い話~レスポンスタイムへの致命的影響~ at #shinjukurb
ActiveResourceモデルによるAPIの隠蔽の怖い話 ~レスポンスタイムへの致命的影響~ at #shinjukurb
 
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
 
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
 
Oracle APEX概要
Oracle APEX概要Oracle APEX概要
Oracle APEX概要
 
第9回しゃちほこオラクル倶楽部
第9回しゃちほこオラクル倶楽部第9回しゃちほこオラクル倶楽部
第9回しゃちほこオラクル倶楽部
 
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステムOCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
 
オープンキャンパス体験授業20150802
オープンキャンパス体験授業20150802オープンキャンパス体験授業20150802
オープンキャンパス体験授業20150802
 
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
CodeIgniter 〜 2008年大躍進のPHPフレームワーク
CodeIgniter 〜 2008年大躍進のPHPフレームワークCodeIgniter 〜 2008年大躍進のPHPフレームワーク
CodeIgniter 〜 2008年大躍進のPHPフレームワーク
 
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
 
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
 
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
Lagom で学ぶ Reactive Microservices Architecture @ 第3回Reactive System Meetup i...
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
 
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
 
Devguide 9911j
Devguide 9911jDevguide 9911j
Devguide 9911j
 

Dernier

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Dernier (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

Ruby on Rails Overview

  • 1. Ruby on Rails Overview Koki Shimizu (u2daijibrother@gmail.com) 13年4月18日木曜日
  • 2. What is Rails? Rails is a web application development framework written in the Ruby. 13年4月18日木曜日
  • 3. The Rails philosophy includes several guiding principles •DRY (Don’t Repeat Yourself) •CoC (Convention over Configuration) •REST(REpresentational State Transfer) Railsはソフトウェア開発上重要な、いくつかの設計実装 手法、考え方を元に作成されている。 13年4月18日木曜日
  • 4. DRY Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. すべての知識はシステム内において、単一、かつ明確な、そして 信頼できる表現になっていなければならない。 13年4月18日木曜日
  • 5. DRY • Documents and Code • Code Comments • State • Class/Utlity 13年4月18日木曜日
  • 6. CoC Design paradigm to decrease the number of decisions that developers need to make, gaining simplicity, but not necessarily losing flexibility. 設定より規約。規約に従った実装を行い、開発者に決 定させるべきことを少なくし、単純さを維持する。 13年4月18日木曜日
  • 7. CoC • Mapping File ( Class to DB Table ) • Class Name/ Method Name • Folder Structure/ Namespace Design • Template Method/ Class Design 13年4月18日木曜日
  • 8. REST REST is an architectural style and the best pattern for web application. RESTは、アーキテクチャスタイルの一つであり、良 いWEBアプリケーションのためのパターンである。 13年4月18日木曜日
  • 9. REST Resource Resource Each request includes all of the information. HTTP The set of operations supported by the web service using HTTP methods as known well-defined- interface (e.g., GET, PUT, POST, or DELETE). Uniform Interface Stateless HTML,XML or JSON etc HTML,XML or JSON etc Response is cacheable to improving scalability and performance. Cacheable KEY GOALS of REST include: •Scalability of component interactions •Generality of interfaces •Independent deployment of components •Intermediary components to reduce latency, enforce security and encapsulate legacy systems 13年4月18日木曜日
  • 10. MVC Model-View-Controller • Isolation of business Logic from the user interface • Ease of keeping code DRY • Making it clear where different types of code belong for easier maintenance 13年4月18日木曜日
  • 11. MVC Model-View-Controller • Isolation of business Logic from the user interface • Ease of keeping code DRY • Making it clear where different types of code belong for easier maintenance Controller View Model Storage 13年4月18日木曜日
  • 12. MVC Model-View-Controller • Isolation of business Logic from the user interface • Ease of keeping code DRY • Making it clear where different types of code belong for easier maintenance ① Controller View Model Storage Request to controller from user interface 13年4月18日木曜日
  • 13. MVC Model-View-Controller • Isolation of business Logic from the user interface • Ease of keeping code DRY • Making it clear where different types of code belong for easier maintenance ① ② Controller View Model Storage Request to controller from user interface Controller calls Model and gets results 13年4月18日木曜日
  • 14. MVC Model-View-Controller • Isolation of business Logic from the user interface • Ease of keeping code DRY • Making it clear where different types of code belong for easier maintenance ① ②③ Controller View Model Storage Request to controller from user interface Controller calls Model and gets results Controller puts View the results 13年4月18日木曜日
  • 15. MVC Model-View-Controller • Isolation of business Logic from the user interface • Ease of keeping code DRY • Making it clear where different types of code belong for easier maintenance ① ②③④ Controller View Model Storage Request to controller from user interface Controller calls Model and gets results Controller puts View the results View is rendered user interface 13年4月18日木曜日
  • 17. MVC on Rails Controller View Model DB 13年4月18日木曜日
  • 18. MVC on Rails Controller View Model DB Router 13年4月18日木曜日
  • 19. MVC on Rails ① Controller View Model DB Router Browser posts request to Router 13年4月18日木曜日
  • 20. MVC on Rails ① Controller View Model DB Router discovers controller to execute and Rails executes the controller Router ② Browser posts request to Router 13年4月18日木曜日
  • 21. MVC on Rails ① ③ Controller View Model DB Router discovers controller to execute and Rails executes the controller Controller calls Model and gets results Router ② Browser posts request to Router 13年4月18日木曜日
  • 22. MVC on Rails ① ③④ Controller View Model DB Router discovers controller to execute and Rails executes the controller Controller calls Model and gets results Controller puts View the results Router ② Browser posts request to Router 13年4月18日木曜日
  • 23. MVC on Rails ① ③④⑤ Controller View Model DB Router discovers controller to execute and Rails executes the controller Controller calls Model and gets results Controller puts View the results View is rendered user interface Router ② Browser posts request to Router 13年4月18日木曜日