Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向

デブサミ2019の資料

  • Login to see the comments

【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向

  1. 1. [Developers Summit 2019] 開発者に贈るsalesforceプラットフォーム概論と 最新動向 Salesforce Developer Group ルーキー会 2019年2月14日 #devsumi #sfdg 1
  2. 2. 本セッションでご理解いただきたいこと 1. 入門者向けセッションである 2. Salesforceの技術要素はいっぱいある 3. とっかかりとしてポイントを絞って説明 2
  3. 3. 今日のゴール 3 Salesforceってなに? Salesforceでの開発に使う技術っ てどんなものがあるの? 疑問解決! 「やってみよう」という気持ち 次の一歩の踏み出してみる! 45分後
  4. 4. 4 Salesforce Developer Group Rookies ぷれぜんつ!
  5. 5. スピーカー紹介① 名前:小林 亮理(リョウスケ) 所属:株式会社フレクト :@ryosuke921186 SF歴:8年目 役割:PM、エンジニア 趣味:運動(ソフトテニス、ゴルフ、筋トレ)、寝る 5
  6. 6. スピーカー紹介② 6 名前:齋藤 俊 所属:株式会社フレクト マネージャー 2014年より株式会社フレクト エンジニア,PM AWS SA Professional, Salesforce Consultant資格他
  7. 7. アジェンダ 1. Salesforceってなに? 2. どんな技術要素があるの? 3. キャリアについて&まとめ 7
  8. 8. 8 Salesforceってなに? どんな技術要素があるの? キャリアについて&まとめ
  9. 9. Salesforceとは 9 セールスフォース・ドットコム社が 提供しているサービスの名称
  10. 10. 10 クラウド コンピューティング
  11. 11. Application Salesforce Platform Salesforceの仕組み 11 サービス サポート CRM/SFA マーケ ティング コミュ ニティ 分析 カスタム アプリ サード パーティ アプリコマース Salesforce提供 独自 パートナー提供
  12. 12. 利用例(ユーザ視点) 12 Salesforce Platform 契約組織 営業支援 カスタム アプリ INTERNET ライセンスタイプ により利用可能 必要に応じて 個別開発 ライセンス契約login/利用
  13. 13. INTERNET 開発例(Dev視点) 13 Salesforce Platform 契約組織 営業支援 カスタム アプリ Dev組織 サードパー ティアプリ 標準アプリを拡張 特定組織用の 独自アプリを開発 組織に依存しない 独自アプリを開発 login/開発
  14. 14. 14 ユーザからみるとアプリ 開発者からみるとプラットフォーム
  15. 15. Platform内のレイヤー 15 Salesforce Platform 開発者向け機能 インフラ 標準カスタマイズ機能 ミドルウェア ストレージ, CPU, メモリ等 DB, Appサーバー, VM等 気にしなくても 良い領域 コーディング無 コーディング有 実はこっちも 大事なところ Developerの 大事なところ
  16. 16. 標準カスタマイズ機能 • Low-Code系機能 – 企業向けシステムに必要となるベース機能 16 分析 ワークフロー レイアウト コミュニ ティ わざわざコーディングで開発しないこと モバイル 認証ユーザ管理 アクセス コントロール 多言語 /通貨 ロジック ・・他沢山DB テーブル操作 バックアップ 障害復旧
  17. 17. 開発者向け機能 • 主にコーディングを必要とする機能 • ClientSide, ServerSide, Query, UnitTest, API, AI…etc • 標準カスタマイズで対応できない時に使う 17 (デブサミに来ている)皆さんが輝くところ・・!
  18. 18. 18 Salesforceってなに? どんな技術要素があるの? キャリアについて&まとめ
  19. 19. 19 どんな技術要素があるの? 1. サーバサイド … Apex / Trigger 2. データベース … SOQL 3. フロントエンド … LightningComponent / Visualforce 4. テスト … Apexテストフレームワーク 5. 開発環境・ツール … 開発者コンソール / SFDX / force.com CLI 6. Webアプリ開発 … Heroku 7. ML, IoT … Einstein / IoT Cloud
  20. 20. 20 1. Apexとは?(1) 開発者が Salesforce Platformでフローとトランザクションの 制御ステートメントを実行できるようにした、 強く型付けされたオブジェクト指向のプログラミング言語 https://trailhead.salesforce.com/ja/projects/quickstart-apex/steps/quickstart-apex-1
  21. 21. 21 1. Apexとは?(2) 開発者が Salesforce Platformでフローとトランザクションの 制御ステートメントを実行できるようにした、 強く型付けされたオブジェクト指向のプログラミング言語 https://trailhead.salesforce.com/ja/projects/quickstart-apex/steps/quickstart-apex-1 例 1.1 取引先オブジェクトから洗い替え対象レコードを抽出し、洗い替えを行う処理
  22. 22. 22 1. Apexとは?(3) 開発者が Salesforce Platformでフローとトランザクションの 制御ステートメントを実行できるようにした、 強く型付けされたオブジェクト指向のプログラミング言語 https://trailhead.salesforce.com/ja/projects/quickstart-apex/steps/quickstart-apex-1 技術コスト低めで初心者が学びやすい Ease of Development の頃のJavaを 少しやさしく制限をかけた感じ おまじない含めコード量は最小限 標準カスタマイズとの棲み分けが 根底にあるため、きちんと設計すれば コード量は最小限で済む 例 1.1 取引先オブジェクトから洗い替え対象レコードを抽出し、洗い替えを行う処理
  23. 23. 23 1. Apexとは?(4) • 標準カスタマイズで実現できない要件で用いる 要件 開発が 必要 標準で できる 例 • あるオブジェクトの更新時のトリ ガーで関連オブジェクトにも一括 更新をかける • 定期バッチでAWS S3上のCSV データを取り込みして、サマリと してSalesforceへ保存する • ボタン押下により、外部基幹シス テムのWebサービスからデータを 取得し、Salesforceへ保存する
  24. 24. 24 1. Apexとは?(5) Apex Trigger =Salesforce PlatformでのDBトリガー 古いレコードのロード 新しいレコードで古い値の 上書き システムの入力規則 Before トリガー カスタムの入力規則 レコードのDBへの保存 (未コミット) レコードのリロード After トリガー 割り当てルール 自動応答ルール ワークフロールール プロセス エスカレーションルール 積み上げ集計数式の値更新 データベースのコミット コミット後のロジック Salesforceのレコードに適用される これらのロジック群のうち、 他ロジックで実現できない、 特にクリックベースで担いにくいタ スクを実行する時に用いる https://help.salesforce.com/articleView?id=000005694&language=ja&type=1
  25. 25. 25 2. DB操作 – SOQL(1) SOQLとは アプリケーション層のApexからデータ層へアクセスする際に使用する、SQL類似言語 例 2.1 ステータスが「完了」の商談を、「リードソース」別に集計して、商談金額の合計を表示する
  26. 26. 26 2. DB操作 – SOQL(2) SOQLとは アプリケーション層のApexからデータ層へアクセスする際に使用する、SQL類似言語 例 2.1 ステータスが「完了」の商談を、「リードソース」別に集計して、商談金額の合計を表示する =ORマッパーを兼ねている 点に注目 オブジェクトが返ってくる 商談(Opportunity)
  27. 27. 27 2. DB操作 – SOQL(3) 見込み顧客と取引先は別のオブジェクトだが、 オブジェクトのリレーションを経由してフィールドを取得できる 例 2.2 「見込み顧客」のうち、取引を開始して「取引先」になったレコードから、取引 先の社名と年間売上を取得
  28. 28. 28 2. DB操作 – SOQL(3) 見込み顧客と取引先は別のオブジェクトだが、 オブジェクトのリレーションを経由してフィールドを取得できる 例 2.2 「見込み顧客」のうち、取引を開始して「取引先」になったレコードから、取引 先の社名と年間売上を取得 見込み顧客(Lead) 取引先(Account)
  29. 29. 29 2. DB操作 – SOQL(3) 見込み顧客と取引先は別のオブジェクトだが、 オブジェクトのリレーションを経由してフィールドを取得できる 例 2.2 「見込み顧客」のうち、取引を開始して「取引先」になったレコードから、取引 先の社名と年間売上を取得 見込み顧客(Lead) 取引先(Account) 関係演算のうち、 「選択」と「射影」はそのまま だが、「結合」がSQLと異なる
  30. 30. 30 2. DB操作 – SOQL(4) SQLとSOQLの違い レコードベース オブジェクトベース INSERT, UPDATE, DELETEなどを サポート SELECTのみ (※INSERT,UPDATEなどはDMLを使用) 多くの関係代数演算子をサポート ※和、差、交差、直積、選択、射影、 結合、商など 関係代数演算子はSQLと比べて少ない ※独自のリレーションクエリで代替 https://trailhead.salesforce.com/ja/modules/database_basics_dotnet/units/sql_to_soql 制限をあらかじめ考慮して データモデルの設計・実装を行う SQL SOQL
  31. 31. 31 3. Salesforce Lightning Salesforce Lightning は、現行のSalesforceプラットフォームサービスの総称。 ブランドとして「Lightning」と呼ぶこともある 代表的なLightningサービス群 • Lightning Component フレームワーク(クライアント-サーバフレームワーク) • Lightning Application ビルダー(コンポーネントを組み合わせたUI構築基盤) • Lightning Experience (ユーザエクスペリエンス) 他にも Lightningブランド以前をClassicと呼び、Classicから存在する サービスや機能にLightningを冠していることもある
  32. 32. 32 3. Lightning Component フレームワーク レコード詳細 Todos Action buttons Google Map Social 関連レコード一覧 画面を疎結合なコンポーネント単位に 切り出して構築できるようにした仕組み 画面構築例 コンポーネント 標準を利用したり、 AppExchangeで取り入れたり、 自身のコーディングで開発したりできる Lightning アプリケーションビル ダーでコンポーネントを1つの画面 にまとめることができるが、 もちろんコンポーネント単体での 再利用も可能
  33. 33. 33 3. Lightning Component フレームワーク https://youtu.be/Lm3uB6YkwIE
  34. 34. 34 3. Lightning Component フレームワーク UI構築はいくつかの選択肢がある ①Apex+Visualforce Servlet/JSPチックな世界 ②Visualforce + JavaScript SPAチックな世界 ③Lightningコンポーネント コンポーネント駆動な世界 ④HerokuなどのPaaS+Salesforce →プロプライエタリだが安定 緻密な権限など、堅めの要件向き →既存資産のポータビリティ重視 SFはReact, Vueを載せる箱として →今後の拡張性重視 柔軟性はあるが、安定性が課題 →Webアプリ前提なら無難にMixしたい Fargateなど本命対抗も出てきており SFとの親和性でHerokuを取るかを検討
  35. 35. 35 リリース・デプロイモデル https://trailhead.salesforce.com/ja/modules/salesforce-crm-customization-and-extension/units/innovate-faster-with-salesforce-environments-and-salesforce-dx
  36. 36. 36 4. テストフレームワーク(1) テストはSalesforceにおける扇の要 本番リリース要件 ・プロダクトコードに対するコードカバレッジが75%以上であること ・すべてのテストコードがPassしていること develop staging production All Passed & 75% coverage
  37. 37. 37 https://s3-ap-northeast-1.amazonaws.com/salesforce-japan-marketing/SWTT2017/Breakout+Session/10-L_TerraSky-FLECT.pdf
  38. 38. 38 4. テストフレームワーク(3) プロダクトコード群 テストコード群 ステップ単位でカバーされる ショートサーキットはC1網羅 JUnitライクな記法 ファクトリなどで効率化可能
  39. 39. 39 4. テストフレームワーク(4) • CLI経由でテスト実行でき、CIツールで自動化するケースも多い • Salesforce謹製の「開発者コンソール」ならブラウザベースで • Salesforceの開発においては以下を勘案すること – 標準カスタマイズだけでは駄目で、開発が必要か? – Apexコーディングをともなう開発か? – 今後の保守性を含めてApexコーディングを取るべきか?
  40. 40. 40 5. 開発環境・ツール IDE ★開発者コンソール ★VSCode ・Welkin IDE API tool ★Workbench ★API Explorer CLI ★force.com CLI ★SFDX CLI ライブラリ ・jsForce ・restforce ・simple-salesforce Data tool ★DataLoader ★Dataloader.io • ほとんどSalesforceのブラウザベースで整う • 以下が手元に揃っていれば開発で困ることはない 最初にチームで使う ツールを決めるのがおすすめ
  41. 41. 41 5. 開発者コンソール ブラウザベースで開発するためのツール • コーディング • テスト実行 – ユニット – スイート実行 – カバレッジ計測 • データベース操作 • 即席のコード片実行 • クエリオプティマイザ • デバッグログ出力
  42. 42. 42 6. Heroku 2007年創業、2010年よりSalesforceに属するPaaS提供企業 PaaSそのものをHerokuと呼ぶ Heroku Einstein Marketing Cloud フロントに置いてBtoCのエンドユーザ向けに機動力のあるアプリを展開して、 価値の高い顧客データはSalesforceで、というのが王道パターンの1つ エンドユーザ向け 企業内部向け Analytics
  43. 43. 43 7. Salesforce Einstein ひとことで言えば、CRM 用の人工知能 (AI) Salesforceが展開する機械学習/AI(人工知能)関連のサービスを総称していくもの http://itpro.nikkeibp.co.jp/atcl/news/16/092002725 企業名 サービス内容 発表時期 BeyondCore データディスカバリー 2016年8月 Coolan データセンター向けデータ分析 2016年7月 EdgeSpring データ分析 2013年6月 Implisit 営業担当者向けBI(Business Intelligence) 2016年5月 MetaMind ディープラーニングベースの画像認識など 2016年4月 MinHash 質問応答システム用の検索エンジン 2015年12月 PredictionIO 機械学習プラットフォーム 2016年2月 RelateIQ 企業と顧客との関係分析 2014年7月 Tempo AIがスケジュールを調整するカレンダー 2015年6月 Salesforceが2013年以降、買収してきたML/AI企業の一覧。
  44. 44. 44 7. Salesforce Einstein リードの予測スコアリングや、成立する可能性の高い商談を示唆したり、 https://trailhead.salesforce.com/ja/trails/get_smart_einstein/modules/get_smart_einstein_feat/units/get_smart_einstein_feat_tour
  45. 45. 45 7. Salesforce Einstein リコメンドやコンバージョンの分析に使ったり、 https://trailhead.salesforce.com/ja/trails/get_smart_einstein/modules/get_smart_einstein_feat/units/get_smart_einstein_feat_tour
  46. 46. 46 7. Salesforce Einstein Langで言語解析したり、Visionで画像解析したり https://trailhead.salesforce.com/ja/trails/get_smart_einstein/modules/get_smart_einstein_feat/units/get_smart_einstein_feat_tour
  47. 47. 47 8. Salesforce IoT CRMと Connected Devices を繋げる接着剤 デバイスからのデータをCRM基盤へ { そのまま | 要約して } 取り込んで、 顧客にとって価値の高い体験を提供する
  48. 48. 48 8. Salesforce IoT ・デバイスのデータは膨大かつ単体では情報密度が少ない ・CRMのデータはそれに比べて、レコードあたりの価値が高い ETL Filter 収集 集約 可視化 device
  49. 49. 49 どんな技術要素があるの? 1. サーバサイド … Apex / Trigger 2. データベース … SOQL 3. フロントエンド … LightningComponent / Visualforce 4. テスト … Apexテストフレームワーク 5. 開発環境・ツール … 開発者コンソール / SFDX / force.com CLI 6. Webアプリ開発 … Heroku 7. ML, IoT … Einstein / IoT Cloud
  50. 50. 50 Salesforceにおける開発 • 要件って何?標準でできることは? 要件 開発が 必要 標準で できる シンプルで完成されたCRMの 世界に加えて、ML/AI, IoT, Marketing Automationなど 要件のカバー範囲は拡大している 開発者視点でSalesforceで できることをよく知って、 向き合い方を身につけよう
  51. 51. Lightning Web Componentのご紹介 1. Lightning Web Componentとは? 2. サンプルコード 51
  52. 52. Lightning Web Componentとは 1. Webアプリ開発の潮流に沿った新しい Lightning開発の枠組み 2. 軽量で高パフォーマンス 3. コードは主にJavaScriptとHTML 52
  53. 53. サンプルコード 53
  54. 54. サンプルコード 54
  55. 55. 参考 Trailheadモジュール: https://trailhead.salesforce.com/ja/content/le arn/projects/quick-start-lightning-web- components Github: https://github.com/trailheadapps/lwc-recipes 55
  56. 56. キャリアについて&まとめ 56 Salesforceってなに? どんな技術要素があるの?
  57. 57. Salesforceエンジニアのキャリア Salesforceエンジニアは大きく2つのカテゴリーに分けられます。 • 社内開発者(Salesforce導入企業・SIer) • 独立系ソフトウェアベンダー(ISV) 57 社内アプリケーションを構築して Salesforce をカスタマイズ 他の開発者や顧客のために アプリケーションを開発 → →
  58. 58. インテグレーション開発者 • Salesforceとその他システム(Saas・基幹 システム)との連携はよくあるシナリオ。 WEB・UI開発者 • HTMLとCSSの知識が必要。Lightningコ ンポーネントなどにより、高度なUIを作成する 場合にはApexとJSのスキルも重要。 データベース・ロジック開発者 • スキーマやデータ検証機能、数式、ビジネス ルール、プロセスの作成方法を理解している 必要。 モバイル開発者 • S1やネイティブのモバイルSDKを使用して ユーザーに新たなアプリケーションを提供。 専門性 専門性を活かせるか? 58
  59. 59. 枯れない(かもしれない)エコシステム Salesforceは、年に3回メジャーリリースが行われ、 毎回多くの新機能が追加されます。 59 • 春、夏、冬にリリースされる • Spring’19 で58回目のメジャーリリース • 最新機能をイベントやWEBでチェック!!
  60. 60. まとめ ⇒クラウド上のアプリでありプラットフォーム ⇒サーバーサイド、フロントエンド、ML、IoT等色々! ⇒進化し続けているため、陳腐化しない?! ⇒キャリアについても多くの道がある 60 1. Salesforceって何? 2. どんな技術要素があるの? 3. 技術・キャリアについて
  61. 61. コミュニティ紹介 Salesforce Developer Group ルーキー会 61 • Salesforce開発初心者向けコミュニティ • 月一回程度勉強会実施 • 同じ初心者仲間が見つかる! • connpass – https://sfdgr.connpass.com/ • Twitterアカウント – @sfdgrjp
  62. 62. 次回ルーキー会のお知らせ 62 • 日時 – 2018年2月28日(木) 19:00~ • 場所 – アクセンチュア様(溜池山王駅から徒歩約5分) • 内容 – ハンズオン – お題は「Apexトリガーフレームワーク」 • connpass申込ページ – https://sfdgr.connpass.com/event/118989/
  63. 63. ほかにもこんなオフラインコミュニティが • Tokyo Salesforce Developer Group • Umekita Force(関西) • Salesforce 女子部 • Northern Force(北海道) • Fukuoka Salesforce Developer Group(福岡) などなど 詳細はこちらから https://www.trailblazers.jp/group 63
  64. 64. Thank You! 64

×