Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How to survive in post Rails' world
Search
SHIBATA Hiroshi
October 10, 2011
Programming
1
800
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
5.8k
Ruby の開発を支えるエコシステム
hsbt
4
2.3k
Why is building the Ruby environment hard?
hsbt
6
7.8k
開発環境へのこだわり
hsbt
16
12k
OSS ことはじめ
hsbt
5
1.4k
GMO DevNight 05 在宅勤務開始から2ヶ月でやったこと
hsbt
2
560
Development Environment 2019
hsbt
1
350
How to become the Psychic
hsbt
0
2k
Software Development
hsbt
1
6.6k
Other Decks in Programming
See All in Programming
flutter_kaigi_2025.pdf
kyoheig3
2
380
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
500
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
220
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
mackee
5
2.5k
スタートアップを支える技術戦略と組織づくり
pospome
8
13k
Duke on CRaC with Jakarta EE
ivargrimstad
0
300
しっかり学ぶ java.lang.*
nagise
1
460
Level up your Gemini CLI - D&D Style!
palladius
1
130
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
8
4.7k
Building AI with AI
inesmontani
PRO
1
380
WebRTC と Rust と8K 60fps
tnoho
2
800
生成AIを活用したリファクタリング実践 ~コードスメルをなくすためのアプローチ
raedion
0
160
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
350
Context Engineering - Making Every Token Count
addyosmani
9
440
Thoughts on Productivity
jonyablonski
73
4.9k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Scaling GitHub
holman
464
140k
Git: the NoSQL Database
bkeepers
PRO
432
66k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
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