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
Node.jsと仲良くなって Salesforceアプリケーション開発を楽しく行う / car...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Cariot
July 21, 2016
44
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Node.jsと仲良くなって Salesforceアプリケーション開発を楽しく行う / cariot-salesforce-summer2016tokyo
Salesforce Summer 2016 TokyoでLTした時の資料です。
Cariot
July 21, 2016
More Decks by Cariot
See All by Cariot
AWSにおける公開APIのリノベーション術/cariot-jaws-ug-lunch-36
cariotinc
1
210
10年続くJavaシステムの進化を支える戦略 API・DB・キャッシュの互換性設計/cariot-jjug-ccc-2026-s
cariotinc
0
250
Amazon Bedrock AgentCore GatewayとSalesforceで実現する汎用クエリAIエージェント/cariot-meguro-lt
cariotinc
1
170
AWSのサービス終了に備えるシステム運用 / cariot-cloud-shokudo
cariotinc
0
150
はじめてのAI機能企画 / cariot-pm-hub-lt-night
cariotinc
0
340
車両動態管理システムCariotの リアルタイム性を実現する技術 / cariot-mobility-night2
cariotinc
0
330
【プロダクト開発部】株式会社キャリオット会社説明資料 / cariot dev hiring
cariotinc
0
890
なめらか&リアルタイムな 動態管理を支えるCariotのAWS基盤 / cariot-xtech-jaws
cariotinc
0
45
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
820
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
4 Signs Your Business is Dying
shpigford
187
22k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
370
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
Speed Design
sergeychernyshev
33
1.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.5k
Designing for humans not robots
tammielis
254
26k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
300
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
850
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
430
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Transcript
と Salesforce Summer 2016 Tokyo 2016-07-21 株式会社フレクト 遠藤 匠 Node.jsと仲良くなって Salesforceアプリケーション開発を楽しく行う
〜 〜
自己紹介 •遠藤 匠 •株式会社フレクト Cariot事業部 •業務 • コネクテッド・カーサービス「Cariot」の開発・運用 •Salesforce歴:1年半
2016/05/09 AppExchangeにて公開
開発環境 パッケージ リリース環境 (DE) インポート (retrieve) デプロイ 個人開発環境 (DE) デプロイ・テスト
CIサーバ(Jenkins) push ソースコード取得 CI環境 (DE) テスト
ツール コード管理 チケット管理 ビルド 依存関係解決 Salesforceへのデプロイ・エクスポート・テスト JSforce Metadata Tools POINT
Force.com移行ツールを使ってない理由 • JavaよりもXMLデータの加工が簡単(ライブラリが揃っている) • メタデータのデプロイ、エクスポートの際に、メタデータやpackage.xmlな ど、XML形式ファイルの加工を行う必要があった •ローカルでのSPA開発のためのエコシステムとの統一性 • 全部Node.jsで統一できる •
逆に、Force.com移行ツールと比較しての短所は? • Jenkins連携(ant-salesforce-ciによるApexテスト、カバレッジレポート) • くらい?
JSforceでもレポート出力できる
JSforce版 ant-salesforce-ci (一部) JSforce Metadata Toolsの テスト実行結果を元に、 JUnit形式のレポートを出力 (カバレッジレポートも仕 組みは同じ)
デプロイ HTML CSS JS その他 メタデータ JS 静的リソース (zip) Visualforce
コンポーネント zip化 package.xml gulp-webpack gulp-zip gulp-html-replace Webフォント 一部、自作gulpプラグイン (日英切り替え) ファイルパスをNFCに変換 UTF-8-MAC(NFD)対応
HTMLをVFコンポーネント(ページ)に変換 <!-- build:hoge --> <!-- endbuild --> で囲んだVisualforce用の <apex:component> タグに置換
(置換箇所は複数定義可) xxx-meta.xmlファイルも 変換と一緒に作成 (xmlbuilderという ライブラリを利用)
エクスポート ①package.xmlの書き換え ・ワイルドカードが使えないメタデータについて、 listMetadataで取得して書き換える ・Report ・Dashboard ・Document ・CustomObject ・Layout ・Report/Dashboard/Documentはいきなり
リストで取得できないので、まずフォルダ名を 取得する ②package.xmlを元に メタデータを取得
ローカル開発の勘所 • Salesforceへの依存をApex(JavaScript Remoting)だけに最小 化する • ローカルではモックを利用 • 同一コードで環境(ローカル or
Visualforce)を判断させる必要があ るので、やむなくtypeofで判断 • Remotingではなく、RemoteObjectという手もあるが、マークアップ が面倒だし、DML、クエリはApex側にすべて寄せた方がよい気がする • Visualforceタグの利用は最小限に留める • <apex:page><apex:component><apex:attribute>くらい • {! } の利用も最小限に留める • 静的リソース中のJSにこれがあると解釈できない
まとめ •JSforceを使ってメタデータとうまく付き合おう •ローカルでSalesforceアプリケーションをさくさ く開発できる •GitHub FlowやCIなどのプラクティスを Salesforce開発でも同じように •一般的なフロントエンド技術の導入