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
tzmfreedom
September 26, 2019
Technology
730
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Salesforceのツールの作り方
Salesforce World Tour Tokyo 2019で登壇したときの資料です
tzmfreedom
September 26, 2019
More Decks by tzmfreedom
See All by tzmfreedom
Alpine.js を活用した Laravel MPA フロントエンド最適化戦略 / Alpine.js MPA
tzmfreedom
1
2.2k
PHPStan拡張のコードから読み解く静的解析の威力と可能性 / PHPStan extension code reading
tzmfreedom
3
550
php-srcを読んでみよう / php-src codereading
tzmfreedom
1
3k
DBGpを使って PHPのデバッガーをつくろう / DGBp PHP Debugger
tzmfreedom
1
2.9k
独自フレームワークPHPアプリケーションの改善戦略 / Original Framework PHP Kaizen
tzmfreedom
5
5.7k
PHPでPHPを実装する〜プログラミング言語実装入門〜
tzmfreedom
0
1.1k
Other Decks in Technology
See All in Technology
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
1k
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
2
530
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
どうして今サーバーサイドKotlinを選択したのか
nealle
0
210
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
840
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
140
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
1
220
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
1.9k
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
2
3k
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
360
AI Driven AI Governance
pict3
0
260
生成AI活用によるODC欠陥分析の分類高速化の実践と導入効果 / 20260703 Suguru Ishii
shift_evolve
PRO
2
100
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
3.7k
Rails Girls Zürich Keynote
gr2m
96
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
A designer walks into a library…
pauljervisheath
211
24k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
Art, The Web, and Tiny UX
lynnandtonic
304
22k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
220
Mind Mapping
helmedeiros
PRO
1
280
How STYLIGHT went responsive
nonsquared
100
6.2k
Design in an AI World
tapps
1
260
Transcript
Salesforceͷπʔϧͷ࡞Γํ ా࣮
ࣗݾհ • Twitter: @tzm_freedom • GitHub: tzmfreedom • Blog: https://blog.freedom-man.com
• ࣄۀ։ൃձࣾͷαʔόʔαΠυΤϯδχΞ • Ruby/Rails, PHP/Symfony, ... • ࠷ۙϨΨγʔΞϓϦվળۀ • Ϟϊͮ͘Γେ͖ܥΤϯδχΞ • Salesforceͷܦݧલ৬Ͱ5͘Β͍ • Salesforceͷࢿ֨શࣦͯޮʘ(^o^)ʗ • ࠓۀͰSalesforceΛશ͘৮͍ͬͯͳ͍
ࠓ·Ͱ࡞͖ͬͯͨπʔϧ • go-soapforce: GoͷSalesforce SOAP APIΫϥΠΞϯτ • hsforce: HaskellͷSalesforce APIΫϥΠΞϯτ
• fluent-plugin-sforce: fluentdͷSalesforceϓϥάΠϯ • embulk-output-salesforce: embulkͷSalesforceϓϥάΠϯ • hubot-chatter: hubotͷSalesforceΞμϓλ • spm: SalesforceͷύοέʔδϚωʔδϟʔ • land: ApexͷϩʔΧϧ࣮ߦڥ • alt-apex: ApexΛKotlinͰॻ͚ΔΑ͏ʹ͢ΔτϥϯεύΠϥ
ࠓ͢͜ͱ • πʔϧΛ࡞ΔʹͲ͏͍͏ࣝɾٕज़ɾࢹ͕ඞཁͳ ͷ͔ʁ • ಛʹπʔϧ։ൃʹ͓͚ΔϞνϕʔγϣϯʹ͍ͭͯ • πʔϧΛ࡞Δ۩ମతͳํ๏Ͱͳ͘ɺϝλͳࢹͰ͓ ͠·͢
※͜ͷηογϣϯͷεϥΠυ จࣈ͔͠ग़͖ͯ·ͤΜʂ
Salesforce։ൃΛࢧ͑Δπʔϧͨ͘͞Μ͋Δ • Apex։ൃʢGUIɾEditorʣ • ݹ͘ force.com IDEɺݱࡏVS Codeʴplugin • Salesforceૢ࡞؆қԽʢChrome
Extension) • Salesforce Devtools • σʔλೖʢGUIʣ • Salesforce Dataloader • σϓϩΠͷࣗಈԽʢCUIʣ • ant, sfdx, jsforce • APIΛୟ͘ϥΠϒϥϦ • jsforce(JavaScript), restforce(Ruby), go-soapforce(Go), ...
πʔϧΛ࡞ΔͨΊʹ ඞཁͳࣝɾٕज़ɾࢹ
1. SalesforceΛΔ
Salesforceʹ͍ͭͯΔ • SalesforceͰग़དྷΔ͜ͱग़དྷͳ͍͜ͱ • ։ൃͤͣʹͰ͖ΔྖҬͱͰ͖ͳ͍ྖҬͷཧղ • SalesforceΛΧελϚΠζɾ։ൃ্͍ͯ͘͠ͰͲ͏͍͏ۀ ͕සൃ͢Δͷ͔ • SalesforceϓϥοτϑΥʔϜԿ͕ۤखͳͷ͔
• ۤखͳྖҬʹରͯ͠ผͷΞϓϩʔνͰิ͑Δͷͳͷ͔ • Salesforce͕ެࣜʹఏڙ͍ͯ͠Δπʔϧ • Dataloader, SFDX, VS Code Plugin... • ෆศͰͳ͍͔ʁࣗࣾυϝΠϯʹϑΟοτ͍ͯ͠Δ͔ʁ
2. ՝Λղܾ͢ΔͨΊͷ ٕज़ΛΔ
՝Λղܾ͢ΔͨΊͷٕज़ΛΔ • Salesforceͷը໘ΛΑΓ͍͍ͨ͘͢͠ => Chrome֦ுɾϒοΫϚʔΫϨοτɾϢʔβʔεΫϦϓτ • CLIͰSalesforceΛૢ࡞͍ͨ͠ => CLIπʔϧʢCLIϑϨʔϜϫʔΫ oclifͱ͔Thorͱ͔ʣ
• WebΞϓϦͰSalesforceͷAPIΛୟ͘ => APIΫϥΠΞϯτʢRESTɾSOAPɾMetadataɾToolingʣ • σʔλΛ͍͍ײ͡ʹ͢ΔGUIΛ࡞Γ͍ͨ => WebΞϓϦɾσεΫτοϓΞϓϦɾεϚϗΞϓϦ • ੌ͍OSS͕ग़͚ͨͲSalesforce༻ͷϓϥάΠϯ͕ແ͍ʂ => OSSͷϓϥάΠϯ
՝Λղܾ͢ΔͨΊͷٕज़ΛΔ • ެ։ɾΠϯετʔϧํ๏ • GitHub • ֤छύοέʔδཧγεςϜ • WebΞϓϦ •
Heroku Button • Salesforce Button • bashϫϯϥΠφʔ • Πϯετʔϥʔ • ·͊ͰͿͬͪΌ͚ٕज़ͳΜͯޙͰ͓̺ʢޙड़
3. ϞνϕʔγϣϯΛҡ࣋ͯ͠ ࡞ΓΔྗ
࣮πʔϧΛ࡞ΔٕྔΑΓ ϞνϕʔγϣϯΛҡ࣋ͯ͠ ࡞ΓΔͷ͕Ұ൪͍͠
πʔϧ։ൃͷϞνϕʔγϣϯ • ԿΛ࡞͍͍ͬͯͷ͔Θ͔Βͳ͍… • ࣅͨΑ͏ͳπʔϧ͕͋Δ͠ंྠͷ࠶ൃ໌ʹͳͬͯ͠ ·͏ͷͰ… • ៉ྷͳίʔυॻ͚ͳ͍͠ɺίʔυΛެ։͢Δͷ͕ஏ ͔͍ͣ͠… •
ͦͦ͜ͷπʔϧ࡞ͬͯҙຯ͋ΔͷͩΖ͏͔… • ࡞Γ͍ͨͷ͕͋Δ͚Ͳқ͕ߴ͍…
ԿΛ࡞͍͍ͬͯͷ͔Θ͔Βͳ͍…
ԿΛ࡞ͬͯྑ͍ͷ͔Θ͔Βͳ͍ • ෆศʹؾͮ͘ɻͨΓલΛٙ͏ɻ • ৗʹ٬؍తʹݟͯΈΔɻ • Salesforce˓˓ͳ༷͔ͩΒ͠ΐ͏͕ͳ͍ɺఘΊΔ… Ͱͳ͘ɺ։ൃͰϑΥϩʔͰ͖ͳ͍ͷͳͷ͔ɺͲ͏ͳ Εͬͱศརʹ͑Δͷ͔Λߟ͑Δɻ •
SalesforceAPI͕ॆ࣮͍ͯ͠ΔͷͰ։ൃͰϑΥϩʔͰ ͖Δൣғ͍ • ӡ༻ऀɾ։ൃऀʹෆศͳ͕ແ͍͔ฉ͍ͯΈΔ • తSalesforceΛΑΓศརʹ͑ΔΑ͏ʹ͢Δ͜ͱ
ࣅͨΑ͏ͳπʔϧ͕͋Δ͠ ंྠͷ࠶ൃ໌ʹͳͬͯ͠·͏ͷͰ…
ࣅͨΑ͏ͳπʔϧ͕͋Δ͠ंྠͷ࠶ൃ໌ʹͳͬͯ͠·͏ͷͰ… • ंྠͷ࠶ൃ໌্ • શʹಉ͡πʔϧͱ͍͏ͷଘࡏ͠ͳ͍ • ࡉ͔͍͍উखɺඞཁͳϥϯλΠϜ • ಉ͡Α͏ͳπʔϧ͕Կݸ͋ͬͯྑ͍ •
ࣗͷٕज़ྗ࣮֬ʹ্͕Δ • ࣅͨΑ͏ͳπʔϧʹର͢Δཧղྗ্͕Δ • ཧղྗ্͕͕ΔͱτϥϒϧγϡʔςΟϯάʹڧ͘ͳΔ
៉ྷͳίʔυॻ͚ͳ͍͠ ίʔυΛެ։͢Δͷஏ͔͍ͣ͠…
៉ྷͳίʔυॻ͚ͳ͍͠ɺίʔυΛެ։͢Δͷஏ͔͍ͣ͠… • ͦͦ࠷ॳ͔Β៉ྷͳίʔυͳΜͯॻ͚ΔΘ͚͕ͳ͍ • ແཧʹެ։͠ͳͯ͘ྑ͍͠ɺ࠷ॳࣾπʔϧͰશ͘ ͳ͍ • ͕ɺίʔυΛެ։͢ΔϝϦοτ͔ͳΓ͋ΔͷͰ͓͢͢Ί • ঝೝཉٻΛຬͨ͢
• ιʔγϟϧίʔσΟϯάΛମݧͰ͖Δ • ެ։͢Δͱ͍͏ϓϨογϟʔͰ্࣭͕͕Δ • ҙ֎ͱଞͷਓʹͱͬͯ༗༻ͳπʔϧͰ͋Δ͜ͱ͕ଟ͍ • ެ։ͯ͠ҙ֎ͱ୭ݟ͍ͯͳ͍ͷͰؾʹ͢Δඞཁ͕ͳ͍ • ެ։ʹଛͰͳ͍ɻ
ͦͦ͜ͷπʔϧΛ࡞ͬͯ ҙຯ͋ΔͷͩΖ͏͔…
ͦͦ͜ͷπʔϧΛ࡞ͬͯҙຯ͋ΔͷͩΖ͏͔… • ҙຯ࡞ͬͨ͋ͱʹߟ͑ͯྑ͍ • ͱΓ͋͑ͣϓϩτλΠϐϯάతʹਖ਼ৗܥ͚ͩ࡞ͬͯΈΔ • ҙຯΛߟ͑Δલʹͤ͞Δ • ҙ֎ͱͬͯ͘ΕΔਓ͕͍ͨΓ͢Δͷ •
ʹཱͨͳͯ͘ྑ͍ɻָ͚͠ΕOK • ϓϩάϥϛϯάָ͍͠
࡞Γ͍ͨͷ͕͋Δ͚Ͳ қ͕ߴ͍…
࡞Γ͍ͨͷ͕͋Δ͚Ͳқ͕ߴ͍… • қ͕ߴ͍ͷΛ࡞Γ͍ͨͱࢥͬͨͱ͖ࣗͷٕ ज़ྗΛߴΊΔେ͖ͳνϟϯε • ن͕େ͖͍ɺқ͕ߴ͍ͷఔɾඞཁͳٕज़ ཁૉΛղ͢Δ • ̍ʙ̍िؒ͘Β͍ͰୡͰ͖Δখ͍͞ඪΛ࡞ͬͯ ͓͘
• ·ͣ؆୯ͳਖ਼ৗܥΛಈ͔͢ɻ͔ͦ͜Β͍͛ͯ͘ • ࡞Γͳ͕ΒֶͿɺֶͿͨΊʹ࡞Δ
πʔϧΛ࡞Δ্Ͱ େࣄʹ͍ͯ͠Δ͜ͱ
πʔϧΛ࡞Δ্Ͱେࣄʹ͍ͯ͠Δ͜ͱ • ͍͔ͭΔɺͰͳ͘ࠓΔɻίʔυΛॻ͘ɻ • Γͨ͘ͳͬͨͱ͖͕νϟϯεɻ৸͔͢ͱϞνϕʔγϣϯԼ ͕ͬͯΒͳ͘ͳΔɻνϟϯεΛಀ͞ͳ͍ • ϞνϕʔγϣϯԼ͕Δͷɻਖ਼ৗܥ͚ͩͰҰؾʹ࡞ΓΔ • ධՈʹͳΒͳ͍ɺ·ͣखΛಈ͔͢ɻ
• ΞΠσΞΛΞΠσΞͰऴΘΒͤͳ͍ɻ ࣮ͯ͠۩ݱԽͰ͖Δͷ͕ΤϯδχΞͷڧΈ • ۩ݱԽͰ͖ΔͷΛ૿͍͚ͯ͠Δͷ͕ΤϯδχΞͷָ͠Έ Ͱ͋ΓՁʹͳΔ • ԿΑΓɺϓϩάϥϛϯάΛָ͠ΉɻϞϊͮ͘Γָ͍͠ɻ ϓϩάϥϛϯά͕తʹͳͬͯྑ͍ɻ
·ͱΊ • SalesforceͷπʔϧΛ࡞Δͷʹඞཁͳࣝɾٕज़ɾࢹ • SalesforceΛΔ • ՝ղܾ͢ΔͨΊͷٕज़ΛΔ • ϞνϕʔγϣϯΛҡ࣋ͯ͠࡞ΓΔ •
ΞΠσΞΛ࣮ݱͰ͖Δͷ͕ΤϯδχΞͷՁɻ ίʔυΛॻ͍͍͖ͯ·͠ΐ͏ʂ
Enjoy Programming!!