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
Salesforceプロジェクトのバージョン管理
Search
Taiki Yoshikawa
August 02, 2023
Technology
0
1.3k
Salesforceプロジェクトのバージョン管理
tyoshikawa1106
Taiki Yoshikawa
August 02, 2023
Tweet
Share
More Decks by Taiki Yoshikawa
See All by Taiki Yoshikawa
Salesforce World Tour Tokyo 2023 Day 2
tyoshikawa1106
0
110
Salesforce World Tour Tokyo 2023 Day 1
tyoshikawa1106
0
42
Service Cloudの導入設定の始め方
tyoshikawa1106
0
450
Salesforce開発環境構築 (2023年版)
tyoshikawa1106
0
840
Sales Enablement (myTrailhead) の導入設定
tyoshikawa1106
0
490
Salesforce World Tour Tokyo 2022
tyoshikawa1106
0
940
Other Decks in Technology
See All in Technology
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
250
Amplifyとゼロからはじめた AIコーディング 成果と展望
mkdev10
1
290
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
3
160
從四件事帶你見識見識 事件驅動架構設計 (EDA)
line_developers_tw
PRO
0
130
In Praise of "Normal" Engineers (LDX3)
charity
2
1k
Copilot Agentを普段使いしてわかった、バックエンド開発で使えるTips
ykagano
1
1.3k
Autonomous Database サービス・アップデート (FY25)
oracle4engineer
PRO
2
780
「どこにある?」の解決。生成AI(RAG)で効率化するガバメントクラウド運用
toru_kubota
2
450
AWS と定理証明 〜ポリシー言語 Cedar 開発の舞台裏〜 #fp_matsuri / FP Matsuri 2025
ytaka23
9
2.5k
IAMのマニアックな話 2025を執筆して、 見えてきたAWSアカウント管理の現在
nrinetcom
PRO
4
600
型システムを知りたい人のための型検査器作成入門
mame
15
3.9k
Perk アプリの技術選定とリリースから1年弱経ってのふりかえり
stomk
0
110
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
GitHub's CSS Performance
jonrohan
1031
460k
Navigating Team Friction
lara
186
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Writing Fast Ruby
sferik
628
61k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Transcript
5BJLJ:PTIJLBXB 4BMFTGPSDFϓϩδΣΫτͷόʔδϣϯཧ
4BMFTGPSDFϓϩδΣΫτͷόʔδϣϯཧʹ͍ͭͯ ˞%FW0QT$FOUFSͰ͜Ε·ͰΑΓόʔδϣϯཧ͘͢͠ͳͬͨɻ IUUQTIFMQTBMFTGPSDFDPNTBSUJDMF7JFX JETGEFWPQT@DFOUFS@TFUVQIUNUZQF
4BMFTGPSDFϓϩδΣΫτͷ࡞
7JTVBM4UVEJP$PEFͰ4BMFTGPSDFϓϩδΣΫτΛ࡞ɻ
4BMFTGPSDF৫Λೝূ
ιʔείʔυΛऔಘ
(JU)VCϦϙδτϦΛ࡞
ʰHJUJOJUʱίϚϯυ࣮ߦ
(JUϦϙδτϦʹө HJUBEE HJUTUBUVT HJUDPNNJUN fi STUDPNNJU HJUCSBODI.NBJO HJUSFNPUFBEEPSJHJOHJU!HJUIVCDPNUZPTIJLBXBTGEDNZQMBZHSPVOEHJU HJUQVTIVPSJHJONBJO
͜ΕͰ4BMFTGPSDFͷϦιʔεҰࣜΛόʔδϣϯཧͰ͖Δঢ়ଶͱͳΓ·͢ɻ
1BDLBHFYNMΛΧελϚΠζͯ͠ઃఆใΛόʔδϣϯཧ σϑΥϧτͰ"QFYίʔυͷΈ͕ରͱͯ͠ࢦఆ͞Ε͍ͯ·͢ɻ ϝλσʔλ"1*͕ఏڙ͍ͯ͠ΔͷՃ͢Δ͜ͱͰϝλใΛऔಘͰ͖·͢ɻ ˞ඪ४ΦϒδΣΫτ$VTUPN0CKFDUͷͱ͜Ζʹݸผʹࢦఆ͢ΔͱऔಘՄೳͰ͢ɻ
ৄࡉϝλσʔλ"1*ͷ։ൃऀΨΠυʹهࡌ͞Ε͍ͯ·͢ɻ IUUQTEFWFMPQFSTBMFTGPSDFDPNEPDTBUMBTKBKQBQJ@NFUBNFUBBQJ@NFUBNFUB@UZQFT@MJTUIUN ˞৫Ͱ༗ޮԽ͍ͯ͠ͳ͍ػೳͦͷଞͷ݅ͰࢦఆෆՄͷͷ͋Γɻ ˞ઃఆมߋ࣌ͷࠩѲʹ༻Ͱ͖Δɻ ແବʹཧରʹՃͯ͠ํ͕ແ͍ͷͰ༻్ΛܾΊͯཧରʹՃ͍ͯ͘͠ɻ
ϖʔδϨΠΞτͷઃఆมߋཧΛྫʹհɻ
ϖʔδϨΠΞτ͔ΒෆཁͳϘλϯΛඇදࣔʹมߋ͢Δ࡞ۀΛ࣮ࢪɻ 74$PEFͰ࠷৽ͷใΛ৫͔ΒऔಘɻࠩൃੜΛ֬ೝͰ͖Δɻ
ϝλใͳͷͰɺײతʹมߋ༰Λ֬ೝͰ͖ΔΑ͏ͳײ͡Ͱͳ͍Ͱ͢ɻ ͜Ε͚ͩͰҙਤ͠ͳ͍มߋͯ͠͠·ͬͨͱ͖ʹؾ͍ͮͨΓͰ͖Δͱࢥ͍·͢ɻ ˞͜͏͍͏͍ํͰ͖Δͱ͍͏ײ͡ͷྫͰ͢ɻ
ͻͱ·ͣQBDLBHFYNMͷσϑΥϧτͰ༻ҙ͞Ε͍ͯΔ"QFYίʔυҰࣜͷόʔδϣϯཧ Λ͓͚ͯ͠ࠔΒͳ͍ͱࢥ͍·͢ɻඞཁʹԠͯ͡ݕূ্ͨ͠ͰՃ͍ͯ͘͠ײ͡ɻ
(JU)VCϦϙδτϦ͔Β4BMFTGPSDFϓϩδΣΫτͷऔಘ
ॳճʹ4BMFTGPSDFϓϩδΣΫτͷ࡞ͱ(JU)VCϦϙδτϦͷ࡞͕ྃͨ͋͠ͱɺνʔϜ ϝϯόʔ͕4BMFTGPSDF։ൃڥΛ༻ҙ͢Δͱ͖ɺ(JU$MPOFίϚϯυͰϓϩδΣΫτΛऔ ಘ͠·͢ɻ λʔϛφϧͰϫʔΫεϖʔεͷσΟΫϨΫτϦʹҠಈɻ DMPOFίϚϯυΛ࣮ߦɻ63-(JU)VCϦϙδτϦͰ֬ೝͰ͖Δɻ
͜ΕͰ(JU)VCϦϙδτϦͰཧ͞ΕͨϦιʔεҰ͕ࣜऔಘͰ͖Δɻ (JUMPHίϚϯυͰ͜Ε·Ͱͷϩά֬ೝͰ͖Δঢ়ଶɻ
(JUIVC͔ΒϦιʔεҰࣜऔಘͰ͖ͨΒɺ4BMFTGPSDF৫ͱଓɻ ͜ΕͰ৫͔ΒιʔεΛऔಘͨ͠Γɺ"QFY։ൃΛਐΊͨΓ͕ՄೳʹͳΓ·͢ɻ 4BMFTGPSDF%9ͷొͰ4BMFTGPSDF։ൃ͕(JU)VCόʔδϣϯཧͳͲΓ͘͢ͳͬͨͷ ͜ͷ͋ͨΓͷૢ࡞͕؆୯ʹͰ͖ΔΑ͏ʹͳͬͯ·͢ɻ
։ൃڥͷ༻ҙ 4BOECPYPSεΫϥον৫
ຊ൪৫Ͱ4BMFTGPSDFϓϩδΣΫτΛ࡞ͯ͠(JU)VCϦϙδτϦͷόʔδϣϯཧͷΈ Λ༻ҙͰ͖ͨΒ։ൃڥΛ༻ҙ͠·͢ɻ ௨ৗຊ൪৫ͱಉ͡ڥ͕༻ҙͰ͖Δ4BOECPYڥΛ༻͢Δ͜ͱʹͳΔͱࢥ͍·͕͢ɺ %FWFMPQFS&EUJPOͰ༻Ͱ͖ͳ͍ͷͰࠓճεΫϥον৫Ͱ༻ɻ
·ͣ%FW)VC৫Λ༗ޮԽ͠·͢ɻҰॹʹ৫γΣΠϓ༗ޮԽɻ
৫ͷ%FW)VC༗ޮԽ͕ྃͨ͠ঢ়ଶͰ%FW)VC৫ͷೝূΛߦ͏ɻ Γํ $-*ίϚϯυͰ%FW)VC৫ͱͯ͠ѻ͏Α͏ʹՃɻ TGDPO fi HTFUUBSHFUEFWIVC<"MJBTFT໊> ˞ิ ը໘ΩϟϓνϟͰ༻͍ͯ͠ΔʰTGFOWMJTUʱίϚϯυ࠷৽൛ͷ4BMFTGPSDF$-*Ͱɺ
ʰTGPSHMJTUʱίϚϯυʹมߋ͞Ε͍ͯ·ͨ͠ɻ ଞʹ͜͏͍͏έʔε͋Δͱࢥ͍·͢ͷͰ͜ͷลެࣜαΠτͰ֬ೝ͍ͯͩ͘͠͞ɻ
Γํ ̎ 7JTVBM4UVEJP$PEF͔Βૢ࡞͢Δ͜ͱՄೳɻ ΤΠϦΞε໊طଘͱಉ͡Ͱ0, TGFOWMJTUίϚϯυͰ%FW)VC৫ͱͯ͠ೝূ͞Εͨ͜ͱΛ֬ೝͰ͖Δɻ
ࢀߟɿεΫϥον৫࡞ϑΝΠϧͷઃఆϑΝΠϧ DPO fi HQSPKFDUTDSBUDIEFGKTPO εΫϥον৫ͷ࡞ίϚϯυΛ࣮ߦ
·ͬ͞Βͳڥ͕࡞͞ΕͨΒεΫϥον৫ͷ࡞ྃɻ ཧऀϢʔβͷύεϫʔυϦηοτͰύεϫʔυઃఆ͓ͯ͘͠ɻ
74$PEF͕ଓதͷ৫ࠨԼͰ֬ೝɻมߋ͕Ͱ͖Δɻ ˘ͷΞΠίϯΛΫϦοΫ͢ΔͱϒϥβͰ৫ʹΞΫηεͰ͖Δɻ εΫϥον৫࡞ޙɺ"QFYίʔυҰࣜΛεΫϥον৫ʹσϓϩΠ͢Δ͜ͱ͕Մೳɻ
ࢀߟɿεΫϥον৫ͷιʔεͷసૹʹؔ͢Δৄࡉ։ൃऀΨΠυʹهࡌ͞Ε͍ͯΔɻ IUUQTEFWFMPQFSTBMFTGPSDFDPNEPDTBUMBTKBKQTGEY@EFWNFUBTGEY@EFWTGEY@EFW@QVTI@NE@UP@TDSBUDI@PSHIUN
ͦΕͧΕͷڥͰόʔδϣϯཧ
εΫϥον৫ ։ൃ༻৫ ͷ࡞͕ྃͯ͠"QFYίʔυͷөͰ͖·ͨ͠ɻ ࠷ॳͷ%FW)VC৫Λຊ൪৫ͱͯ͠ѻ͍ɺεΫϥον৫Ͱ։ൃˠϦϦʔεͱ͍͏ײ͡Ͱ ཧ͢ΔΠϝʔδͰ͢ɻ %FW)VC৫ ຊ൪ڥ εΫϥον৫ Ծ4BOECPY ʮNBJOʯཧ
ʮϒϥϯνʯཧ
Լهͷঢ়ଶ(JU)VCͷʰNBJOʱʹଓɻTBMFTGPSDFͷຊ൪৫ʹଓ͍ͯ͠Δঢ়ଶɻ ·ͣ4BMFTGPSDFଓઌΛεΫϥον৫ʹมߋ͢Δɻ
࣍ʹϒϥϯνΛ࡞ ϒϥϯν໊TDSBUDIͱࢦఆ ϒϥϯν࡞͞Ε͔ͨ࣍ͷίϚϯυͰ֬ೝͰ͖Δɻ ࣍ͷίϚϯυͰϒϥϯνΛΓସ͑ɻ ࡞ͨ͠ϒϥϯνQVTIίϚϯυͰ(JU)VCϦϙδτϦʹөͰ͖Δɻ
(JU)VC্ͰϒϥϯνՃ͞Εͨ͜ͱΛ֬ೝͰ͖Δɻ ಛʹ͜͜Ͱૢ࡞͠ͳ͍ɻ
74$PEFͷଓઌ͕ϒϥϯνɺ։ൃڥʹͳ͍ͬͯΔ͜ͱΛ֬ೝ͔ͯ͠Β։ൃΛਐΊΔɻ TDSBUDI৫࡞ޙʹDNE TΩʔͰίʔυͷมߋΛอଘͨ͠ͱ͖ʹɺ4BMFTGPSDFଆʹࣗ ಈͰσϓϩΠ อଘ ͞Εͳ͍߹74$PEFͷઃఆͰରԠͰ͖·͢ɻ
ઃఆͷશମΠϝʔδ
εΫϥον৫Ͱ৽نίʔυΛՃɻ
Ճͨ͠ίʔυΛϒϥϯνʹίϛοτɻ ίϛοτͨ͠ΒϓογϡίϚϯυΛ࣮ߦͯ͠(JU)VCʹөɻ
(JU)VCʹөͨ͠ΒϓϧϦΫΤετͱ͔ͦΜͳײ͡ɻ
ϓϧϦΫΤετ࡞ˠϨϏϡʔˠϚʔδͱ͍͏ײ͡ͰਐΜͰ͍͘ɻ Ϛʔδޙʹϒϥϯνআը໘͔ΒͰ͖Δɻ
None
͜ͷ࣌Ͱ(JU)VCϦϙδτϦʹө͞Ε͚ͨͲɺ4BMFTGPSDF৫ʹө͞Ε͍ͯͳ ͍ঢ়ଶɻ 74$PEFʹͬͯϒϥϯνͷΓସ͑ͱ4BMFTGPSDFଓઌͷมߋ HJUCSBODI HJUDIFDLPVUNBJO HJUCSBODI 4BMFTGPSDFͷଓઌมߋίϚϯυ͡Όͳͯ͘6*ૢ࡞Ͱɻ
ଓઌΛมߋͨ͠ΒHJUQVMMίϚϯυͰ(JU)VCϦϙδτϦʹՃ͞ΕͨίʔυΛऔಘɻ
TGEYͷEFQMPZίϚϯυͰຊ൪৫ʹө ͍͔ͭ͋͘ΔΓํͷҰྫ IUUQTEFWFMPQFSTBMFTGPSDFDPNEPDTBUMBTKBKQTGEY@EFWNFUBTGEY@EFWTGEY@EFW@EFWFMPQ@BOZ@PSHIUN
͜ΕͰεΫϥον৫Ͱ։ൃͨ͠ίʔυΛຊ൪৫ʹϦϦʔεͰ͖·͢ɻ ˞ҙ ͍͔ͭ͋͘ΔΓํͷҰͭͰ͢ɻ%FWFMPQFS&EUJPO εΫϥον৫͜ΕͰେৎɻ ӡ༻ڥͩͱͪΌΜͱϦϦʔεରߜΔͳͲ͖ͪΜͱཧ͕ඞཁɻ
%FW0QT$FOUFSͰόʔδϣϯཧ
4VNNFS`Ͱ6*ϕʔεͰ4BMFTGPSDFϓϩδΣΫτͷόʔδϣϯཧ͕ՄೳʹͳΔػೳ͕ ొ͠·ͨ͠ɻʮ%FW0QT$FOUFSʯͰ͢ɻઃఆϖʔδʹՃ͞Ε͍ͯ·͢ɻ ˞ຊ൪ڥͰ༗ޮԽͯ͠։ൃ৫ͱଓ͢ΔΈͰ͢ɻ
༗ޮԽϘλϯͰػೳΛ༗ޮԽͰ͖·͢ɻ ར༻ͷࡍͷنͷಉҙ͕͋Γ·͢ɻ ύοέʔδΛΠϯετʔϧϘλϯ͔Β%FW0QT$FOUFSΛΠϯετʔϧ͠·͢ɻ
Πϯετʔϧྃ͢ΔͱΠϯετʔϧࡁΈύοέʔδͱͯ͠Ճ͞Ε·͢ɻ
࠷ॳͷઃఆͱͯ͠৽نଓΞϓϦέʔγϣϯͷઃఆΛߦ͍·͢ɻ ઃఆ༰ʹ͍ͭͯϔϧϓΛࢀরͷ͜ͱɻ IUUQTIFMQTBMFTGPSDFDPNTBSUJDMF7JFX JETGEFWPQT@DFOUFS@DSFBUF@DPOOFDUFE@BQQIUNUZQF
ଓΞϓϦέʔγϣϯͷ࡞͕Ͱ͖ͨΒ.BOBHFϘλϯΛΫϦοΫɻ ݖݶηοτͷઃఆΛߦ͍·͢ɻ
ϢʔβʹݖݶηοτׂΓͯͰݖݶΛ༩͠·͢ɻͦΕͧΕͷׂʹ͋ͬͨͷΛׂΓͯ ͳ͍ͱɺϦϦʔε࡞ۀ·Ͱ࣮ߦͰ͖ΔͷͰҙ͢Δ͜ͱɻ
ΞϓϦέʔγϣϯϥϯνϟʔ͔Β%FW0QT$FOUFSʹΞΫηεͰ͖·͢ɻ
৽͍͠ϓϩδΣΫτ͔Β(JU)VCͱଓɻ
৽نϙδτϦͷ࡞طଘϦϙδτϦͱͷඥ͚྆ํՄೳͰ͢ɻ อଘϘλϯΫϦοΫ͢Δͱ(JU)VCͱͷೝূϖʔδ͕දࣔ͞ΕΔͷͰೝূ͠·͢ɻ
ϦϦʔεڥͷͱ͜ΖͰɺϦϦʔεڥͷઃఆΛߦ͍·͢ɻ
ϓϩδΣΫτ໊ϦϯΫͳͲ͔ΒৄࡉϖʔδʹҠಈɻύΠϓϥΠϯͷઃఆΛߦ͍·͢ɻ ։ൃڥʹࠓճ༻ҙ͍ͯ͠ΔεΫϥον৫ΛࢦఆɻೝূઃఆΛߦ͍·͢ɻ ΠϯςάϨʔγϣϯ6"5༻ͷ৫Λઃఆ͢Δ͜ͱՄೳͰ͢ɻ ࠓճআ͢Δɻ
ϓϩδΣΫτ໊ϦϯΫͳͲ͔ΒৄࡉϖʔδʹҠಈɻύΠϓϥΠϯͷઃఆΛߦ͍·͢ɻ ։ൃڥʹࠓճ༻ҙ͍ͯ͠ΔεΫϥον৫ΛࢦఆɻೝূઃఆΛߦ͍·͢ɻ ΠϯςάϨʔγϣϯ6"5༻ͷ৫Λઃఆ͢Δ͜ͱՄೳͰ͢ɻ ࠓճআ͢Δɻ
ೝূͷઃఆ͕Ͱ͖ͨΒ༗ޮԽϘλϯΛΫϦοΫͯ͠ӡ༻։࢝ͷͨΊͷ४උྃɻ ˞ϝχϡʔʹ͋Δઃఆ࡞ۀ߲ॳظઃఆͰͷૢ࡞ඞཁ͋Γ·ͤΜɻ ˞ඞཁʹԠͯ͡։ൃڥͷͱ͜ΖͷಉظͷϦϯΫ͔Βಉظઃఆͷ༗ޮԽ͓͖ͯ͠·͢ɻ
ϦϦʔε४උ·ͰਐΜͩΒຊ൪ڥͷ%FW0QT$FOUFSʹΞΫηεɻ ࡞ۀ߲Λ࡞͠·͢ɻ
࡞ۀ߲ͱର৫Λଓɻ มߋΛऔΓࠐΉϘλϯͰࠩΛऔಘɻ खಈͰࢦఆ͢ΔܗͰऔಘՄೳ
ରΛબͯ͠ίϝϯτΛೖྗɻมߋΛ֬ఆϘλϯΛΫϦοΫ͠·͢ɻ
ॲཧதʹͳͬͨΒϨϏϡʔϘλϯΛΫϦοΫͯ࣍͠ʹਐΊ·͢ɻ
(JU)VC্ʹϓϧϦΫΤετ͕࡞͞ΕͨΓ͍ͯ͠ΔͷͰͦ͜Ͱ֬ೝͰ͖·͢ɻ
ϨϏϡʔྃޙঢ֨४උྃϘλϯΛΫϦοΫɻ ύΠϓϥΠϯͷը໘ʹΓସ͑ͯঢ֨ ϦϦʔε ͠·͢ɻ
ঢ֨ΦϓγϣϯͰςετΦϓγϣϯࢦఆͰ͖·͢ɻঢ֨ϘλϯͰϦϦʔε։࢝ɻ ϦϦʔεʹͳ͚Εਖ਼ৗʹॲཧ͞Ε·͢ɻ
࡞ۀ߲ྃࡁΈϑΣʔζͱͳΓɺࢀরͷΈʹΓସΘΓ·͢ɻ
ຊ൪৫Λ֬ೝ͢ΔͱϦϦʔεରʹબͨ͠ίʔυ͕ແࣄϦϦʔε͞Ε͍ͯΔ͜ͱΛ ֬ೝͰ͖·͢ɻ (JU)VCϦϙδτϦʹө͞Ε͍ͯ·͢ɻ
Ҏ্͕%FW0QT$FOUFSΛ͔ͭͬͨ։ൃ͔ΒϦϦʔε·ͰͷྲྀΕͷΠϝʔδͰ͢ɻ (JUίϚϯυͳͲͷૢ࡞ΛߦΘͣదͳόʔδϣϯཧͱϦϦʔε࡞ۀ͕࣮ࢪͰ͖·͢ɻ ։ൃऀਓʹ͖ͭͭͷ4BMFTGPSDFϢʔβ͕ඞཁʹͳΔͷͱɺ%FW0QT$FOUFSͷૢ࡞ ຊ൪৫Ͱͷ࡞ۀ͕ඞཁʹͳΔͷಋೖ࣌ͷߟྀ͔͠Ε·ͤΜɻ ࣾͷ։ൃऀͱཧऀ͚ʹͳΓͦ͏ɻ ௨ৗͷ(JUίϚϯυʹΑΔόʔδϣϯཧͱ%FW0QT$FOUFSͰͷόʔδϣϯཧͷཱ྆ ՄೳͳͷͰ։ൃऀ(JUཧɺཧऀ%FW0QT$FOUFSతͳӡ༻͕ՄೳͰ͢ɻ
4BMFTGPSDFϓϩδΣΫτͷόʔδϣϯཧ͜Μͳײ͡ͰͰ͖Δͱࢥ͍·͢ɻ