SlideShare a Scribd company logo
1 of 16
Download to read offline
普段Djangoを使っている人間
がRuby on Railsを勉強してみ
た話
長野Rubyの会 #1 2017.12.2 於 GEEKLAB.NAGANO
自己紹介
● にしざわこういち
● プログラマー
● @koty
● ギークラ某長野 管理人見習い
プログラミング言語歴
VisualBasic.NET ・・・10年
C# ・・・10年
Java ・・・3年
Python ・・・3年
TypeScript ・・・3ヶ月
Ruby ・・・3日
Ruby on Rails vs Django(ヂャンゴ)
雑に比較しました。
マサカリを投げないでください。
環境構築
https://github.com/rails/rails-dev-box
https://qiita.com/kaki_k/items/511611cada
c1d0c69c54
用語の比較
Model-View-Controller
Model-Temlate-View
Model
class Title < ApplicationRecord
def title_display
'[' + self.name + ']'
end
end
from django.db import models
class Title(models.Model):
name = models.TextField()
sales_date = models.DateField()
def title_display(self):
return '[' + self.name + ']'
Controller(View)
class BooklistController < ApplicationController
def index
@msg = 'djangoはいいぞ。'
@titles = Title.all
end
def detail
@msg = 'hello'
@title = Title.find(params[:id])
end
end
from app.models import Title
def index(request):
context = {'msg' : 'djangoはいいぞ。',
'titles' : Title.objects.all()}
return render_to_response('booklist/index.html',
context)
def details(request, id):
context = {'msg' : 'hello’',
'title' : Title.objects.get(id=id)}
return render_to_response('booklist/detail.html',
context)
View(Template)
<h1>Hello</h1>
<p><%= @msg %></p>
<p>現在登録されている本のタイトルは次のとおりです。</p>
<p>
<% @titles.each do |title| %>
<a href='/booklist/<%= title.id %>'>タイトル <%= title.title_display %>, [発売日] <%= title.sales_date %></a><br />
<% end %>
</p>
<html><h1>Hello</h1>
<p>{{ msg }}</p>
<p>現在登録されている本のタイトルは次のとおりです。</p>
<p>
{% for titlei in titles %}
<a href='/booklist/{{ title.id }}'>タイトル {{ title.title_display }}, [発売日] {{ title.sales_date }}</a><br />
{% endfor %}
</p></html>
ルーティング
Rails.application.routes.draw do
get 'booklist' => 'booklist#index'
get 'booklist/:id' => 'booklist#detail'
end
from views import booklist
urlpatterns = [
url(r'^booklist$', booklist.index),
url(r'^booklist/(?P<id>[0-9]+)$', booklist.detail),
]
マイグレーション
> rails generate model title
生成されたmigrationファイルにフィールドを追加
> rake db:migrate
modelの定義を作成
> ./manage.py makemigrations
> ./manage.py migrate
その他
スキャフォールド
 →使うもんなんでしょうか?
Django Admin
Djangoが既定で提供する、modelと一対一対応するCRUD画面。割と使う。
所感
● railsの方が記述量が少ない分、暗黙のルールが多い
● htmlはdjangoの方が見やすそう
● migrationはdjangoの方が便利
○ railsだとmigrationファイルとモデルに定義が分散する??
● ルーティングはrailsの方がシンプル
○ Djangoも2系から同様のシンプルな記述ができる予定
残課題
● アプリケーションサーバー
● herokuへのデプロイ
● REST API
● フロントエンド関係のファイルの扱い
● ・・・・・
第二弾にご期待下さい!?
Wantedlyでの検索結果
rails で検索 →3,678件
djangoで検索 → 463件
結論
Djangoをやりましょう

More Related Content

What's hot

エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことHirata Tomoko
 
JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介Yusuke Hirao
 
コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達Azaika At
 
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話Hiroyuki Kusu
 
JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発Yoichi Toyota
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)orange clover
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjugsk44_
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + NashornTakuya Ueda
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてHirata Tomoko
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Yoshiyuki Nakamura
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道Shigeru UCHIYAMA
 
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」Muyuu Fujita
 
ランダムフォレスト回帰
ランダムフォレスト回帰ランダムフォレスト回帰
ランダムフォレスト回帰隆介 小野
 
Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半隆介 小野
 
Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法Hiroaki NAKADA
 
continuatioN Linking
continuatioN LinkingcontinuatioN Linking
continuatioN LinkingKouji Matsui
 
で、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS Matsuriで、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS MatsuriYoshitaka Kawashima
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Tokoroten Nakayama
 

What's hot (20)

エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったこと
 
JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介
 
コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達
 
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
 
JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + Nashorn
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
 
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
 
ランダムフォレスト回帰
ランダムフォレスト回帰ランダムフォレスト回帰
ランダムフォレスト回帰
 
Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半
 
Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法
 
continuatioN Linking
continuatioN LinkingcontinuatioN Linking
continuatioN Linking
 
片手間JS on Rails
片手間JS on Rails片手間JS on Rails
片手間JS on Rails
 
で、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS Matsuriで、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS Matsuri
 
無名関数のすすめ
無名関数のすすめ無名関数のすすめ
無名関数のすすめ
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
 

Similar to 普段Djangoを使っている人間がruby on railsを勉強してみた話

capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活をRyunosuke SATO
 
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考えるRailsのフロントエンド開発を考える
Railsのフロントエンド開発を考えるHirata Tomoko
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionGoh Matsumoto
 
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】WESEEKWESEEK
 
JavaとScalaとGroovyと
JavaとScalaとGroovyとJavaとScalaとGroovyと
JavaとScalaとGroovyとirof N
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Takuya Mukohira
 
SpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorbSpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorbYoutarou TAKAHASHI
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsKoichiro Ohba
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Koichi Shimozono
 
Re-frame and A-Frame
Re-frame and A-FrameRe-frame and A-Frame
Re-frame and A-FrameKazuhiro Hara
 
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Koji SHIMADA
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときRyunosuke SATO
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018Yutaka Tachibana
 
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)Recruit Lifestyle Co., Ltd.
 
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話yoshioka_cb
 
GraphQLについての5分間
GraphQLについての5分間GraphQLについての5分間
GraphQLについての5分間Matsuo Obu
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03Daiki Maekawa
 
Rails composerでrails newを楽にしよう
Rails composerでrails newを楽にしようRails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう健太 田上
 

Similar to 普段Djangoを使っている人間がruby on railsを勉強してみた話 (20)

capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活を
 
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考えるRailsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
 
JavaとScalaとGroovyと
JavaとScalaとGroovyとJavaとScalaとGroovyと
JavaとScalaとGroovyと
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
 
SpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorbSpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorb
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
Re-frame and A-Frame
Re-frame and A-FrameRe-frame and A-Frame
Re-frame and A-Frame
 
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4
 
react_rails
react_railsreact_rails
react_rails
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
 
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
 
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 
GraphQLについての5分間
GraphQLについての5分間GraphQLについての5分間
GraphQLについての5分間
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
Rails composerでrails newを楽にしよう
Rails composerでrails newを楽にしようRails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう
 

More from ko ty

Serverless frameworkでお手軽lambda運用 at #nseg #93
Serverless frameworkでお手軽lambda運用 at #nseg #93Serverless frameworkでお手軽lambda運用 at #nseg #93
Serverless frameworkでお手軽lambda運用 at #nseg #93ko ty
 
Serverless frameworkを使ってみた話 at #nseg #90
Serverless frameworkを使ってみた話 at #nseg #90Serverless frameworkを使ってみた話 at #nseg #90
Serverless frameworkを使ってみた話 at #nseg #90ko ty
 
AWS Lambda を使ってみた話 at づや会Vol.3
AWS Lambda を使ってみた話 at  づや会Vol.3AWS Lambda を使ってみた話 at  づや会Vol.3
AWS Lambda を使ってみた話 at づや会Vol.3ko ty
 
データベース実践入門読書会スペシャル #nseg
データベース実践入門読書会スペシャル #nsegデータベース実践入門読書会スペシャル #nseg
データベース実践入門読書会スペシャル #nsegko ty
 
Open data とは in open data day
Open data とは in open data dayOpen data とは in open data day
Open data とは in open data dayko ty
 
Source treeの紹介
Source treeの紹介Source treeの紹介
Source treeの紹介ko ty
 
NSEG第33回勉強会
NSEG第33回勉強会NSEG第33回勉強会
NSEG第33回勉強会ko ty
 
Nseg第32回勉強会
Nseg第32回勉強会Nseg第32回勉強会
Nseg第32回勉強会ko ty
 
NSEG第25回勉強会
NSEG第25回勉強会NSEG第25回勉強会
NSEG第25回勉強会ko ty
 
Tddbc nagano0.1(nseg第20回勉強会)
Tddbc nagano0.1(nseg第20回勉強会)Tddbc nagano0.1(nseg第20回勉強会)
Tddbc nagano0.1(nseg第20回勉強会)ko ty
 
NSEG第11回勉強会
NSEG第11回勉強会NSEG第11回勉強会
NSEG第11回勉強会ko ty
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会ko ty
 
NSEG第3回勉強会
NSEG第3回勉強会NSEG第3回勉強会
NSEG第3回勉強会ko ty
 
第2回nseg slideshare
第2回nseg slideshare第2回nseg slideshare
第2回nseg slideshareko ty
 

More from ko ty (14)

Serverless frameworkでお手軽lambda運用 at #nseg #93
Serverless frameworkでお手軽lambda運用 at #nseg #93Serverless frameworkでお手軽lambda運用 at #nseg #93
Serverless frameworkでお手軽lambda運用 at #nseg #93
 
Serverless frameworkを使ってみた話 at #nseg #90
Serverless frameworkを使ってみた話 at #nseg #90Serverless frameworkを使ってみた話 at #nseg #90
Serverless frameworkを使ってみた話 at #nseg #90
 
AWS Lambda を使ってみた話 at づや会Vol.3
AWS Lambda を使ってみた話 at  づや会Vol.3AWS Lambda を使ってみた話 at  づや会Vol.3
AWS Lambda を使ってみた話 at づや会Vol.3
 
データベース実践入門読書会スペシャル #nseg
データベース実践入門読書会スペシャル #nsegデータベース実践入門読書会スペシャル #nseg
データベース実践入門読書会スペシャル #nseg
 
Open data とは in open data day
Open data とは in open data dayOpen data とは in open data day
Open data とは in open data day
 
Source treeの紹介
Source treeの紹介Source treeの紹介
Source treeの紹介
 
NSEG第33回勉強会
NSEG第33回勉強会NSEG第33回勉強会
NSEG第33回勉強会
 
Nseg第32回勉強会
Nseg第32回勉強会Nseg第32回勉強会
Nseg第32回勉強会
 
NSEG第25回勉強会
NSEG第25回勉強会NSEG第25回勉強会
NSEG第25回勉強会
 
Tddbc nagano0.1(nseg第20回勉強会)
Tddbc nagano0.1(nseg第20回勉強会)Tddbc nagano0.1(nseg第20回勉強会)
Tddbc nagano0.1(nseg第20回勉強会)
 
NSEG第11回勉強会
NSEG第11回勉強会NSEG第11回勉強会
NSEG第11回勉強会
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
 
NSEG第3回勉強会
NSEG第3回勉強会NSEG第3回勉強会
NSEG第3回勉強会
 
第2回nseg slideshare
第2回nseg slideshare第2回nseg slideshare
第2回nseg slideshare
 

普段Djangoを使っている人間がruby on railsを勉強してみた話