Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby on Rails と Django を比較してみる
Search
free_world21
September 29, 2024
Programming
1
270
Ruby on Rails と Django を比較してみる
TokyuRuby会議15
https://tokyurb.connpass.com/event/330007/
で使用した発表用スライドです
free_world21
September 29, 2024
Tweet
Share
More Decks by free_world21
See All by free_world21
DjangoとRailsを使って趣味として政治資金を透明化するプロダクトを作ってる話
free_world21
0
72
Ruby on Rails on Kubernetesってどうなの?
free_world21
0
20
大事なデータを守りたい!ActiveRecord Encryptionと、より安全かつ検索可能な暗号化手法の実装例の紹介
free_world21
0
38
Shinjuku.rb#95:心の技術書紹介
free_world21
1
290
Rails engineを用いたゆるふわモジュラーモノリス のご紹介
free_world21
1
440
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
3
1.4k
東証障害報告書を読み解く
free_world21
0
280
Ruby/Railsの勉強会のおかげでブルーモ証券起業した
free_world21
2
510
エンジニアとしての属性軸(自己分析軸?)を考えてみた
free_world21
0
140
Other Decks in Programming
See All in Programming
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
4.9k
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
470
SQL Server 2025 LT
odashinsuke
0
130
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
1k
愛される翻訳の秘訣
kishikawakatsumi
3
370
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
320
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
160
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.3k
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
150
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
2.1k
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
31k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
55
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Fireside Chat
paigeccino
41
3.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
38
Navigating Team Friction
lara
191
16k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
35
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
230
Bash Introduction
62gerente
615
210k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Mind Mapping
helmedeiros
PRO
0
47
Transcript
3VCZPO3BJMTͱ %KBOHPΛൺֱͯ͠ΈΔ 4VO খྛޛ࢙ OPFM ϒϧʔϞূ݊גࣜձࣾ 5PLZV3VCZձٞ
▪ খྛޛ࢙ʢখྛϊΤϧʣ ▪ ຊۀɿϒϧʔϞূ݊גࣜձࣾऔక$50 – ถࠃגɾถࠃ&5'ઐۀͷظࢿ࢈ܗಛԽ ܕͷࢿΞϓϦΛ࡞ͬͯΔ'JOUFDIελʔ τΞοϓ ▪
΄ͲϑϦʔϥϯεΤϯδχΞ – ్தࣄۀձࣾͷதͷਓͬͨ ▪ ʙɿϒϧʔϞূ݊גࣜձࣾΛۀ ▪ झຯɿཱྀߦɾੈքͷίϫʔΩϯάεϖʔεΊ͙ ΓʢϫʔέʔγϣϯతͳԿ͔ʣ @free_world21 THE FARM@NY CARR WORKPLACE@Chicago https://bloomo.co.jp/
3VCZPO3BJMTͱ%KBOHPΛൺֱͯ͠ΈΔ ▪ झຯͷݸਓ։ൃͰ࡞ͬͯΔϓϩμΫτΛ%KBOHP 3VCZPO3BJMTͷΈ߹ΘͤͰ࡞ͬͯ·͢ – ͳͷͰͦΕΛωλʹൃද͠·͢ ▪ ʮ%KBOHPશʹཧղͨ͠ʂʯ͘Β͍ͷϨϕϧײͷਓͷͳͷͰؒҧ͍ଟ͋͘Δ͔͠Ε·ͤ Μ ▪
ීஈ3BJMTͬͯΔਓઢͷൺֱͰ͢
3VCZPO3BJMTͱ%KBOHPΛൺֱͯ͠ΈΔ ݁ ʹ 3VCZPO3BJMT "DUJWF"ENJO BVUIMPHJD QBDLXFSL
%KBOHP %KBOHP3&45GSBNFXPSL
%KBOHPͱʢଞͷϑϨʔϜϫʔΫͱൺֱͯ͠ʣ ▪ 1ZUIPOͷ'VMMTUBDLϑϨʔϜϫʔΫ ▪ 3VCZPO3BJMTͱ΄΅ಉظʁ %KBOHP 3VCZPO3BJMT &YQSFTTKT /FTUKT
)POP ʢOPEFKTܥϑϨʔϜ ϫʔΫʣ (JO FDIP ʢ(PMBOHܥϑϨʔ ϜϫʔΫʣ ϓϩάϥϛϯάݴޠ 1ZUIPO 3VCZ 5ZQF4DSJQU (PMBOH *OJUJBMSFMFBTF ϑϨʔϜϫʔΫࢤ 'VMMTUBDL 'VMMTUBDL NJDSPGSBNFXPSL NJDSPGSBNFXPSL 03. %KBOHP03. "DUJWF3FDPSE 5ZQF03. 1SJTNB ࣗ࡞ (03. NJHSBUJPO %KBOHPNJHSBUJPO "DUJWF3FDPSE.JHSBUJPO ECNJHSBUF HPMBOHNJHSBUF HPPTF ςετ %KBOHPUFTU QZUFTU NJOJUFTU STQFD +FTU +BTNJOF CVJMUJO ܕαϙʔτ 5ZQF)JOUT CVJMUJO 3#4 CVJMUJO ʢͨͩ͠ίϯύΠϧΦ ϓγϣϯଟʣ CVJMUJO
%KBOHPͱʢଞͷϑϨʔϜϫʔΫͱൺֱͯ͠ʣ ▪ 1ZUIPOͷ'VMMTUBDLϑϨʔϜϫʔΫ ▪ 3VCZPO3BJMTͱ΄΅ಉظʁ %KBOHP 3VCZPO3BJMT &YQSFTTKT /FTUKT
)POP ʢOPEFKTܥϑϨʔϜ ϫʔΫʣ (JO FDIP ʢ(PMBOHܥϑϨʔ ϜϫʔΫʣ ϓϩάϥϛϯάݴޠ 1ZUIPO 3VCZ 5ZQF4DSJQU (PMBOH *OJUJBMSFMFBTF ϑϨʔϜϫʔΫࢤ 'VMMTUBDL 'VMMTUBDL NJDSPGSBNFXPSL NJDSPGSBNFXPSL 03. %KBOHP03. "DUJWF3FDPSE 5ZQF03. 1SJTNB ࣗ࡞ (03. NJHSBUJPO %KBOHPNJHSBUJPO "DUJWF3FDPSE.JHSBUJPO ECNJHSBUF HPMBOHNJHSBUF HPPTF ςετ %KBOHPUFTU QZUFTU NJOJUFTU STQFD +FTU +BTNJOF CVJMUJO ܕαϙʔτ 5ZQF)JOUT CVJMUJO 3#4 CVJMUJO ʢͨͩ͠ίϯύΠϧΦ ϓγϣϯଟʣ CVJMUJO ࣗͰબͿඞཁ͕ͳ͍ ʢࢮͰ։ൃͰ͖Δʣ ࣗͰબͿඞཁ͕͋Δʂʂ
%KBOHPͷಛɿϏϧτΠϯͷཧը໘͕͋Δ ▪ ຯΘ͍ͷ͋Δཧը໘͖ ▪ ActiveAdminʹͲ͜ͱͳ͘ࣅͯΔʢݸਓͷײͰ͢ʣ
%KBOHPͷಛɿϏϧτΠϯͷཧը໘͕͋Δ ▪ ຯΘ͍ͷ͋Δཧը໘͖ ▪ ActiveAdminʹͲ͜ͱͳ͘ࣅͯΔʢݸਓͷײͰ͢ʣ
%KBOHPͷಛɿγϯϓϧͳೝূػೳ͖ ▪ γϯϓϧͳೝূػೳػೳΛఏڙ͢Δϝιου͕͋Δ ▪ 3BJMTͰ͍͏ͱ͜ΖͷBVUIMPHJDͱ͔TPSDFSZΈ͍ͨͳ͕ͭೖͬͯΔΠϝʔδ
%KBOHPͷಛɿ.75 .PEFM7JFX5FNQMBUF ▪ %KBOHP.75 .PEFM7JFX5FNQMBUF Ͱ͋Δ ▪ 3BJMT.7$ .PEFM7JFX$POUSPMMFS %KBOHP
3VCZPO3BJMT Ϗδωεϩδο Ϋ ݺͼํ .PEFM .PEFM هड़ݴޠ 1ZUIPO 3VCZ ಛ ͭͷ.PEFM͕%#ͷςʔϒϧͱରԠ ͭͷ.PEFM͕%#ͷςʔϒϧͱରԠ ೖग़ྗ ݺͼํ 7JFX $POUSPMMFS هड़ݴޠ 1ZUIPO 3VCZ ಛ 3BJMTͰ͍͏ͱ͜Ζͷ$POUSPMMFSͱࢥͬͯ͘Εͯ0, ׂѪ දࣔ ݺͼํ 5FNQMBUF 7JFX هड़ݴޠ %KBOHPUFNQMBUFMBOHVBHF &3# )BNM ಛ 1ZUIPOεΫϦϓτຒΊࠐΊͳ͍ͷͰɺ ϏδωεϩδοΫΛهड़͢Δ͜ͱ΄΅ෆՄೳ 3VCZεΫϦϓτຒΊࠐΊΔͷͰ ͋ΔఔϏδωεϩδοΫॻ͚Δ
%KBOHPͷಛɿ.75 .PEFM7JFX5FNQMBUF ▪ %KBOHP.75 .PEFM7JFX5FNQMBUF Ͱ͋Δ ▪ 3BJMT.7$ .PEFM7JFX$POUSPMMFS %KBOHP
3VCZPO3BJMT Ϗδωεϩδο Ϋ ݺͼํ .PEFM .PEFM هड़ݴޠ 1ZUIPO 3VCZ ಛ ͭͷ.PEFM͕%#ͷςʔϒϧͱରԠ ͭͷ.PEFM͕%#ͷςʔϒϧͱରԠ ೖग़ྗ ݺͼํ 7JFX $POUSPMMFS هड़ݴޠ 1ZUIPO 3VCZ ಛ 3BJMTͰ͍͏ͱ͜Ζͷ$POUSPMMFSͱࢥͬͯ͘Εͯ0, ׂѪ දࣔ ݺͼํ 5FNQMBUF 7JFX هड़ݴޠ %KBOHPUFNQMBUFMBOHVBHF &3# )BNM ಛ 1ZUIPOεΫϦϓτຒΊࠐΊͳ͍ͷͰɺ ϏδωεϩδοΫΛهड़͢Δ͜ͱ΄΅ෆՄೳ 3VCZεΫϦϓτຒΊࠐΊΔͷͰ ͋ΔఔϏδωεϩδοΫॻ͚Δ Ұ൪ͷҧ͍
%KBOHPͷಛɿ.75 .PEFM7JFX5FNQMBUF ▪ ͪͳΈʹ%KBOHPUFNQMBUFMBOHVBHF͜Μͳ͔Μ͡ ▪ NVTUBDIFͱ͔)BOEMFCBSTͷܥේʁ
%KBOHPͷಛɿϞδϡϥʔϞϊϦε ▪ ݸਓతʹ࠷େͷಛ͜ΕͩͱࢥͬͯΔ ▪ projectͷԼʹෳͷappΛ࣋ͭߏ – %KBOHPͷappͭͷ3BJMTϓϩδΣΫτ rails newͯ͠࡞ΒΕ Δͭ
▪ 3BJMTͰ͍͏ͱ͜Ζͷpackwerk͕σϑΥϧτͰΈࠐ·ΕͯΔΠϝʔ δ
%KBOHPͷಛɿϞδϡϥʔϞϊϦε project
%KBOHPͷಛɿϞδϡϥʔϞϊϦε project project࡞Δͱproject໊ͰσϑΥϧτͰ࡞ΒΕΔσΟϨΫτϦ ओʹઃఆϑΝΠϧͱ͔͕͍ͬͯΔ 3BJMTͰ͍͏ͱ͜ΖͷconfigσΟϨΫτϦͱࢥͬͯྑ͍ͱࢥ͏
%KBOHPͷಛɿϞδϡϥʔϞϊϦε project project࡞Δͱproject໊ͰσϑΥϧτͰ࡞ΒΕΔσΟϨΫτϦ ओʹઃఆϑΝΠϧͱ͔͕͍ͬͯΔ 3BJMTͰ͍͏ͱ͜ΖͷconfigσΟϨΫτϦͱࢥͬͯྑ͍ͱࢥ͏ ͭͭͷappɻ ֤appͷதʹͦΕͧΕ.PEFMʢͱϚΠάϨʔγϣϯϑΝΠϧʣɺ 5FNQMBUFɺ7JFXʢ UFTUʣΛఆٛͰ͖Δ
%KBOHPͷಛɿϞδϡϥʔϞϊϦε project project࡞Δͱproject໊ͰσϑΥϧτͰ࡞ΒΕΔσΟϨΫτϦ ओʹઃఆϑΝΠϧͱ͔͕͍ͬͯΔ 3BJMTͰ͍͏ͱ͜ΖͷconfigσΟϨΫτϦͱࢥͬͯྑ͍ͱࢥ͏ ཧը໘ͷͭͷ·ͱ·Γͱͯ͠දࣔ͞ΕΔ
3JMTͱ%KBOHPͷൺֱɿίϚϯυܥ Ruby on Rails Django project作成 N/A python manage.py startproject
ceres app作成 rails new diet python manage.py startapp diet 開発サーバ起動 rails s python manage.py runserver コンソール起動 rails console python manage.py shell 任意のコマンド呼び出 し rails(rake) hoge python manage.py hoge DB作成 rails db:create N/A migrationファイル作成 rails g migration … python manage.py makemigrations migration実⾏ rails db:migrate python manage.py migrate
3JMTͱ%KBOHPͷൺֱɿσʔλϕʔεݺͼग़͠ Ruby on Rails Django 全件取得 Author.all Author.objects.all() ID指定ロード Author.find(123)
Author.objects.get(id=123) where Author.where(name: ‘hoge’) Author.where(“age >= ?”, 20) Author.where(age: 20..30) Author.where(age: nil) Author.objects.filter(name=‘hoge’) Author.objects.filter(age__gte=20) Author.objects.filter(age__range=(20, 30)) Author.objects.filter(age__isnull=True) 関連呼び出し author.published_books author.publishedbook_set.all() - name: string - age: int, null: true authors - author_id: int - title: string published_books
·ͱΊ ▪ %KBOHPͷಛຯΘ͍ͷ͋Δཧը໘ʢ3BJMTɿActiveAdminʣ ▪ %KBOHPͷಛɿγϯϓϧͳೝূػೳ͖ʢ3BJMTɿauthlogic, sorceryʣ ▪ %KBOHPͷಛɿ.PEFM5FNQMBUF7JFXʢ3BJMT.PEFM7JFX$POUSPMMFSʣ ▪ %KBOHPͷಛɿϞδϡϥʔϞϊϦεʢ3BJMTɿpackerkʣ
▪ ίϚϯυجຊతʹpython manage.pyͰΔʢ3BJMTɿrails, rakeʣ ▪ ͬͺΓActiveRecordਆʂ
3VCZPO3BJMTͱ%KBOHPΛൺֱͯ͠ΈΔ ݁ ʹ 3VCZPO3BJMT "DUJWF"ENJO BVUIMPHJD QBDLXFSL
%KBOHP %KBOHP3&45GSBNFXPSL