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
440
レガシー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.2k
Rails経験者が万葉の新人研修を受けて得られたこと/railsdm2018_day3_extreme
yono
2
5.2k
Play! framework について
yono
1
470
Other Decks in Technology
See All in Technology
Logik: A Free and Open-source FPGA Toolchain
omasanori
0
260
AIエージェントを導入する [ 社内ナレッジ活用編 ] / Implement AI agents
glidenote
1
320
ソフトウェアテストのAI活用_ver1.50
fumisuke
0
260
kotlin-lsp の開発開始に触発されて、Emacs で Kotlin 開発に挑戦した記録 / kotlin‑lsp as a Catalyst: My Journey to Kotlin Development in Emacs
nabeo
2
380
メタプログラミングRuby問題集の活用
willnet
1
570
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
1.3k
エンタープライズ企業における開発効率化のためのコンテキスト設計とその活用
sergicalsix
1
120
QAエンジニアがプロダクト専任で チームの中に入ると。。。?/登壇資料(杉森 太樹)
hacobu
PRO
0
150
お試しで oxlint を導入してみる #vuefes_aftertalk
bengo4com
2
1.3k
内部品質・フロー効率・コミュニケーションコストを悪化させ現場を苦しめかねない16の組織設計アンチパターン[超簡易版] / 16 Organization Design Anti-Patterns for Software Development
mtx2s
2
130
ソフトウェア品質を支える テストとレビュー再考 / 吉澤 智美さん
findy_eventslides
1
900
窓口業務を生成AIにおまかせ!Bedrock Agent Coreで実現する自治体AIエージェント!
rayofhopejp
0
290
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
51k
Context Engineering - Making Every Token Count
addyosmani
8
360
Into the Great Unknown - MozCon
thekraken
40
2.1k
Code Reviewing Like a Champion
maltzj
527
40k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
4 Signs Your Business is Dying
shpigford
186
22k
Scaling GitHub
holman
463
140k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Building Adaptive Systems
keathley
44
2.8k
Facilitating Awesome Meetings
lara
57
6.6k
How STYLIGHT went responsive
nonsquared
100
5.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
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 ΞϓϦͱͷ͖߹͍ํ • ͖߹͍ํͱ͍༷ͬͯʑ͋Δ • ιʔείʔυͦͷͷͰͳ͘ ڥߏஙҡ͕࣋ωοΫʹͳΔ߹͋Δ
• ͋Β͔͡Ί͓ͬͯ͘ͱ҆৺