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
How to survive in post Rails' world
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
SHIBATA Hiroshi
October 10, 2011
Programming
1
810
How to survive in post Rails' world
SHIBATA Hiroshi
October 10, 2011
Tweet
Share
More Decks by SHIBATA Hiroshi
See All by SHIBATA Hiroshi
How to make faster release cycle of Ruby?
hsbt
2
6k
Ruby の開発を支えるエコシステム
hsbt
4
2.3k
Why is building the Ruby environment hard?
hsbt
6
8.1k
開発環境へのこだわり
hsbt
16
12k
OSS ことはじめ
hsbt
5
1.5k
GMO DevNight 05 在宅勤務開始から2ヶ月でやったこと
hsbt
2
570
Development Environment 2019
hsbt
1
360
How to become the Psychic
hsbt
0
2.1k
Software Development
hsbt
1
6.7k
Other Decks in Programming
See All in Programming
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
230
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
450
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.4k
Patterns of Patterns
denyspoltorak
0
1.4k
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
560
CSC307 Lecture 06
javiergs
PRO
0
680
Fluid Templating in TYPO3 14
s2b
0
130
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
170
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
120
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
280
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Scaling GitHub
holman
464
140k
Prompt Engineering for Job Search
mfonobong
0
160
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
sira's awesome portfolio website redesign presentation
elsirapls
0
150
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Designing for Timeless Needs
cassininazir
0
130
The World Runs on Bad Software
bkeepers
PRO
72
12k
A Soul's Torment
seathinner
5
2.3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
92
Transcript
How to survive in post Rails' world. SHIBATA Hiroshi Eiwa
System Management,Inc.
1SPpMF
SHIBATA Hiroshi a.k.a hsbt tDiary commiter
[email protected]
http://twitter.com/hsbt/ http://www.hsbt.org/ http://github.com/hsbt/
asakusa.rb
None
RubyKaigi 2010
Theme
Conflicts and Resolutions িಥͱղܾ
ࠓ͢͜ͱ ITCU͕ʹӬγε ςϜϚωδϝϯτʹೖࣾͯ͠ ͔ΒؒͰಘΒΕͨ3VCZ ͱ3BJMTͰָ͘͠աͨ͢͝ Ίʹඞཁͳ͜ͱʹ͍ͭͯ͝ հ͠·͢ɻ
Conflict Learning Methodology Resolution
ࠓ͞ͳ͍͜ͱ tDiary
Conflict Learning Methodology Resolution
RubyKaigi2009
SapporoRubyKaigi02
݄ ӬγεςϜϚωδϝϯτೖࣾ
ursm hsbt ͜Μʹͪ ண੮͍ͯ͠·͢
1SPHSBNNFS`T 4QFD
hobby tDiary(cgi) gentoo work excel rails ecosystem before rails post
rails
before Rails IUUQXXXqJDLSDPNQIPUPT!/
tDiary Hiki Kagemai
sourceforge
RubyForge
RAA
post Rails IUUQXXXqJDLSDPNQIPUPTQBUDBSE
None
None
(JU)VC
Conflict Learning Methodology Resolution
ursm hsbt ͜Μʹͪ ண੮͍ͯ͠·͢
Conflicts and Resolutions িಥͱղܾ
3VCZ3BJMT 1SPHSBNNJOH
Enumrator IUUQXXXqJDLSDPNQIPUPTSBDIFMLJMMTFNP
͓ ͔Β·Ͱͷ Λ߹ܭͨ͠Λ ද͍ࣔͨ͠
ITCUղ s = 0 [1, 2, 3, 4, 5].each do
|v| s += v end s
ursmղ (1..5).inject(&:+)
Railsղ (1..5).sum
͓ ͔Β·Ͱͷ Λුಈখʹͨ͠ ྻΛ࡞͍ͨ͠
hsbtղ v = [] [1, 2, 3, 4, 5].each do
|i| v << i.to_f end v
VSTNղ (1..5).map(&:to_f)
͓ ͔Β·Ͱͷͷ ͏ͪΛ࠷ॳʹӽ͑ͨ ΛऔΓग़͍ͨ͠
͓ ͔Β·Ͱͷͷ ͏ͪΛӽ͑ͨ શͯΛऔΓग़͍ͨ͠
͓ SZ
map / inject reject / detect select / each
)BTIFSJUJT
Symbol {:ruby => ‘programming’}
ͨͱ͑IBTIͷLFZͩͬͨ ΓɺΞΫηαͷҾͰ͢Πϯ ελϯεม໊ͩͬͨΓɺ BMJBT@NFUIPEͷҾͰ͢ ϝιου໊ͩͬͨΓͱɺจࣈʹ ҙຯ͚͍ͮͨ࣌͠ʹ͑·͢ɻ http://d.hatena.ne.jp/secondlife/20051026/1130319610
h1 = {‘ruby’ => ‘programming’} h2 = {‘ruby’ => ‘programming’}
h1.each {|k,v| p k.object_id} => 2164547280 h2.each {|k,v| p k.object_id} => 2164501920 IUUQSBJMTPOFEHFCMPHTQPUDPNVTJOHTZNCPMTIUNM
h1 = {:ruby => ‘programming’} h2 = {:ruby => ‘programming’}
h1.each {|k,v| p k.object_id} => 388828 h2.each {|k,v| p k.object_id} => 388828
meta programming
send / method_missing block / Proc / lambda included /
extended eval / instance_eval
Conflict Learning Methodology Resolution
)PX
VSTN ITCU ͜Μʹͪ ண੮͍ͯ͠·͢
(JU)VC
(JU)VC TPNNFMJF
Watch ϑΥϧμߏ ίϛοτϝοηʔδ Commits History
HJUDMPOF
CVOEMFJOTUBMM CVOEMFPQFO
)'"
happy hacking!
HJUDPNNJU HJUQVTI
pull request git format-patch origin/master or
3VCZJTUʹͰ͖Δ͜ͱ IUUQKQSVCZJTUOFUNBHB[JOF 8IBU8F$BO%P
Head First Rails
meta programming
Conflict Learning Methodology Resolution
CFGPSF 3BJMT ͷ࣌ͷؾ࣋ͪ
ΦϨͬͯεήʔײ
ΦϨͬͯεήʔײ ৄ͍͜͠ͱΑ͘Θ͔Βͳ͍ ͚Ͳɺ3VCZͰιέοτΛ ͏ίʔυΛॻ͍ͯΈͨΒ͍ ͱ؆୯ʹಈ͍ͯ͠·ͬͨ࣌ ͷؾ
ΦϨͬͯεήʔײ
ΦϨͬͯεήʔײ 3VCZΛ࢝Ίͱͨ͠--ͷଟ͘ ɺιέοτεϨουɺ (6*ɺਖ਼نදݱͱ͍ͬͨগ͠ෑ ډͷߴ͍ٕज़ཁૉͷΠϯλʔ ϑΣʔεΛɺγϯϓϧͰ͍ ͍͢ܗͰఏڙͯ͘͠Ε͍ͯΔ
ΦϨͬͯεήʔײ ͕ࣗ༨Γৄ͘͠ͳ͍ٕज़ Ͱ͋ͬͯɺඞཁ࠷খݶͷϝ ιουݺͼग़͠Ͱ͜ΕΒͷٕज़ ཁૉΛମݧ͢Δ͜ͱ͕Ͱ͖ɺख ܰʹʮΦϨͬͯεήʔʯײΛ ຯΘ͑ΔͷͰ͋Δɻ
ΦϨͬͯεήʔײ
QPTU3BJMT ͷ࣌ͷؾ࣋ͪ
ͬͱΦϨͬ ͯεήʔײ
ΦϨͬͯεήʔײ IUUQXXXNBDIVKQEJBSZIUNMQ
HJUIVC
ͬͱΦϨͬͯεήʔײ HJUIVCͰͱΓ͋͑ͣGPSL ͯࣗ͠Έʹվͯ͠ QVTI͓͍ͯͨ͠Β͍ͭͷ ؒʹ͔GPSLݩʹऔΓࠐ·Ε ͓ͯྱ·ͰݴΘΕͨ࣌ͷؾ
ͬͱ ΦϨͬͯεήʔײ ΦϨͬͯεήʔײ
TPVSDFGPSHF GFFECBDL
social communication
εήʔײͷՃஔ IUUQXXXqJDLSDPNQIPUPTWJMMFT
HJUIVCFYQMPSFS
PUIFSMBOHVBHF
HJUIVCTQBDF
U%JBSZ PO HJUIVC
U%JBSZ 3FMFBTFE
Conflict Learning Methodology Resolution
3VCZJTUʹͰ͖Δ͜ͱ IUUQKQSVCZJTUOFUNBHB[JOF 8IBU8F$BO%P
ͬͱΦϨͬ ͯεήʔײ
HJUIVCFYQMPSF
(PPE3VCZ-JGF