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
SHIBATA Hiroshi
October 10, 2011
Programming
1
770
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.4k
Ruby の開発を支えるエコシステム
hsbt
4
2.2k
Why is building the Ruby environment hard?
hsbt
6
7.1k
開発環境へのこだわり
hsbt
16
12k
OSS ことはじめ
hsbt
5
1.3k
GMO DevNight 05 在宅勤務開始から2ヶ月でやったこと
hsbt
2
500
Development Environment 2019
hsbt
1
320
How to become the Psychic
hsbt
0
1.9k
Software Development
hsbt
1
6.4k
Other Decks in Programming
See All in Programming
技術を改善し続ける
gumioji
0
100
Honoとフロントエンドの 型安全性について
yodaka
7
1.4k
PHP ステートレス VS ステートフル 状態管理と並行性 / php-stateless-stateful
ytake
0
110
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
220
2025.2.14_Developers Summit 2025_登壇資料
0101unite
0
140
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
280
Better Code Design in PHP
afilina
0
150
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
330
昭和の職場からアジャイルの世界へ
kumagoro95
1
410
PHPカンファレンス名古屋2025 タスク分解の試行錯誤〜レビュー負荷を下げるために〜
soichi
1
650
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
140
楽しく向き合う例外対応
okutsu
0
570
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
6
250
Bash Introduction
62gerente
611
210k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
It's Worth the Effort
3n
184
28k
Producing Creativity
orderedlist
PRO
344
40k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Fireside Chat
paigeccino
34
3.2k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
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