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
レガシーRailsアプリとの付き合い方について考える
Search
Yusaku ONO
November 17, 2017
Technology
2
410
レガシーRailsアプリとの付き合い方について考える
2018/11/17 万葉社内で発表した資料です
Yusaku ONO
November 17, 2017
Tweet
Share
More Decks by Yusaku ONO
See All by Yusaku ONO
Rubyで日常をちょっとだけたのしくする / Rails Girls Okinawa 1st
yono
0
290
RubyとRubyKaigiがきっかけで沖縄から東京に転職した話/TokyuRubyKaigi2018
yono
2
3.8k
Rails経験者が万葉の新人研修を受けて得られたこと/railsdm2018_day3_extreme
yono
2
4.8k
Play! framework について
yono
1
410
Other Decks in Technology
See All in Technology
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
180
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
270
Terraform Stacks入門 #HashiTalks
msato
0
350
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Lambdaと地方とコミュニティ
miu_crescent
2
370
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
7
810
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
220
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
TypeScript、上達の瞬間
sadnessojisan
46
13k
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
89
Bash Introduction
62gerente
608
210k
It's Worth the Effort
3n
183
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
What's in a price? How to price your products and services
michaelherold
243
12k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Unsuck your backbone
ammeep
668
57k
Transcript
ϨΨγʔ Rails ΞϓϦͱͷ ͖߹͍ํʹ͍ͭͯߟ͑Δ 2017/11/17 @yono
͜ͷࢿྉʹ͍ͭͯ • ࣾͰൃදͨ͠ࢿྉΛެ։͠·͢ • લ৬ͷܦݧΛࠓͷձࣾ(ສ༿)Ͱڞ༗͠Α͏ͱ ͍͏Ϟνϕʔγϣϯ͔Β࡞Γ·ͨ͠
ࠓͷ͓ॻ͖ • ͖߹͍ํͱ • ͦͷଞখωλʢ͕࣌ؒ͋Εʣ
ϨΨγʔ Rails ΞϓϦͱͷ͖߹͍ํͱ • Ruby/Rails όʔδϣϯΞοϓσʔτ • ӡ༻อकΛҾ͖ܧ͙ • ৽͍͠αʔόʔʹҠߦ͢Δ
• ഇࢭͯ͠ผγεςϜʹҠߦ͢Δ • => ಈ͔͠ଓ͚Δʢ߹͕ଟ͍ʣ
ಈ͔͠ଓ͚ΔͨΊʹ • ಈ͘ڥΛҡ࣋͢Δ • ߹ʹΑͬͯίʔυΛ͢ • ։ൃڥ͕ཉ͍͠ • อकʹ͓͍ͯιʔείʔυͦͷͷ͚ͩͰͳ͘ ڥߏஙڥҡ͕࣋ωοΫʹͳΔ߹͋Δ
ڥΛΔ • Rails ͷΠϯετʔϧํ๏ • Ruby ͷΠϯετʔϧํ๏ • σʔλϕʔε •
Web αʔόʔ / ΞϓϦέʔγϣϯαʔόʔ • ಈ࡞OS
Rails ͷΠϯετʔϧํ๏ • όʔδϣϯ͕໌ه͞Εͯͳ͍߹ʹಛఆ͢ΔࡐྉʹͳΔ • bundle install • gem install
rails • apt-get install rails ʢDebian ܥݶఆʣ • apt ܦ༝ͰΠϯετʔϧ͢Δͱ gem list ʹݱΕͳ͍ • gem list ʹݱΕͳ͍ͷʹ rails ίϚϯυ͕ଘࡏ͢Δ߹͜ ΕΛٙͬͯΈΔ
ͪͳΈʹ apt-get ͱ • Debianܥͷ OS ʹࡌ͞Ε͍ͯΔύοέʔδ Ϛωʔδϟʔ • CentOS
Ͱݴ͏ͱ͜Ζͷ yum • ྫ: apt-get install postgresql • աڈͷ apt Ͱ rails ͳͲͷ gem ͕ύοέʔδͱͯ͠ ఏڙ͞Ε͍ͯͨ
Ruby ͷΠϯετʔϧํ๏ • γεςϜΠϯετʔϧ (apt, yumʣ • جຊతʹݹ͍ʢྫ: CentOS6 =>
1.8.7ʣ • ࣮֬ʹϏϧυͰ͖ΔͷͰ҆৺ • rbenv • σϑΝΫτʁ • Ϗϧυ͢ΔͷʹҰ͍Δ߹͋Δ • Cron ܦ༝Ͱಈ͔͢ͱ͖ʹҰۤ࿑ • rvm • ͋·ΓΘΕͳ͘ͳͬͨ • ϏϧυͰ͖ΔΑ͏ʹσϑΥϧτͰύονΛ͋ͯͯ͘ΕΔ߹͋Γ
σʔλϕʔε • PostgreSQL / MySQL ͩͱخ͍͠ • ͨ·ʹ SQL Server
ͱ͔͋Γ·͢ • ΫϥαόͰΘΕ͍ͯΔDBʢSQL ServerʣΛࢀর͢ΔΑ͏ͳέʔε • ͪΖΜDBͷόʔδϣϯॏཁͰ͢ • όʔδϣϯʹΑͬͯΫΤϦͷৼΔ͍͕มΘΔέʔε͕͋Δ • SQLͨॻ͖ͯ͠ΔΑ͏ͳ߹ʹҾ͔͔ͬΓ͕ͪ
Webαʔόʔ / ΞϓϦέʔγϣϯαʔόʔ • Webαʔόʔ • Apache / nginx •
ΞϓϦέʔγϣϯαʔόʔ • mongrel / Passenger / unicorn • WebαʔόʔΘͣΞϓϦέʔγϣϯαʔόʔͰ ड͚Δέʔε
ಈ࡞OS • CentOS • Debian / Ubuntu • كʹ Windows
• Bitnami Redmine ͱ͍͏ Window ༻ͷ Redmine Πϯετʔϥ͕ఏڙ͞Ε͍ͯΔ
֎෦ͱͷ࿈ܞ • ଞͷ Rails ΞϓϦͱ࿈ܞ • ActiveResource ( 4.0 Ͱݸผ
gem ʹͳͬͨʣ • ActionWebService (1ܥݶఆ) • Web API ܦ༝Ͱଞͷ Web ΞϓϦͱ࿈ܞ • DB Λࢀরʢ͢Δ/͞ΕΔέʔε྆ํ͋Γ͏Δʣ • αʔόʔΛௐࠪ͢Δ͚ͩͰݟ͚͖ͭΕͳ͍ʢಛʹࢀর͞ΕΔ߹ʣ
ຊͷ·ͱΊ • ϨΨγʔ Rails ΞϓϦͱͷ͖߹͍ํ • ͖߹͍ํͱ͍༷ͬͯʑ͋Δ • ιʔείʔυͦͷͷͰͳ͘ ڥߏஙҡ͕࣋ωοΫʹͳΔ߹͋Δ
• ͋Β͔͡Ί͓ͬͯ͘ͱ҆৺
ͦͷଞখωλ ʢ͕࣌ؒ͋Εʣ
Rails 2 → 3.0 • ҙ֎ͱͳΜͱ͔ͳΔҹ • rails_upgrade plugin Λ͏ͱมߋ͕ඞཁͳ
ՕॴΛચ͍ग़ͯ͘͠ΕΔ • https://github.com/rails/rails_upgrade
Rails 3.0 → 3.2 • ݸਓతʹҰ൪ͭΒ͍ • assets pipeline… •
CSS, ը૾ೖΓͷڊେͳ JavaScript ϥΠϒϥϦΛಋೖ͍ͯ͠Δͱ ٧Έ͍͢ʢ٧Μͩʣ • prototype.js ༻ͷϔϧύʔϝιου͕ফ͑Δ • ࠷ऴखஈ: https://github.com/rails/prototype_legacy_helper
Rails 3.2 → 4 • vendor/plugins → Bundler • Bundler
ಋೖલͷ rails vendor/plugins ҎԼʹ plugin ͷιʔείʔυΛஔ͢ΔܗࣜΛऔͬͯ ͍ͨ • ΞϓϦͷϦϙδτϦʹ֤ plugin ͷιʔείʔυ Λ߹Θͤͯίϛοτ͍ͯͨ͠
Rails 3.2 → 4 • plugin ͷιʔείʔυΛϦϙδτϦʹؚΊΔ͜ͱͰԿ ͕ى͜Δ͔ • plugin
ࣗମʹखΛՃ͍͑ͯͯؾ͖ͮʹ͍͘ • ޓੑͷ͋Δ࠷৽൛ͷ gem ʹஔ͖͑ͯಈ͔ͳ͍ • όʔδϣχϯά͕͔ͬ͠Γ͍ͯ͠Δ pluginͰͳ͍ͱ Ͳͷόʔδϣϯ͕ΘΕ͍ͯΔ͔Ѳ͢Δͷ͕େม
ຊͷ·ͱΊ • ϨΨγʔ Rails ΞϓϦͱͷ͖߹͍ํ • ͖߹͍ํͱ͍༷ͬͯʑ͋Δ • ιʔείʔυͦͷͷͰͳ͘ ڥߏஙҡ͕࣋ωοΫʹͳΔ߹͋Δ
• ͋Β͔͡Ί͓ͬͯ͘ͱ҆৺