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
モダンなシステム構成を取り入れ続けることができる組織作り #iosdc
Search
mao
September 16, 2017
Technology
10
4.5k
モダンなシステム構成を取り入れ続けることができる組織作り #iosdc
iOSDCで発表した内容です
mao
September 16, 2017
Tweet
Share
More Decks by mao
See All by mao
ヤフーアプリの品質向上戦略
nishimao
4
2.4k
ドッグフーディングしやすい環境を整える
nishimao
15
6.9k
Other Decks in Technology
See All in Technology
スタッフエンジニアの道: The Staff Engineer’s Path
snoozer05
PRO
43
14k
App Router を実プロダクトで採用して見えてきた勘所をちょっとだけ紹介
marokanatani
1
920
2024年版 運用者たちのLLM
nwiizo
3
590
スーパーマリオRPGのリメイク版の変更点からみるUX
nishiharatsubasa
1
340
効果的なオンコール対応と障害対応
ryuichi1208
5
2.8k
Fediverse Discovery Providers overview
andypiper
0
160
Jetpack Compose Modifier 徹底解説 / Jetpack Compose Modifier
wiroha
0
160
CRTO/CRTL/OSEPの比較・勉強法とAV/EDRの検知実験
chayakonanaika
1
1.1k
サーバー管理しないサーバーサービスManaged DevOps Pool
kkamegawa
0
120
持続可能なソフトウェア開発を支える『GitHub CI/CD実践ガイド』
tmknom
4
310
不動産tech Product Night#2_AIことはじめ_GA橋本
takehikohashimoto
0
180
Segment Anything Model 2
tenten0727
3
650
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
663
120k
Documentation Writing (for coders)
carmenintech
65
4.3k
[RailsConf 2023] Rails as a piece of cake
palkan
48
4.6k
Atom: Resistance is Futile
akmur
261
25k
Automating Front-end Workflow
addyosmani
1365
200k
GitHub's CSS Performance
jonrohan
1029
450k
Build The Right Thing And Hit Your Dates
maggiecrowley
30
2.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
Being A Developer After 40
akosma
84
590k
Happy Clients
brianwarren
96
6.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
322
23k
The Mythical Team-Month
searls
218
43k
Transcript
݄ ຏԧ ϞμϯͳγεςϜߏΛऔΓೖΕ ଓ͚Δ͜ͱ͕Ͱ͖Δ৫࡞Γ
ࣗݾհ ໊લ ຏԧʢʹ͠ ·͓ʣ ࠷ۙͷࣄ !NBP@OJTIJ
γεςϜߏͷมߋ େมͰ͢ΑͶ
ͭͬͨ͘ޙ ࠷ߴʹ͖Ε͍ͳίʔυ͕ॻ͚ͨʂ
ೋिؒޙ
ޙ͔Βࢥ͏͜ͱ ࡞ͬͨ࣌ʹ͍͍ײ͡ʹͰ͖ͨͭ Γͩͬͨͷʹɾɾ ୭ͩ͜ͷίʔυॻ͍ͨͷ
ੈͷதมԽ͕͍ • ৽͍͠ػೳՃ • ϢʔβχʔζͷมԽ • ݴޠͷਐԽ
ਐา͢ΔΞʔΩςΫνϟ • .7$ • .71 • .77. • $MFBO
"SDIJUFDIUVSF • 'MVY ҰํͰطଘγεςϜͷ ֦ுۀ
৽͍͠ΞʔΩςΫνϟΛΔ͜ͱ ੈͷதͷ՝ΛΔνϟϯε • ҋӢͳಋೖྑ͘ͳ͍ • ͚ͩͲ࣮ફ͠ͳ͍ͱཧղ͕ਂ· Βͳ͍
Ϗδωεଆ͔ΒݟΔͱ γεςϜߏม͑ͳ͍બ ҆ఆՔಇ͍ͯ͠Δ͠ɺʑֶशίετԼ͕Δ
ٕज़ϩοΫΠϯ ͯ͠͠·͏যΓ
ཧͷ͔ͨͪ • ΞϓϦͷʹ͋Θͤͨγες Ϝߏݟ͠ • ͔͠ϏδωεΛࢭΊͣʹ
• ٕज़Ξϓϩʔν • ৫Ξϓϩʔν ྆ํ͕ඞཁ Ͳ͏͢Δʁ
ͨͲΓண͍ͨਅཧͷڞ༗ • ϦϦʔεͷΞϓϦ • Λ͑Δ4UPSZCPBE • Λ͑ΔιʔεϑΝΠϧ
ٕज़Ξϓϩʔν
ٕज़Ξϓϩʔν • ৽͍͠ΞʔΩςΫνϟΛࢼ͢ • プロトタイプで試す • ここはまずやりましょう ·ͣখͬͯ͘͞ΈΔ
ίϯύΠϧ͕େࣄ • ͳͥʁ • 未知なことをやるから • あーでもないこーでもないがおきる • 開発のリズムが崩れる
πʔϧͰܭଌ #VJME5JNF"OBMZ[FSGPS9DPEF • Ϋϥεɺؔ୯ҐͰ͕͔Δ
վળύλʔϯͷྫ • ԋࢉࢠͷॲཧΛݮΒ͢ʢTॖʣ • もちろん遅くなっているところだけでいい • ྻͷՃΛݮΒ͢ʢTॖʣ • ArrayOfStuff +
[Stuff] → ArrayOfStuff.append(stuff) • ࡾ߲ԋࢉࢠΛݮΒ͢ʢTॖʣ • 遅くなっているところだけ
·Ίࣝ ίϯύΠϧ͕ ͍ͱϫʔχϯά Λݟͯݟ͵;Γ͢ Δ͜ͱ͋Δ
ΑΓ͘ίϯύΠϧ ͢ΔͨΊʹ
γεςϜΛׂ͢Δ • ͳͥʁ • プリビルドができる • 脳のコンパイル速度もあがる • ここから先はシステムが別 •
毎回の全体コンパイルを避ける • CDがより高速に
ΞϯϒϨϥπϦʔ ϝϦοτɿࢹ֮తʹ͍ۙॴʹஔͰ͖Δ
%ZOBNJD'SBNFXPSL ϝϦοτɿকདྷతʹผ3FQPʹΓग़͍͢͠
%'SBNFXPSLΛผ3FQPʹ ϝϦοτɿผϓϩδΣΫτʹڞ༗ɺϓϦϏϧυՄ
ׂ͢Δͱʁ Ұ෦ͷػೳͷγεςϜߏΛมߋ ͢Δ͜ͱ͕Ͱ͖Δ MVC MVVM
%'SBNFXPSLຖͷઃܭ 画面名 設計 解決したかった 課題 トップ MVVM Viewの更新タイミングを統一した い 商品詳細
コードベースの 画面設計 Storyboardマージしたくない、UIの テストコードを書きやすくしたい その他 MVC よく知られている構成で、新規メ ンバ参画を容易に
ͪΖΜ՝ γεςϜ͕ෳࡶԽ͢ΔͷͰʁ • ͦͷ௨Γ • しかし、システム全刷新の選択は 容易ではない • ࣮ܦݧ͕࠷దղΛ୳ͨ͢Ίͷ ݂ͱͳΓͱͳΔ
৫Ξϓϩʔν
Α͍৫ɺνʔϜ ʹԿ͕ඞཁʁ • ৽͍͠ߟ͑ํΛऔΓೖΕΔڥ • 一方的な知識のインプット? • さてどうやる?
࣮ࡍͲ͏͍ͬͯΔʁ 91ͰϖΞͷ૬खΛຖϩʔςʔγϣϯ͠ͳ͕Β
͍͍͜ͱʁ • ͠ͳ͕Βઃܭ • ޓ͍ͷࣝަ • ʮͳͥͦ͏ߟ͑ ͨͷ͔ʁʯͱ͍
͏ίʔνϯά • ଐਓԽղফ
͞Βʹʁ • ҰਓΑΓೋਓ Ͱߟ͑ͨͷͷ ํ͕ࣗ৴͕ग़Δ • ࣗͨͪͰܾΊ Δɺͱ͍͏ҙࢥ
ܾఆܦݧ
ଞͷʁ ٿͰͷϦϑϨογϡɻϖΞͱͷ࿈ܞྗ্
ଞͷʁ ۀېࢭ ʢཧ৬ͪΐͬͱ͚͍ͩʣ
ͦͷ݁Ռ͓͖ͨ͜ͱ • ۀ͕ݮͬͨ • ペアプロは疲れるのもある • 新しいことに時間を使える • ҙݟަ͕׆ൃʹ •
ϏδωεΛࢭΊͳ͍γεςϜมߋ
·ͱΊ ٕज़Ξϓϩʔν • ͘͢Δ͜ͱΛٻ ৫Ξϓϩʔν • ձΛ૿͢ •
ҰਓΑΓೋਓͷߟ͑
͋͘Γଓ͚Δ͜ͱ Ϟμϯͷۙಓ