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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yusaku ONO
November 17, 2017
Technology
470
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
レガシーRailsアプリとの付き合い方について考える
2018/11/17 万葉社内で発表した資料です
Yusaku ONO
November 17, 2017
More Decks by Yusaku ONO
See All by Yusaku ONO
Rubyで日常をちょっとだけたのしくする / Rails Girls Okinawa 1st
yono
0
310
RubyとRubyKaigiがきっかけで沖縄から東京に転職した話/TokyuRubyKaigi2018
yono
2
4.3k
Rails経験者が万葉の新人研修を受けて得られたこと/railsdm2018_day3_extreme
yono
2
5.3k
Play! framework について
yono
1
490
Other Decks in Technology
See All in Technology
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
280
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
85k
ソフトウェアサプライチェーンの構造的リスクとコンテナ環境の保護
kyohmizu
5
840
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
280
作って理解するCoding Agent 〜フレームワークに頼らないピュア Python での実装〜
takapy
3
1.1k
AWS Blocks が楽しい #ゆるWeb札幌
tacck
PRO
0
110
AI時代に、人は何を、どう学ぶのか #pbl_pub / What and How Do We Learn in the AI Era?
takaking22
1
240
Flutter × BLE Centralを自前Pluginで実装する設計パターン - MethodChannel / EventChannelで作る双方向ブリッジの実践 / Building Custom Flutter BLE Central Plugins: Bidirectional Bridging with Method & Event Channels
bitkey
PRO
0
230
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
210
2027年のMetricKit
kantacky
0
160
【Aiming】共通基盤なのに「共通化しない」課金・認証基盤「LINK」が選び取ったシングルテナント戦略と運用の秘訣
saikeda
0
160
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.5k
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
From π to Pie charts
rasagy
0
320
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
A designer walks into a library…
pauljervisheath
211
24k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
GraphQLとの向き合い方2022年版
quramy
50
15k
Design in an AI World
tapps
1
290
The Cost Of JavaScript in 2023
addyosmani
55
10k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
970
The Pragmatic Product Professional
lauravandoore
37
7.4k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
710
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 ΞϓϦͱͷ͖߹͍ํ • ͖߹͍ํͱ͍༷ͬͯʑ͋Δ • ιʔείʔυͦͷͷͰͳ͘ ڥߏஙҡ͕࣋ωοΫʹͳΔ߹͋Δ
• ͋Β͔͡Ί͓ͬͯ͘ͱ҆৺