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.

幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜

Developer Summit2018
Salesforce Developer Group ルーキー会プレゼンツ

  • Login to see the comments

幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜

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

×