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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yusaku ONO
November 17, 2017
Technology
2
450
レガシー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
300
RubyとRubyKaigiがきっかけで沖縄から東京に転職した話/TokyuRubyKaigi2018
yono
2
4.3k
Rails経験者が万葉の新人研修を受けて得られたこと/railsdm2018_day3_extreme
yono
2
5.3k
Play! framework について
yono
1
480
Other Decks in Technology
See All in Technology
GitLab Duo Agent Platform + Local LLMサービングで幸せになりたい
jyoshise
0
240
情シスのための生成AI実践ガイド2026 / Generative AI Practical Guide for Business Technology 2026
glidenote
0
180
S3はフラットである –AWS公式SDKにも存在した、 署名付きURLにおけるパストラバーサル脆弱性– / JAWS DAYS 2026
flatt_security
0
1.6k
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
280
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
5
470
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.2k
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
4
1.1k
マルチプレーンGPUネットワークを実現するシャッフルアーキテクチャの整理と考察
markunet
2
220
メタデータ同期に潜んでいた問題 〜 Cache Stampede 時の Cycle Wait を⾒つけた話
lycorptech_jp
PRO
0
150
OCI技術資料 : コンピュート・サービス 概要
ocise
4
54k
Dr. Werner Vogelsの14年のキーノートから紐解くエンジニアリング組織への処方箋@JAWS DAYS 2026
p0n
1
120
20260305_【白金鉱業】分析者が地理情報を武器にするための軽量なアドホック分析環境
yucho147
2
220
Featured
See All Featured
Fireside Chat
paigeccino
42
3.8k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
GitHub's CSS Performance
jonrohan
1032
470k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
630
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
210
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
370
Visualization
eitanlees
150
17k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
410
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
110
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
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 ΞϓϦͱͷ͖߹͍ํ • ͖߹͍ํͱ͍༷ͬͯʑ͋Δ • ιʔείʔυͦͷͷͰͳ͘ ڥߏஙҡ͕࣋ωοΫʹͳΔ߹͋Δ
• ͋Β͔͡Ί͓ͬͯ͘ͱ҆৺