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
DMM.swift#1 Mergeable Libraryを試した
Search
yuki tamazawa
January 29, 2024
Technology
3
720
DMM.swift#1 Mergeable Libraryを試した
yuki tamazawa
January 29, 2024
Tweet
Share
More Decks by yuki tamazawa
See All by yuki tamazawa
DMMプラットフォームの AI推進を支える情報アーキテクチャ - DMMポイントクラブでのAIリーダブル化の取り組み事例
srea
0
100
アラートなどの割り込み表示を制御する
srea
2
590
DMM 次世代SDK開発チーム
srea
0
470
mablりましょう。
srea
0
1.1k
OSSと私
srea
1
560
ソフトウェア品質を支える E2Eテストのパイプライン作り
srea
3
3.4k
Other Decks in Technology
See All in Technology
Knowledge Work の AI Backend
kworkdev
PRO
0
280
障害対応訓練、その前に
coconala_engineer
0
200
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
200
Amazon Connect アップデート! AIエージェントにMCPツールを設定してみた!
ysuzuki
0
140
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
990
TED_modeki_共創ラボ_20251203.pdf
iotcomjpadmin
0
150
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
610
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
470
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
510
さくらのクラウド開発ふりかえり2025
kazeburo
2
1.2k
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
250
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
770
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
170
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
47
Ruling the World: When Life Gets Gamed
codingconduct
0
100
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
150
Designing Experiences People Love
moore
143
24k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Google's AI Overviews - The New Search
badams
0
870
Prompt Engineering for Job Search
mfonobong
0
130
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
2.8k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
29
Transcript
%..TXJGU .FSHFBCMF-JCSBSZΛࢼͨ͠
w ۄᖒ༟و w ϓϥοτϑΥʔϜࣄۀຊ෦ w %..ϙΠϯτΫϥϒͷ։ൃ w ೝূ4%,ͷ։ൃ w (JU)VCTSFB
ൃදऀ
w .FSHFBCMF-JCSBSZͱ w Ϛʔδͨ͠ΞϓϦ͕ಈ͘·Ͱ w ֤छσʔλൺֱ w ·ͱΊ
.FSHFBCMF-JCSBSZͱ
.FSHFBCMF-JCSBSZͱ w 88%$Ͱൃද͞Εɺ9DPEF͔Βར༻Մೳ w ։ൃ࣌ͷϏϧυͱΞϓϦىಈΛߴԽΛཱ྆͢Δػೳ w ༻ʹ.FSHFBCMFͳ9$'SBNFXPSL࡞Մೳ
ϦϯΫͷछྨ ੩తϦϯΫ ಈతϦϯΫ ΞϓϦىಈ Ϗϧυ࣌ؒ ͍ ͍ ͍ ͍
Feature B App UI Feature A App .FSHFE 'FBUVSF" 'FBUVSF#
6* App Merged Feature A Feature B σόοάϏϧυ ϦϦʔεϏϧυ ϑΝΠϧαΠζ͔ᷮʹେ͖͘ͳΔΒ͍͠
.FSHFBCMF-JCSBSZͷར༻ํ๏ 9DPEFͰઃఆ͢Δ߹
.FSHFBCMF-JCSBSZͷར༻ํ๏ 9DPEF(FOͷ߹ w 4FUUJOHTͰԼهը૾ͷΑ͏ʹهࡌ͢Δ
ɹɹϚʔδͨ͠ΞϓϦ͕ಈ͘·Ͱ
%..ϙΠϯτΫϥϒͷϓϩδΣΫτߏ w ɹ9DPEF(FO w .VMUJ.PEVMF ׂػೳͰׂ͠ݸ΄Ͳ w 4XJGU1. 'JSFCBTFͳͲʜ w
$PDPB1PET 4XJGU1.ʹରԠ͍ͯ͠ͳ͍ϥΠϒϥϦ
͍͔͕ͭ͘ൃੜ
Feature B App Common Feature A ̍Ұ෦ΛϚʔδ͢Δέʔε &NCFE4JHO %P/PU&NCFE
Feature B App Library missing. Feature A Common 😱
None
Feature B App Common Feature A Merged Framework ղܾํ๏
Feature B App Feature A Merged Framework Common
Feature B App Common Feature A Merged Framework API UI
Domain
Feature B App Feature A Merged Framework Domain UI API
Common
̎MJOLFSΤϥʔ 9DPEFdͰൃੜɻ9DPEFͰൃੜͤͣɻ
̏#VOEMF͕ਖ਼͘͠ಡΈࠐΊͳ͍ #VOEMF GPS"OZ$MBTT Ͱ.BJO#VOEMFʹ͍ͯ͠·͏ɻ
̏#VOEMF͕ਖ਼͘͠ಡΈࠐΊͳ͍ Ϟδϡʔϧ໊Λͱʹ1BUIΛߏஙͯ͠ɺ#VOEMFΛੜ͢Δ͜ͱͰରԠ
̐9DPEF(FOͰͷࢦఆϛε QSPKFDUZNMʹl.BOVBMzͰͳ͘lNBOVBMzͱهࡌ͢Δ
̑(FOFSJDT %FCVHϏϧυʹݶΓɺ(FOFSJDTΛͬͨΫϥεͷ4ZNCPMղܾ͕Ͱ͖ͳ͍
̑(FOFSJDT &OBCMF5FTUBCJMJUZΛ/Pʹ͢Δ͜ͱͰճආՄೳ !UFTUBCMFJNQPSU999͕ར༻Ͱ͖ͳ͘ͳΔ
None
֤छσʔλൺֱ
σʔλൺֱʹ͍ͭͯ w શʹಉҰͷڥͰࢼ͍ͤͯ·ͤΜɻ w ϏϧυͰ͖ͳ͍ͳͲͷରॲʹΑΔӨڹؚ͕·Ε·͢ɻ
Ϗϧυͷൺֱ w Ϗϧυ࣌ؒͷࠩ w Ωϟογϡߏͷࠩ
Ϗϧυͷൺֱ %FCVH 0'' .BOVBM $MFBO#VJME *ODSFNFOUBM#VJME EJ ff T
T T T ܭଌϚγϯɿ.BD#PPL1SP()[ίΞ*OUFM$PSFJ(#4POPNB9DPEF Ϛʔδ͢ΔϑϨʔϜϫʔΫͷ $PEF4JHO$PQZॲཧ͕૿Ճ $SFBUF.FSHFE#JOBSZ
Ϗϧυͷൺֱ 3FMFBTF 0'' .BOVBM $MFBO#VJME T T ܭଌϚγϯɿ.BD#PPL1SP()[ίΞ*OUFM$PSFJ(#4POPNB9DPEF $SFBUF.FSHFE#JOBSZ
Mergeable OFF Mergeable ON
Ϗϧυͷൺֱ .FSHFE'SBNFXPSLͷߏࠩ σόοά ϦϦʔε
ΞϓϦىಈͷൺֱ *OTUSVNFOUTBQQ"QQ-BVODI ܭଌɿJ1IPOFNJOJJ04
ΞϓϦىಈͷൺֱ *OTUSVNFOUTBQQ"QQ-BVODI
ΞϓϦىಈͷൺֱ *OTUSVNFOUTBQQ"QQ-BVODI"QQ-JGFDZDMF w *OJUJBMJ[JOH w 1SPDFTT$SFBUJPO w 4ZTUFN*OUFSGBDF*OJUJBMJ[BUJPO w -BVODIJOH
w 6*,JU*OJUJBMJ[BUJPO w EJE'JOJTI-BVODIJOH8JUI0QUJPOT w 6*,JU4DFOF$SFBUJPO w TDFOF8JMM$POOFDU5P w 'PSFHSPVOE w "DUJWF
ΞϓϦىಈͷൺֱ 🥶$PME-BVODI ☺8BSN-BVODI ϝϞϦ্ ϓϩηε ଘࡏ͠ͳ͍ ଘࡏ͠ͳ͍ γεςϜαʔϏεͷ Ұ෦͕ଘࡏ ଘࡏ͠ͳ͍
ॳճىಈ εϚϗ࠶ىಈޙ ̍ىಈ͞Εͯ ͦͷޙڧ੍ऴྃ ঢ়ଶ
ΞϓϦىಈͷൺֱ .FSHFBCMF-JCSBSZ0'' NT 🥶$PME-BVODI ☺8BSN-BVODI T
ΞϓϦىಈͷൺֱ .FSHFBCMF-JCSBSZ0/ NT NT 🥶$PME-BVODI ☺8BSN-BVODI
ΞϓϦىಈͷൺֱ 🥶$PME-BVODI.FSHF0/ 🥶$PME-BVODI.FSHF0'' T Կ͔͕͋Δ NT ࠩNT
ΞϓϦىಈͷൺֱ .FSHFBCMF-JCSBSZ0'' ֤ϞδϡʔϧͷಈతϦϯΫॲཧ
ΞϓϦىಈͷൺֱ .FSHFBCMF-JCSBSZ0/ "VUPNBUJD ಈతϦϯΫॲཧ͕ແ͘ͳΔ
όΠφϦʔͷൺֱ w ϑΝΠϧαΠζͷҧ͍ w γϯϘϧͷҧ͍ w ϥΠϒϥϦࢀরͷҧ͍
ϑΝΠϧαΠζͷൺֱ 0'' "VUPNBUJD "QQ#JOBSZ 'SBNFXPSLT .# .# $SFBUF.FSHFE#JOBSZ .# .#
.# .# OTHER_LDFLAGS = -Wl,-no_exported_symbols .# .BOVBM .# .# .# .# .#
γϯϘϧͷൺֱ ONίϚϯυ 0'' "VUPNBUJD "QQ#JOBSZ 4ZNCPM $SFBUF.FSHFE#JOBSZ
.BOVBM
ϥΠϒϥϦࢀরͷൺֱ PUPPM-BQQ#JOBSZ 0'' 0/ 🈳
·ͱΊ w ։ൃମݧΛଛͳΘͣϢʔβʔମݧΛվળͰ͖ΔՄೳੑ͋Γ w ϦιʔεपΓͷѻ͏ํ๏ʹ՝ײ͋Γ w *OTUSVNFOUTͷ"QQ-BVODIͰɺݱঢ়ͷѲ͔Β࢝ΊΔͱྑ͍
ͦͷଞ ࠓճऔΓ্͛ΒΕͳ͔ͬͨͷ w J04͚ͷ#VOEMFݕࡧαϙʔτΛແޮԽ OTHER_LDFLAGS = -Wl,-no_merged_libraries_hook
ࢀߟࢿྉ w .FSHFBCMF-JCSBSZ w 88%$.FFUNFSHFBCMFMJCSBSJFT w $POGJHVSJOHZPVSQSPKFDUUPVTFNFSHFBCMFMJCSBSJFT w *OTUSVNFOUT"QQ-BVODI w
88%$0QUJNJ[JOH"QQ-BVODI w 3FEVDJOHZPVSBQQ`TMBVODIUJNF
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ