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
120
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
6
Shinjuku.rb#95:心の技術書紹介
free_world21
1
180
Rails engineを用いたゆるふわモジュラーモノリス のご紹介
free_world21
1
320
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
3
1k
東証障害報告書を読み解く
free_world21
0
130
Ruby/Railsの勉強会のおかげでブルーモ証券起業した
free_world21
2
400
エンジニアとしての属性軸(自己分析軸?)を考えてみた
free_world21
0
82
(元)FinTechエンジニアが読み解く東証障害報告書
free_world21
0
760
railsでつくるなんちゃってserverless CMS〜コーポレートサイト編〜
free_world21
1
1.3k
Other Decks in Programming
See All in Programming
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
300
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
140
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
790
[Fin-JAWS 第38回 ~re:Invent 2024 金融re:Cap~]FaultInjectionServiceアップデート@pre:Invent2024
shintaro_fukatsu
0
340
PicoRubyと暮らす、シェアハウスハック
ryosk7
0
250
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
3.7k
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
990
ISUCON14公式反省会LT: 社内ISUCONの話
astj
PRO
0
140
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
600
Moscow Python Meetup №97. Константин Крестников (Техлид команды GigaChain (SberDevices)). GigaChain: Новые инструменты для разработки агентов на примере агента техподдержки
moscowdjango
PRO
0
100
Оптимизируем производительность блока Казначейство
lamodatech
0
990
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
450
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Music & Morning Musume
bryan
46
6.3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
A better future with KSS
kneath
238
17k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
We Have a Design System, Now What?
morganepeng
51
7.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Optimising Largest Contentful Paint
csswizardry
33
3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
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