'19年1月振り返り (ルーキー会/Ranger/認定アドミ/Japan Dreamin')


はじめに

今月もデベロッパー見習いとして勉強期間を割いてきました。取り組みの中で感じたこと、考えたことなど書き残しておきたいと思います。

タイトルの通り大きく4つに分かれます。

  • ルーキー会 (Apexテストおさらい)
  • Ranger (Trailhead学習)
  • 認定アドミニストレーター (資格取得)
  • Japan Dreamin (コミュニティイベント参加)


ルーキー会

Salesforce Developer Group ルーキー会 #15 - connpass

テーマはApexテストということで、トレイルヘッドの内容を思い出しながら課題に取り組んだ。

Apex テスト | Salesforce Trailhead

お題はテストクラス、メソッドの作成方法のおさらいに始まり、assertによる検証、コードカバー率の確認などメンターによるフォローを受けつつ実際に手を動かしたりドキュメントを参照しながら取り組んだ。

取り組む中でテストを書く際の考慮事項を教えてもらったり、この場合はどうか等と質問・議論に参加させてもらうことができた。

そうして自分の中で腹落ちするまで学べる場を提供していただけるのは非常に有難いことと思う。ルーキー会をはじめ、こういった場には今後も参加していきたい。1


Ranger

11月からTrailhead中心にSalesforceの学習を進めてきて、ようやくRangerのランクに到達することができた。

学習する中で気をつけていたのは、どのようにして体系的に知識をつけていくかという点であった。

ただ闇雲にバッジ取得するだけでは身につかず、ある程度は学習計画を立てるのが重要だと感じていた。計画の際はトレイルやタグ2といった仕組みを利用することで、体系だった知識の習得に役立てられたと思う。

自分の場合は始めにロードマップを示してもらっていた(Trailmix作成/共有機能)ため、あとは関連するトレイルやモジュール/プロジェクトを探すだけであった。

その他には開発者向けのノウハウ習得3や後述のアドミ試験向けの勉強など目的別に学習計画を立てることを意識したりと、Trailheadの仕組みを有効活用することができた。

↑100個目のバッジはアドミ試験に向けた総復習を意識してBusiness Administration Specialist のSuperbadge に取り組んだ


認定アドミニストレーター資格

一番ベーシックと思われる認定アドミニストレーターの資格を取得することができた。

勉強方法はトレイルヘッドをやりながら実際にDeveloper Editionを触ってみて、不明なところや考慮事項などをヘルプページと開発者ドキュメントで整理していくといった感じ。

Prepare for Your Salesforce Administrator Credential | Trailmix

並行して出題形式に慣れるため、過去問題や模擬試験問題も参照して実際に解いてみたりもしていた。

次はアプリケーションビルダー試験に向けて学習を進めていく予定

Prepare for Your Salesforce Platform App Builder Credential | Trailmix


Japan Dreamin

Salesforce コミュニティ合同イベントと言われるJapan Dremin' 2019に参加してきた。

Salesforce Japan Dreamin' 2019 - connpass

コミュニティ主催とはいえキーノートやエンドセッションではSalesforceの中の人も登壇され、SWTTなどの公式イベントとは一味違った貴重な内容4が聞けた(?)のが印象的だった。

セッションの時間は自分の場合ほとんどDeveloper向けの方で話を聞いていたのだが、個人的に心に刺さったのはSalesforce Developers Group ルーキー会の @i_sanuki さんによる「ルーキー成長物語」であった。


アウトプットの方法について

インプット、アウトプットのサイクルが学習において重要であるのは認識していたが、讃岐さんのお話ではこのアウトプットの方法について触れられており、ここを意識することでより成長5に繋げられるのだなあと考えていた。

アウトプットの方法としてはコミュニティへの参加、ブログやSNSでの発信などが身近な例としてあげられており、これらについては自分自身も取り組んできたと思う。

そこで次のステップとして勉強会やイベントでの登壇が効果的であるとのお話があり、やっぱりそうかーと思う気持ちがありつつも登壇したところで自分は何を周りに伝えられるのだろうと真剣に考えるきっかけとなった。


所感

とにかく登壇してみるというのも手なのかもしれないが、やはり登壇するからには自分の強みであったり色みたいなものは最低限必要だろうというのが現時点での結論であり、そのあたりを今後は考えていかなければと良い刺激となった。

このような周りを巻き込んでコミュニティ全体で成長していこうといったお話はエンドセッションでの「フォロワーシップ」「コミュニティシップ」などのキーワードだったり、さらにはJapan Dreaminというイベントのテーマであった「繋ぐ」といったところにも関わってくるような気がして、ここに運営側(=各コミュニティを先導する方々)の一貫した意図を感じることができた。6


おわりに

以上で今月取り組んできたこと、達成できたことをまとめてみました。図らずも月イチペースでの振り返りができているのでこのまま続けていきたいです。

学習に専念できる時間は一見貴重なようで羨ましがられたりもするのですが、気を抜くとインプットに偏りがちになってしまうというのが実感としてありました。(漫然とやっているだけでは身につかず、むしろ非効率となる恐れがある)

それを払拭するためにも学習目標を立てて計画的にインプットしていくこと、また時にはコミュニティなど参加して情報交換といったことを意識的に行ってきました。

ブログでの発信も今までは自身の学習ログ程度に考えていましたが、これからは効果的なアウトプットの手段としても習慣づけられるよう目標を立てて取り組みたいと思います。



  1. ルーキー会についてはテーマを変えて定期的に開催されているようなので、自分のようなSalesforce初学者のデベロッパーに是非おすすめしたい Salesforce DG ルーキー会 - connpass

  2. ユーザの知識レベルや製品ごと、技術領域ごとの区分けとなっている。これにより学びたい領域にフィルタすることが可能 (例: 初級レベル + Apex/Visualforce で絞り込み)

  3. 開発者向けトレイル:初級 / 中級 / 上級 -> 中級編の途中まで進めたところ。デベロッパー入門として初級編はやりきり必須と思います。

  4. 内容についてはTogetterのまとめがいい感じです。 -> Japan Dreamin' 2019 - Togetter

  5. ここで言う「成長」という言葉はかなり広い意味として捉えられると思うのですが、自分の解釈としては「インプットしたものをさらに広げて自身の糧としていくこと、あるいは目標に向かって前進していく感じ」という風に思い浮かべていました。

  6. あくまで個人的な解釈ですので見当違いだったらすみません。

SOQLおさらいメモ


はじめに

SFDGルーキー会#141にてSOQLをおさらいしたメモ

Trailheadなどで分かったつもりになっていた部分や、時間が経って忘れかけていた部分の覚え書きとして。

※本当にメモ程度なので詳しくはリファレンスを参照する


LIMIT N

検索結果で返されるレコード数を指定する

SELECT Id FROM Account LIMIT 1


WHERE

テキストは''で囲う

SELECT Id, Name FROM Oppotunity WHERE StageName = 'Close Won'


日付リテラル

相対的な時間範囲を表せる(日付形式と日付リテラルを参照)

SELECT Name, CreatedDate FROM Account WHERE CreatedDate = LAST_MONTH


項目名

オブジェクトマネージャなどで参照し正確に記載する

SELECT Id, Name, Industry, NumberOfEmployees, AnnualRevenue FROM Account


リレーションクエリ

参照先の項目を取得するには.で繋ぐ(リレーションクエリ)

SELECT Name, Account.Name, Account.NumberOfEmployees FROM Opportunity


集計関数

指定した項目を集計するには集計関数を使う。

WHERE句で集計対象を絞り込む

SELECT SUM(Amount) FROM Opportunity WHERE StageName = 'Closed Won'
SELECT AVG(AnnualRevenue) FROM Account WHERE AnnualRevenue > 0

SUM: 合計, AVG: 平均


LIKE演算子

WHERE句内で部分一致の条件指定が可能。WHERE 項目名 LIKE '%検索文字%'という風に使う

SELECT COUNT(Id) FROM Account WHERE Name LIKE '%Test%'

COUNT: レコード数


GROUP BY, ORDER BY

指定した項目でグループ化を行う, レコードの表示順を制御する

SELECT CloseDate, COUNT(Id) FROM Opportunity GROUP BY CloseDate ORDER BY CloseDate DESC LIMIT 8

DESC: 降順

GROUP BY, ORDER BY, LIMITの順序に注意する (以下「構文について」参照)


構文について

クエリの各句は記載順序が決められており、順番が違うとエラーとなりSOQLは実行されない。(SELECT,FROMは必須。他は省略可能)

参考: SOQL SELECT の構文


参照


Salesforceを勉強して一ヶ月経ったので振り返る


※この投稿は Trailblazer Advent Calendar 2018 第13日目 の投稿となります。


はじめに

11月よりSalesforce パートナー企業に勤め、まだ案件には配属されず勉強期間の身ですが一ヶ月経っての振り返りや感じたこと、これからやっていきたいことを書きたいと思います。
自分と同じSalesforce初学者の方や、今後の新人教育など教える立場となる諸先輩方の参考になれば幸いです。


入社前

前職はシステム開発会社に勤務し、Salesforceとはほとんど関係のない業務に就いていたため、現職ではゼロからのスタートとなった。
入社前の学習としてはTrailhead(後述)が役に立った。初学者として下記のキーワードだけは最低限抑えることができていたと思う。1

  • オブジェクト、項目、レコードの概念
  • 取引先、取引先責任者といった独自の名称
  • Apexクラス、Apexトリガの基本実装


主な参照ドキュメント

現在までに参照してきた主なリソースをあげていく。


Helpドキュメント

Salesforce ドキュメントへようこそ
ヘルプドキュメントのルート。
ページ上部の検索窓からはヘルプだけでなくナレッジ記事、開発者ドキュメント(後述)の各体系にわたり横断的な検索ができる。何か分からないことがあればまずはここを当たってみることが多い。
現在では32件のカテゴリに分かれており、PDFでダウンロードすることもできる。


はじめは下記を読み進めるのがよい。

  • Salesforce の使用開始
    Salesforce の製品やサービス、エディションを理解するための主要な概念の紹介と一般的なタスクを実行する方法について掲載されている。Salesforce とは何か、どのようなことが実施可能なのか。その操作方法についても概要が掴める。


その次にノンコードでのカスタマイズ方法について理解を深める。


開発者ドキュメント

開発者ドキュメント | Salesforce Developers
開発者ドキュメントのルート。こちらも開発向けの各ドキュメントに絞った横断的な検索が可能。


主に参照していたのは以下の2つ


合わせてこちらの学習も進める。


Lightning コンポーネントについては以下で説明されるように、今後のSalesforce開発では必須の知識と思われる。

Lightning コンポーネントフレームワークは、モバイルデバイス用およびデスクトップデバイス用の動的な Web アプリケーションを開発する UI フレームワークです。これは、拡張性に優れた単一ページアプリケーションを構築する最新のフレームワークです。


Trailhead

Trailhead | 楽しく学ぶ方法
Salesforce の操作方法を中心に基礎知識が学べる。これまでの1ヶ月はこれに沿って学習してきた。モジュールやプロジェクトという単位でバッジを取得していき、それが学習実績となる。(最小単位はユニット(単元)。ポイント取得もあるがここでは触れない)
これらがトレイルという単位でまとめられているため、関連カテゴリやテーマに沿って学習できるようになっている。


まずは下記のトレイルを学習することになると思う。


また「平等」というのもSalesforceが大切にする概念・価値となるため押さえておく。


SWTT 2018の基調講演2でも言及されていた下記のキーワードについても学ぶことができる。


こういったプラットフォームとしての強みや目指すところの目的、何を大切にしているかなど文化の部分を共通認識としてインプットしておけるのも特徴と感じた。


SWTT に参加してみて

Salesforceを学習し始めて一ヶ月というタイミングで年に一度の最大イベントに参加することができた。結論から言うと、この体験が現在のモチベーションの裏付けとなったように感じる。

  • コミュニティの印象
    第一印象は初学者も暖かに受け入れてくれるといった感じ。ビジネスユーザやシステム管理者3も多く参加しているためなのかもしれない。

  • 学習環境
    これも初学者にとってありがたい点と思われるが、勉強会やハンズオンといった知識共有の場が活発で身近に感じることができた。
    いくつか参加させてもらうことができたのだが、情報共有を始め高い技術力を持った開発者の方や、圧倒的なプレゼンスを誇るレジェンドのような方にも出会うことができ、とても刺激になった。

  • Salesforce への認識
    少なくとも一ヶ月前までの理解とは大きく変わった。以前は「SFAに特化したクラウドソリューション」という程度の理解であったが、営業だけでなくCRMやサービス、マーケティング、さらにはAI、データ分析を利用したソリューションも注目となっていたのが印象的だった。
    また、技術面ではインフラ周りやデータベースなど直接触る機会も少なくすぐに物足りなくなるのではと考えていたが、SWTTでの話を聞いて考え方が変わってきた。
    学習していくと製品やソリューションによるビジネス価値や解決したい課題にフォーカスできることが実感され、開発・ものづくりに携わる上での土台としても優れた題材と考えるようになった。


今後やっていきたいこと

  • コミュニティへの参加
    学習していく中で共通の課題が共有できる場であったり、自宅での作業がどうにも集中できない時などにも活用していきたい。
    イベント一覧 | Salesforce Trailblazers Event

  • 資格取得
    スキルアップの目標として分かりやすい指標となる。周りからの評価も得られやすいと思われるため、これを軸に学習を進めていきたい。
    まずは会社でも奨励されているアドミニストレーターの取得に向けて勉強予定。

  • 開発案件で活躍
    現在のところは特定の業務に就いていないため、本格的な配属後には活躍できるよう技術知識を身につけておきたい。
    また業務を行う上では、顧客からの依頼内容や目的、製品によって解決したい課題に対する視点が持てるよう心がけたい。


おわりに

以上でSalesforceを勉強してきて一ヶ月経った振り返りと感じたことをまとめてみました。
これからも継続して学習していきたいと思っているので、Trailblazer のみなさま、
よろしくお願いいたします!



  1. 入社前に理解しておくようにと会社側から出された課題でもあった

  2. SWTT 2018の基調講演

  3. コードでの開発はせず標準機能のカスタマイズ操作に特化したスペシャリスト。この方々の存在がSalesforceでの開発現場において非常に重要という理解
    @akikobannaiさんによる前日の投稿が非常に説得力があり心強いです。