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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
SHIBATA Hiroshi
October 10, 2011
Programming
830
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to survive in post Rails' world
SHIBATA Hiroshi
October 10, 2011
More Decks by SHIBATA Hiroshi
See All by SHIBATA Hiroshi
How to make faster release cycle of Ruby?
hsbt
2
6.3k
Ruby の開発を支えるエコシステム
hsbt
4
2.4k
Why is building the Ruby environment hard?
hsbt
6
8.5k
開発環境へのこだわり
hsbt
16
12k
OSS ことはじめ
hsbt
5
1.5k
GMO DevNight 05 在宅勤務開始から2ヶ月でやったこと
hsbt
2
600
Development Environment 2019
hsbt
1
380
How to become the Psychic
hsbt
0
2.1k
Software Development
hsbt
1
6.7k
Other Decks in Programming
See All in Programming
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
580
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
130
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
370
自作OSでスライド発表する
uyuki234
1
3.7k
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
170
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
250
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
260
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
240
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
160
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
220
えっ!!コードを読まずに開発を!?
hananouchi
0
170
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
55
12k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
260
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
Accessibility Awareness
sabderemane
1
150
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
230
Amusing Abliteration
ianozsvald
1
220
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
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