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
770
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DMM.swift#1 Mergeable Libraryを試した
yuki tamazawa
January 29, 2024
More Decks by yuki tamazawa
See All by yuki tamazawa
DMMプラットフォームの AI推進を支える情報アーキテクチャ - DMMポイントクラブでのAIリーダブル化の取り組み事例
srea
0
3.1k
アラートなどの割り込み表示を制御する
srea
2
630
DMM 次世代SDK開発チーム
srea
0
500
mablりましょう。
srea
0
1.1k
OSSと私
srea
1
590
ソフトウェア品質を支える E2Eテストのパイプライン作り
srea
3
3.4k
Other Decks in Technology
See All in Technology
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
14
2.1k
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
360
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
2
420
マルチアカウント環境でSecurity Hubの運用、その後どうなった? / SRE NEXT 2026 miniLT会
genda
0
100
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
300
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
3.1k
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
5.9k
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
260
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
420
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
140
Network Firewallやっていき!
news_it_enj
0
170
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
RailsConf 2023
tenderlove
30
1.5k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
63
55k
The agentic SEO stack - context over prompts
schlessera
0
850
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
170
Faster Mobile Websites
deanohume
310
32k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Building Adaptive Systems
keathley
44
3.1k
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
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ