Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Development Environment 2019
Search
SHIBATA Hiroshi
June 14, 2019
Technology
390
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Development Environment 2019
SHIBATA Hiroshi
June 14, 2019
More Decks by SHIBATA Hiroshi
See All by SHIBATA Hiroshi
How to make faster release cycle of Ruby?
hsbt
2
6.4k
Ruby の開発を支えるエコシステム
hsbt
4
2.4k
Why is building the Ruby environment hard?
hsbt
6
8.6k
開発環境へのこだわり
hsbt
16
12k
OSS ことはじめ
hsbt
5
1.6k
GMO DevNight 05 在宅勤務開始から2ヶ月でやったこと
hsbt
2
610
How to become the Psychic
hsbt
0
2.1k
Software Development
hsbt
1
6.8k
Social Inclusion for Engineering Organization
hsbt
0
1.2k
Other Decks in Technology
See All in Technology
Genieを崇めよ
kameitomohiro
0
170
絵ではじめるKubernetesセキュリティ
aoi1
5
710
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
150
CLIライブラリ開発を支える技術
htnabe
0
150
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
3
1.2k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
事業課題から技術的負債に向き合う
sansantech
PRO
2
2.3k
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
3
2.7k
PQC移行の今 -- IETF からみた現在地
satokan
3
120
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
410
SREの視点で考えるSIEM活用術 〜AWS環境でのセキュリティ強化〜
cscengineer
PRO
0
320
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
180
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
710
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
360
Building Adaptive Systems
keathley
44
3.2k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Leo the Paperboy
mayatellez
10
2.3k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
830
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Transcript
σϑΥϧτઃఆͰΒ͍ͨ͠ ࣲాതࢤ / GMO Pepabo, Inc. 2019.06.14 Pepabo Tech Friday
June ։ൃڥ 2019
ڥΛඋ͢Δͷઐ৬ͷᅂΈ
ϓϩάϥϚͷେਆث wλʔϛφϧ w4IFMM wΤσΟλ
ϓϩάϥϚͷେਆث wλʔϛφϧ w4IFMM wΤσΟλ wϒϥβ
λʔϛφϧ wߴઐ5FSB5FSN wେֶQVUUZ wࣾձਓJ5FSN wࣾձਓϖύϘ5FSNJOBMBQQ wݱࡏ"MBDSJUUZ
4IFMMͷར༻ཤྺ wߴઐUDTI wେֶࣾձਓCBTI wࣾձਓϖύϘೖࣾલ·Ͱ[TI wݱࡏpTI
ΤσΟλ wߴઐࣾձਓ&NBDT wࣾձਓϖύϘೖࣾલ·Ͱ"UPN wݱࡏ7JTVBM4UVEJP$PEF
ಓ۩ΛબͿͱ͖ͷϙϦγʔ
ͷબϙϦγʔ wࣗͷײ֮ʹ͍ۙඪ४ઃఆͷιϑτΣΞΛ͏ɺ߹Θͳ͍ͱ͜Ζ ΧελϚΠζ͔͕ࣗ׳ΕΔɻ w8JOEPXTͰग़དྷΔ͚ͩಉ͡ૢ࡞͕ՄೳͳιϑτΣΞΛ͏ɻ w3VTUͰॻ͔Ε͍ͯΔπʔϧ͍͍ͩͨྑ͍ ͳΜͱͳ͘
"MBDSJUUZ w(16ΛͬͨͨΒͯ͘͵Δ͵Δಈ͘λʔϛφϧ wJ5FSNͷλϒػೳ͕ͳ͍ͷͰUNVYͰؤு͍ͬͯΔ wઃఆ͕ldDPOpHBMBDSJUUZBSBDSJUUZZNMzͱϙʔλ ϒϧͳͷ͕ྑ͍ɻ
pTI w#BTI;TIͷγΣϧ͕ಈ͔ͳ͍໘ͳͭ ఘΊͨ wઃఆΛೖΕͳ͍͍ͯͩͨ͘Γ͍ͨ͜ͱ ಛʹཤྺ ͕Ͱ͖Δ wϓϥάΠϯγεςϜͷpTIFSNBOͬͯɺڥͩ ͍͍ͨ࠶ݱՄೳ
74$PEF w֦ு͋·ΓೖΕͳ͍ ඞਢ&NBDT'SJFOEMZ,FZT͚ͩ wϦϞʔτMJWFTIBSFͳͲࢼ͠ʹೖΕΔ͚Ͳ͍͍ͩͨ์ஔ wAFAʹΤΠϦΞεͯ͠Δ wλʔϛφϧͱߦͬͨΓདྷͨΓͯ͠ޮѱ͍ͱײ͡Δ͕࣌͋ΔͷͰΤ σΟλ͚ͩͰ݁Ͱ͖ΔΑ͏ʹؤுΓ͍ͨʜ
։ൃڥͰ࠷ۙڵຯ͕͋Δ͜ͱ
࠷ۙڵຯ͕͋Δ͜ͱ w(/6DPSFVUJMTͷஔ͖͑ w(&.@)0.&ͷڞ༗ w9%(@
(/6DPSFVUJMTͷஔ͖͑ wMTFYBMTE wDBUCBU wHSFQUIF@TJMWFS@TFBSDIFSSJQHSFQ ͍͍ͩͨ3VTUͷπʔϧͳͷͰ3VTUؤுͬͯ͘Ε
(&.@)0.&ͷڞ༗ w(&.@)0.&Λઃఆ͢Δͱ3VCZ(FNTͦͷσΟϨΫτϦʹHFN ΛೖΕΔɻະࢦఆͷ߹ҎԼɻ w 3VCZ(FNT3VCZͰॻ͔Ε͍ͯΔίʔυͱ$Ͱॻ͔Ε͍ͯΔ ίʔυ͕͋Δ͕3VCZͰॻ͔Ε͍ͯΔίʔυHFNTQFDͰ໌ࣔ͠ ͯͳ͍ݶΓෳόʔδϣϯͰڞ༗ͯ͠ಈ͔͢͜ͱ͕Ͱ͖Δ ~ > l
~/.rbenv/versions/2.6.0-dev/lib/ruby/gems/2.6.0/ build_info cache doc extensions gems specifications
(&.@)0.&Λڞ༗ͯ͠Έͨ w +3VCZ 5SV⒐F3VCZશͯͰ͏HFNΛಉ͡σΟϨΫτϦ ʹೖΕΔ w ͰೖΕͨHFN͕Ͱͳ͍ɺͱ͍͏͜ͱ͕ͳ͘ͳͬͯḿΔ w ࣮HFNTQFD͕૿͑ΔͱSVCZͷىಈ͘ͳΔ w
+3VCZͱࠞͥΔͱ3VCZ(FNTͷෆ۩߹͕ͲΜͲΜݟ͔ͭΔ ~ > l .local/share/gem/gems | wc -l 3843
$֦ுϦϏϧυ͢Δඞཁ͕͋Δ #!/usr/bin/env ruby require 'rubygems/commands/pristine_command' gems = Gem::Specification.all.map do |spec|
[spec.name, spec.version] if spec.platform == RUBY_ENGINE && spec.missing_extensions? end.compact.uniq gems.each do |n,v| cmd = Gem::Commands::PristineCommand.new cmd.options[:args] = [n] cmd.options[:version] = v cmd.execute end
ຖ࠷৽൛ʹ͢Δศརͳͭ #!/usr/bin/env bash eval "$(rbenv init -)" rbenv shell --unset
brew upgrade brew cask upgrade rbenv global system rbenv uninstall -f 2.7.0-dev rbenv install 2.7.0-dev rbenv global 2.7.0-dev gem update rbenv shell 2.4 ~/Documents/github.com/hsbt/tools/exe/all-pristine rbenv shell 2.5 ~/Documents/github.com/hsbt/tools/exe/all-pristine rbenv shell 2.6 ~/Documents/github.com/hsbt/tools/exe/all-pristine rbenv shell 2.7 ~/Documents/github.com/hsbt/tools/exe/all-pristine ~/Documents/github.com/hsbt/tools/exe/gem-shebang rbenv shell --unset
͜ΕΛϓϩάϥϚશһʹ ఏڙ͍ͨ͠ΜͩΑͳ͋
9%(@$0/'*(@ wdDPOpHͱdMPDBMTIBSFʹઃఆϑΝΠϧΛஔ͢Δ wdͷԼʹ͍ΖΜͳϑΝΠϧ͕ͨ͘͞ΜʹͳΒͳͯ͘ศར w࠷ۙͷπʔϧΛݟͯΔͱ͘Β͍9%(Λ͏Α͏ʹͳ͖ͬͯͯ ͍Δɻ w3VCZͷπʔϧͦΕΒΛ͏Α͏ʹ։ൃͯ͠ΔΑ wIUUQTHJUIVCDPNSVCZSVCZQVMM
͕࣌ؒ͋Ε খཻͳπʔϧͷօ͞Μ
খཻͳπʔϧͨͪ wHFNDPEFTFBSDI wBMMSVCZ wHFNTSD
Demo ~ > gemsearch extension_build_error rb2exe-0.3.0/bin/traveling-ruby-2.2.2/l32/lib/ruby/2.2.0/rubygems/installer.rb: def extension_build_error(build_dir, output, backtrace
= nil) # :nodoc: rb2exe-0.3.0/bin/traveling-ruby-2.2.2/l64/lib/ruby/2.2.0/rubygems/installer.rb: def extension_build_error(build_dir, output, backtrace = nil) # :nodoc: rb2exe-0.3.0/bin/traveling-ruby-2.2.2/osx/lib/ruby/2.2.0/rubygems/installer.rb: def extension_build_error(build_dir, output, backtrace = nil) # :nodoc: rb2exe-0.3.0/bin/traveling-ruby-2.2.2/win/lib/ruby/2.2.0/rubygems/installer.rb: def extension_build_error(build_dir, output, backtrace = nil) # :nodoc: ruby-compiler-0.1.1/vendor/ruby/lib/rubygems/installer.rb: def extension_build_error(build_dir, output, backtrace = nil) # :nodoc: rubygems-update-2.7.7/lib/rubygems/installer.rb: def extension_build_error(build_dir, output, backtrace = nil) # :nodoc: rubygems-update-2.7.7/lib/rubygems/installer.rb: deprecate :extension_build_error, :none, 2018, 12
Demo all-ruby -e "puts ‘foo'&.match?(/foo/)" all-ruby -e "require 'tempfile'; p
Tempfile.new.close!” all-ruby -e "require 'io/console'; p IO.method_defined?(:noecho)” all-ruby -e "require 'uri'; puts URI.const_defined?(:DEFAULT_PARSER)” all-ruby -e "p [].respond_to? :flat_map"
Demo ~ > gem i rails clone http://rubyonrails.org -> /Users/hsbt/Documents/rubyonrails.org
error Could not find version control system: http://rubyonrails.org exists /Users/hsbt/Documents/github.com/rails/rails Successfully installed rails-5.2.3 1 gem installed