Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
リファクタリングとtsort
Search
ainame
October 16, 2013
Programming
1.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
リファクタリングとtsort
`ib` gemをリファクタリングして、機能追加した時の話
ainame
October 16, 2013
More Decks by ainame
See All by ainame
Swift 5.7で変わる正規表現を試してみよう
ainame
4
8k
iOSDC 2021 - App Store用スクリーンショットの自動生成をアラビア語対応してSwiftUIで実装してみた
ainame
0
6.1k
DNN/GPU with Ruby #rubykaigi
ainame
2
3.4k
Server Side Swift実用性評価 2017 #iosdc #b
ainame
3
4.5k
Process tons of jobs with Swift
ainame
0
1.9k
Swift on the ObjC #shibuyaswift
ainame
4
940
家族アルバムみてね 開発風景 #realm_jp
ainame
4
4.2k
iOSで無限バックグラウンドアップロード(に挑戦してみた話)
ainame
2
5.4k
RubyMotionについて #mixiwwdc
ainame
2
480
Other Decks in Programming
See All in Programming
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
420
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
330
Railsバージョンを4倍にした話
optim
0
970
ActionController meets Protocol Buffers
sorah
1
800
ChromeでローカルLLM
ryu1013
0
200
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
200
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
370
SODA - FACT BOOK(EN)
sodainc
1
220
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
960
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.7k
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
330
Faster Mobile Websites
deanohume
310
32k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
880
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
GraphQLとの向き合い方2022年版
quramy
50
15k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Google's AI Overviews - The New Search
badams
0
1.7k
We Are The Robots
honzajavorek
0
440
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
3
1.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
ϦϑΝΫλϦϯάͱtsort 2013-10-16 / Shibuya.rb @ainame
ࣗݾհ @ainame / Satoshi Namai גࣜձࣾϛΫγΟ εϚϗΞϓϦΤϯδχΞʹͳΔ༧ఆͩͬͨͷͰ͢ ͕ɺ૬มΘΒͣPerlॻ͍ͯ·͢ ࠷ۙɺRubyMotionͬͯΔ ͘͘ձ
/ RubyMotion Tokyo meetups
ࠓͷ 1.ϦϑΝΫλ1 - ςϯϓϨʔτΤϯδϯಋೖ 2.ϦϑΝΫλ2 - Hash & ArrayΛΦϒδΣΫτԽ 3.tsortಋೖͰػೳվળ
gemΛ͍ͬͨ͡
None
None
ibʹ͍ͭͯ RubyMotionͰInterfaceBuilderΛ͏ͨΊͷgem rake ib:open app/*.rbΛparseͯ͠Stubs.hΛు͘ Interface Builder্ͰOutletΛUIͱ࿈ܞͰ͖Δ https://github.com/yury/ib
ib͕Ruby͔Βੜ
super class͕ઌʹఆٛ ͞Εͯͳ͍ͱμϝ Τϥʔ͕ग़Δͷ ݏͩͬͨ
Կͱͳ͍ͨ͘͠ͳʔ ͱࢥͬͯιʔείʔυಡΜͰΈͨΒ खΛೖΕΔͷ͕ਏͦ͏ͩͬͨͷͰ ϦϑΝΫλϦϯάͯ͠Έͨ
templateΤϯδϯͷಋೖ Stubs.hΛग़ྗ͢ΔͨΊʹίʔυͷதʹͻͳܗίʔ υ͕ຒΊࠐ·Ε͍ͯͨ 1ຕϑΝΠϧΛςϯϓϨʔτϑΝΠϧɺςϯϓϨʔ τͷhelperɺϑΝΠϧੜॲཧͷ3ͭʹ `tilt` gemཱ͕ͭ SinatraͰΘΕͯΔ
Before
writeϝιουʹ ॲཧ͕ϕλॻ͖ ඞͣIOॲཧ͕ൃੜͯ͠ ςετͮ͠Β͍
ϔϧύʔͷ தͰϔϧύʔ͕ݺΕͯ ॲཧ͕͍ͮΒ͍ ྻΞΫηε ͕Ή͍ͣ
After
tiltͰrender͢Δॲཧ RenderingHelperΫϥεʹ viewͷϔϧύʔΛ࣮ ϔομͱ ࣮ϑΝΠϧΛ ϑΝΠϧʹॻ͖ग़͠
͜ͷޙ հ͢ΔϦϑΝΫλϦϯάͰ ϔϧύʔγϯϓϧʹ
Hash & ArrayΛΦϒδΣΫτԽ HashͱArrayͰԿͰσʔλΛදݱ͍ͯ͘͠ͷ͏Μ͟Γ͢Δ data[‘a.rb’][0][:class][0][0] ????????? ڞಉ։ൃ͢Δ࣌ʹۤ͠Ή σʔλΛϥοϓ͢ΔΦϒδΣΫτΛ࣮ def [](key);
@data[key] endͰޓΛ࣋ͨͤΔ ΞΫηαʔΛ༻ҙͯ͠ෳࡶͳΞΫηεΛղܾ
Before
None
After
None
ߏମͰ͞Βʹ ߏԽ ϔϧύʔ ݩσʔλʹΞΫηεग़དྷΔ
ݩͷinfo[:class][0][0] ΑΓ͔Γ͍͢
ґଘؔղܾ Կߟ͑ͣʹϔομʔϑΝΠϧʹॻ͖ͩ͢ͱ XCode্ͰΤϥʔˍwarn͕ग़Δ ্͔Βॱʹ͖ͪΜͱΫϥεఆٛ͞Εͯͳ͍ͱμϝ ґଘؔͷղܾ͕ඞཁʂʂʂʂʂʂʂ tsort͏ͱ͕؆୯ʹղ͚Δʂ
super class͕ઌʹఆٛ ͞Εͯͳ͍ͱμϝ
tsort tsortͱʁ Rubyͷඪ४ϥΠϒϥϦ τϙϩδΧϧιʔτͷRubyͷ࣮ ґଘؔͷղܾʹ͑Δ rubygems, bundlerͱ͔ʹΘΕͯΔ
τϙϩδΧϧιʔτ ༗ແด࿏άϥϑ άϥϑͷؒͷґଘؔΛݩͱʹιʔτ͢Δ ӈͷਤͷ߹ B, A, D, C, Eͷॱ
IB::DependencyResolver ґଘؔղܾ༻ͷΫϥεΛ࣮ parse݁ՌΛड͚औΔ ༗ແด࿏άϥϑʹม tsortͰฒͼସ͑ ฒͼସ͑݁ՌΛฦ͢
Τϥʔ 0 !!!
·ͱΊ طଘgemʹػೳՃ͢Δ࣌ʹ͙͢ʹػೳՃ͕ແ ཧͦ͏ͩͬͨΒগͮͭ͠ϦϑΝΫλϦϯά ύʔϑΣΫτRubyʹࡌͬͯͳ͍͚Ͳɺ tsortͱ͔tiltͱ͔ศརͳͷͰϢʔςΟϦςΟܥͷ ϥΠϒϥϦ࡞Δ͍࣌·͠ΐ͏ʂʂʂ
RubyMotion meetup •@ainameͱ@HIROCASTER͕ओ࠵ •ຖ݄ͷୈೋՐ༵ʹ։࠵Ͱ͘͘ձελΠϧ •RubyMotion։ൃऀͷ@watson1978͞ΜࢀՃ •ձϛΫγΟͷίϥϘϧʔϜ •࣍ճ201311݄5(Ր)Ͱ͢