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とRailsの何が強いのか
Search
Akinori MUSHA
December 02, 2022
Programming
7
14k
RubyとRailsの何が強いのか
Presented in Qiita Night Lightning Talks on 2022-12-02
https://increments.connpass.com/event/265957/
Akinori MUSHA
December 02, 2022
Tweet
Share
More Decks by Akinori MUSHA
See All by Akinori MUSHA
上手なPRと機能要望の勘所
knu
1
130
日本語入力を再考する
knu
1
180
OSSで結果を出す方法
knu
16
10k
Rails and JSON API in 2019
knu
0
140
Evolution Of Enumerator
knu
3
4.7k
What's Cooking In Ruby 2.7
knu
1
480
Other Decks in Programming
See All in Programming
一休.comレストランのRustバックエンド開発の様子
kymmt90
13
7.9k
Learning Ruby
okuramasafumi
5
370
iOS / Android ネイティブ 実装アプリの Flutter 化事例
mthiroshi
0
650
TerraformをやめてCDKでReStartしたあと、 CDKをやめてCDK for TerraformでReStartした話
tmiura0203
0
770
So You Think You Know Git - Part 2
schacon
PRO
0
1.3k
htmx is fun!
codehex
2
170
PHP8の機能を使って堅牢にコードを書く
fendo181
6
2k
Microsoft Fabricを7ヶ月使ってわかったこと
shun_oshidari
2
450
Deep Dive into the Symfony Security Component
hhamon
1
180
シェルの履歴とイクンリメンタル検索を使う
naoya
7
2.4k
Honoとhtmx
yusukebe
6
1.1k
PHPerライフをChrome拡張開発でちょっと便利に / PR TIMES x DMM.com
meihei3
0
200
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
111
35k
Writing Fast Ruby
sferik
619
59k
Making Projects Easy
brettharned
106
5.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
219
21k
The Invisible Side of Design
smashingmag
293
49k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
Rails Girls Zürich Keynote
gr2m
91
13k
Why Our Code Smells
bkeepers
PRO
330
56k
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.5k
How to train your dragon (web standard)
notwaldorf
71
5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
16k
Transcript
RubyͱRailsͷԿ͕ڧ͍ͷ͔ ऀ থل
Software Engineer, Senior Expert at WED Inc. ✓Ruby Committer /
ex. FreeBSD Committer ✓Huginn (⭐37k) Co-maintainer ✓Hammerspoon (⭐9.8k) Contributor Writes Production Code In Ruby / TypeScript / Go / Lua ऀ থل (Akinori Musha) @knu on GitHub and Twitter
తʹݴ͏ͱɺ ͱͯͭͳ͍ॊೈ͞Λ͍࣋ͬͯΔ RubyͱRailsͷڧΈͱ ΕͯΈΔͱ࿀͘͠ͳΔڧΈΛৼΓฦΔ
Railsࠓੜ࢈ੑͷ࠷దղͷͻͱͭ • ϏϡʔΛ࣋ͨͳ͍APIαʔόͰ͋ͬͯڧΈ͕ͨ͘͞Μ͋Δ • Ή͠ΖϑϩϯτΤϯυJS/TSʹ͍ͤͨ • RubyͱRailsϏδωεϩδοΫΛॻ͘ͷʹదͨ͠ݴޠͱϑϨʔϜϫʔΫ • جຊޠኮ͕๛ͰɺυϝΠϯʹదͨ͠৽͍͠ޠኮΛ૿͢ͷಘҙ •
ΓͱΓ͢ΔΦϒδΣΫτ͕΄΅ActiveRecord ModelΠϯελϯεRelationΦϒδΣΫτʹدΔͷ Ͱɺ΄΅self-documented, ݟΔ࣮͕ܾ·͍ͬͯΔͷͰಈతܕ͚ͷऑΈཱ͕ͪͮΒ͍ • ActiveRecordͷྫ֎ͱrescue_fromʹΑΔิػߏ͕RESTͱ͔ͬͪΓϋϚ͍ͬͯΔ
ActiveRecord͕ڧ͍ • CRUD: ܕมόϦσʔγϣϯΛඋ • ݅ݕࡧɺJOINɺूܭɺࢥ͍ͷ·· • ·ͱͳSQLΛ࡞ͬͯ͘ΕΔ • DRYͷపఈ
• DBͷεΩʔϚͱstructఆٛΛೋॏཧ͠ͳ͍͍ͯ͘ • defaultಡΜͰ͘ΕΔ
ActiveRecord Migration͕ڧ͍ • ฒߦ։ൃॱෆಉͷσϓϩΠʹ͑Δόʔδϣϯཧ • ݸʑͷϚΠάϨʔγϣϯʹ͍ͭͯద༻ঢ়ଶ͕ཧ͞Ε͍ͯͯɺݸผʹup/downՄೳ • DDLDMLྲྀͤΔ • ϏϡʔϑΝϯΫγϣϯͷྨՃgemͰεΩʔϚͷҰ෦ͱͯ͠ཧՄೳ
• σʔλϕʔεΤϯδϯΛ͍ͤΔʂ GoͰۤ࿑͠·ͨ͠😝
Sidekiq͕ڧ͍ • खܰʹδϣϒΛ࡞͙ͬͯ͑͢Δ • PubSubͩͱTerraformͰτϐοΫΛ৽ઃͯ͠ϫʔΧʔʹsubscriberΛ༻ҙͯ͠… • ߴͳྲྀྔ੍ޚॏෳɾഉଞ੍ޚ͕ඞཁʹͳͬͯ༰қʹରԠ • Sidekiq Pro/EnterpriseΛങ͍͍ͬͯ͠ɺOSSͷιϦϡʔγϣϯ๛
RSpec͕ڧ͍ • ͳΜͰϞοΫͰ͖Δ • ΠϯλϑΣʔεΛఆٛͨ͠Γ͠ͳ͕ͯͯ͘͢Test Ready • σʔλϕʔεͷΫϦΞͳͲͥΜͿRails+RSpecଆͰ໘Λݟͯ͘ΕΔ • E2EςετʢFeature
specʣඪ४උ
Rails console͕ڧ͍ • ௐࠪσʔλෆ߹ͷۓٸमਖ਼ɺόονॲཧͷϦϋʔαϧͳͲʹେ׆༂ • ίϯύΠϧσϓϩΠͳ͠ʹɺҙͷϏδωεϩδοΫΛݺͼग़ͤΔ • όονॲཧͷྨ֎෦αʔϏε࿈ܞଟ͘ɺϫϯγϣοτͩͬͨΓͯ͠ɺ೦ೖΓͳςε τΛॻ͍͔ͯΒ࣮͢Δίετ͕·ͬͨ͘ݟ߹Θͳ͘ײ͡Δ͜ͱଟ͍ •
ͦΜͳͱ͖ɺ։ൃڥεςʔδϯάڥͰRails console͔Β෮ࢼߦͯ֬͠ೝͰ͖Δ͜ ͱେ͖ͳث ͜Εຊʹݟա͕ͪ͝͠😳
తʹݴ͏ͱɺ ։ൃମݧͰޙΕΛऔ͍ͬͯΔ RubyͱRailsͷऑΈͱ ΕͯΈΔͱΓͨ͘ͳ͘ऑΈΛৼΓฦΔ
Rubyͷ։ൃମݧϋοϐʔͳΜ͡Όͳ͍ͷʁ 👍 ҙਤΛࣗ༝ʹදݱͰ͖ΔɺറΓ͕গͳ͍ • ݴޠͷ੍ճආͷςΫχοΫ͕ཁΒͳ͍ • ʮͨΊͷʯσβΠϯύλʔϯɺΠϯλʔϑΣʔε͕ͳ͍ 👎 ੍Λදݱɺڧ੍͢Δޠኮʹ͍͠ •
ಡΈखʹͱͬͯͷώϯτɺΠϯλϓϦλʹͱͬͯͷώϯτ • ॻ͖खͷϛεࢭ
ॳΊͯ͞ΘΔਓʹ͘͞͠… • ϕʮRubyͰ͜Μͳ෩ʹॻ͚ΔΑʯ • ॳʮ͍͢͝ɺ؆ܿͰ͔͍͍ͬ͜Ͱ͢Ͷʂʯ • ॳʮʢͰଞͷݴޠʹԠ༻ޮ͔ͳ͍ࣝͩ…ʣʯ • ॳʮͥΜͥΜิީิ͕ग़ͯ͜ͳ͍Μ͚ͩͲΈͳ͞ΜͲ͏ͬͯઃఆͯ͠ΔΜͰ͔͢ʁʯ •
ϕʮ͍͢͝ϓϥάΠϯઃఆͱ͔ಛʹͳͯ͘ɺΈΜͳۭͰॻ͍ͯ·͢… ͦΕ͔RubyMineͬͯΈΔʁʯ • ॳʮʢࢧԉͳ͠Ͱॻ͘ͷ·͔͡…ʣʯ TypeScript/Go/KotlinݴΘ͕ͣͳɺPythonPHPܕΞ ϊςʔγϣϯΛॻ͘͠ఆٛδϟϯϓΛΜΜ͏ͷ͕;ͭ͏😇
LinterΛࣂ͍׳Β͢ͷ͕େม • RubocopͷσϑΥϧτઃఆ͕ͭΒ͍ • ίϛϡχςΟʔϕʔεͱ͍͏ͷ͕ۂऀͰɺͤͱݴΘΕΔ͕ཧ༝͕ෆ໌ͳͷͰ࠷ॳ͔Β ܗ֚Խ͍ͯ͠Δ • ࣗಈϑΥʔϚολʔͱͯ͠ಈ࡞͕͗͢Δ • อଘ࣌ࣗಈܗʹͯ͠ؾܰʹηʔϒͰܗɺͱ͍͕ͨ͠ඵֻ͔ΔͷͰମݧ͕ྑ͘ͳ͍
ܕ͚ରԠΛͬͱ͕ΜΓ͍ͨ • ܕݱϓϩάϥϚʔͷϝϯλϧϞσϧʹ͍ࠜͯ͟͠Δ • Ή͠ΖίʔυͷҙਤͷҰ෦ͱͯ͠ܕΛॻ͖͍ͨͰ͟͝Δ • ผϑΝΠϧཧ͠ΜͲ͍.rbs (.rbi) • ΤσΟλͰΠϯϥΠϯදࣔɾฤूͰ͖Ε؇ʁ
• SorbetʹΑΔΞϊςʔγϣϯDRYʹͳ͍ͬͯͳ͍ • ϝιουͷԾҾɺಛʹΩʔϫʔυҾͷೋॻ͖͕ͩΔ͍
ͦΕͰ… RubyͱRailsڧ͍ มԽΛแ༰͢Δྗ
͜Ε͕మ൘ߏ✨ RailsϞϊϦεͷपΓʹϚΠΫϩαʔϏε • ߴϨΠϠʔΛ୲͏ʹ;͞Θ͍͠ॊೈੑ • GoͰ֎෦γεςϜ࿈ܞόοΫΤϯυΛॻ͍ͯRails͔ΒgRPC • PythonͰը૾ॲཧαʔϏεΛॻ͍ͯSidekiq͔Β࣮ߦ • LPಛઃαΠτNuxt.jsFreshͰָ͘͠ॻ͘
https://wed.company/recruit WED Inc. is Hiring! WEDҰॹʹ։ൃ͢ΔؒΛ୳͍ͯ͠·͢ʂ