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.4k
GMO DevNight 05 在宅勤務開始から2ヶ月でやったこと
hsbt
2
510
Development Environment 2019
hsbt
1
320
How to become the Psychic
hsbt
0
1.9k
Software Development
hsbt
1
6.5k
Other Decks in Programming
See All in Programming
sappoRo.R #12 初心者セッション
kosugitti
0
280
Swift Testingのモチベを上げたい
stoticdev
2
140
自力でTTSモデルを作った話
zgock999
0
110
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
270
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
130
DevNexus - Create AI Infused Java Apps with LangChain4j
kdubois
0
120
GoとPHPのインターフェイスの違い
shimabox
2
210
ナレッジイネイブリングにAIを活用してみる ゆるSRE勉強会 #9
nealle
0
160
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
250
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.6k
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
1.1k
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
150
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building Your Own Lightsaber
phodgson
104
6.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Designing for humans not robots
tammielis
250
25k
Designing for Performance
lara
605
68k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
650
Build your cross-platform service in a week with App Engine
jlugia
229
18k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
GraphQLの誤解/rethinking-graphql
sonatard
69
10k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Faster Mobile Websites
deanohume
306
31k
Transcript
How to survive in post Rails' world. SHIBATA Hiroshi Eiwa
System Management,Inc.
1SPpMF
SHIBATA Hiroshi a.k.a hsbt tDiary commiter shibata.hiroshi@gmail.com
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