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
0
530
Salesforceのツールの作り方
Salesforce World Tour Tokyo 2019で登壇したときの資料です
tzmfreedom
September 26, 2019
Tweet
Share
More Decks by tzmfreedom
See All by tzmfreedom
php-srcを読んでみよう / php-src codereading
tzmfreedom
1
1.8k
DBGpを使って PHPのデバッガーをつくろう / DGBp PHP Debugger
tzmfreedom
1
1.5k
独自フレームワークPHPアプリケーションの改善戦略 / Original Framework PHP Kaizen
tzmfreedom
4
3.8k
PHPでPHPを実装する〜プログラミング言語実装入門〜
tzmfreedom
0
910
Other Decks in Technology
See All in Technology
自作Cコンパイラ 8時間の奮闘
soukouki
0
750
DuckDB雑紹介(1.1対応版)@DuckDB座談会
ktz
6
1.3k
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
120
LINEヤフーのフロントエンド組織・体制の紹介
lycorp_recruit_jp
0
330
サプライチェーン攻撃に備える
ryunen344
0
160
LLVM/ASMを使った有限体の高速実装
herumi
0
120
PDF Viewer作成の今までとこれから
hunachi
0
280
Envoy External AuthZとgRPC Extensionを利用した「頑張らない」Microservices認証認可基盤
andoshin11
0
220
AIで変わるテスト自動化:最新ツールの多様なアプローチ/ 20240910 Takahiro Kaneyama
shift_evolve
0
200
不動産売買取引におけるAIの可能性とプロダクトでのAI活用
zabio3
0
230
Agile in Automotive Industry, puzzles and lights.
hiranabe
2
580
疎通2024
sadnessojisan
5
1k
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
36
7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
Infographics Made Easy
chrislema
239
18k
Gamification - CAS2011
davidbonilla
79
4.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Practical Orchestrator
shlominoach
185
10k
Faster Mobile Websites
deanohume
304
30k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
227
52k
Thoughts on Productivity
jonyablonski
66
4.2k
Building Applications with DynamoDB
mza
90
6k
Become a Pro
speakerdeck
PRO
22
4.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.3k
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!!