【Salesforce】開発者コンソールからVSCodeに乗り換え 良い点・悪い点

Salesforce

Lightning Web コンポーネントは開発者コンソールでは開発できない。

ローカルにVSCodeの開発環境は作っていたのだけど、どうもしっくりこなくて開発者コンソールを使い続けてた。でも大義名分ができたというか、さすがにそろそろVSCodeに慣れなきゃいけないかな。ということでよーやくVSCodeを使い始めました。

ちなみにeclipseの環境も、こちらもどうもしっくりこなくて使っていなかった。何がしっくりこないかというと、VSCodeなりeclipseなりIDE上で完結しないところ。

確かにエディタの使い勝手はIDEの方が良いというのは分かるのだけど、開発者コンソールはSalesforce開発に特化した部分で使い勝手が良い。SOQLを実行したり、ログを見たり、試しにApexコードを実行したり。ソースはIDEで書いて、その他の操作は開発者コンソールでやるとなると、Salesforceの画面を含めて3枚の画面を使う。その他にExcelやらパワポやらLineやら立ち上げると画面の切り替えが多くて嫌になる

VSCodeと開発者コンソールを比較するポイント

そういった理由から、今回VSCodeに乗り換えるにあたって可能な限り開発者コンソールを開かないようにするということを目指した。色々調べると意外とVSCodeでも同じようなことができるということが分かったので、それぞれの機能についてVSCodeの使い勝手を自分勝手に評価してみようと思う。

ちなみにVSCodeのプラグインは今後も改良されていくと思うので、あくまで今時点(2020/4/24)の感想程度のネタです。

比較ポイントは、普段私が開発者コンソールでよく使う機能に限定。

  • エディタ機能
  • SOQLの実行
  • テストの実行
  • 匿名Apexの実行
  • デバッグログを見る

比較結果

開発者コンソールとVSCodeの比較結果。◎○△は感覚で見てくだしー

機能 開発者コンソール VSCode
エディタ機能
SOQLの実行
テストの実行
匿名Apexの実行
デバッグログを見る

それぞれ良いところ、イマイチなところはあるけど、全体的にはどっこいどっこいかなぁという印象。ただVSCodeの方が伸びしろがあるんだよな。プラグインは公式のものだけではないので、探せば便利なものがあるかもしれないし、今後便利なものが出てくるかもしれない。そういった意味ではVSCodeの方が良い、かな。

あくまで単体で見た場合には。その時の状況で使い分けというのが良い選択だと思います。自分は・・ちょっと意地で、VSCode単体で使おうと思っていますが。

比較① エディタ機能

エディタの機能としては、やっぱりVSCodeの方が良いですね。開発者コンソールがイマイチなだけ?

VSCodeの良い点

  • やはりカスタマイズの幅が広い。自分好みの配色やアイコンにするとモチベーションあがるし、たまにテーマ変えて気分転換してみたり。
  • 開発者コンソールに感じるちょっとした不便さがない。開発者コンソールで個人的に嫌なのが、タブが開いた順番で固定されて、並び順を変えられないやつ。

VSCodeのイマイチな点

  • 補完機能は開発者コンソールの方が良い印象。開発者コンソールだとオブジェクトの項目名まで出てくれたりする。でもVSCodeの方も全く補完してくれない訳ではないし、むしろ場面によっては開発者コンソールよりも補完してくれる時がある?(気のせいかも)いずれにせよ全然我慢できる。

比較② SOQLの実行

SOQLは・・正直VSCodeは微妙。本当にちょっとしたSELECTを投げるだけだったら良いけど、項目数や行数が多くなったらとても使えたものじゃない。
【Salesforce】Visual Studio Code上でSOQLの実行

VSCodeの良い点

  • 正直・・無いかな。

VSCodeのイマイチな点

  • SELECT結果がコンソールに出力される。見づらいし、出力コンソールは新しい情報がどんどん吐かれるので「さっき抽出した結果が見たい」時とかは改めてSELECT投げることになる。その点開発者コンソールはSELECT結果をエディタに表示してくれるので良い。
  • SELECT結果に対して操作ができない。開発者コンソールの場合は再表示とかできる。あまり使わないけど行の削除とかもできる。

比較③ テストの実行

Apexテストの実行は・・・まあVSCodeでも耐えられる感じ。
【Salesforce】Visual Studio Code テスト実行とカバレッジの確認

VSCodeの良い点

  • テストを実行するアプローチが多い。Apexコード上にメソッド単位でRun Testのリンクが出てくるのは良いー。
  • テスト結果が視覚的に分かりやすい。開発者コンソールが分かりづらいわけではないのだけど、VSCodeの方がより分かりやすい感じ。

VSCodeのイマイチな点

  • カバレッジが見づらい。出力コンソールに吐かれるのだが、今回テストされたクラス以外のカバレッジとか、カバーした行番号とか一緒に出力されるので目的の情報がパッと見つけづらい。カバレッジはApexクラスを作る最大の理由でもあるので、これは嫌だな・・。開発者コンソールのもそこまで満足のいくものでは無いけど、開発者コンソールのが断然良い。

比較④ 匿名Apexの実行

匿名Apexって言ってるのは、開発者コンソールのOpen Anonymous Execute Windowのことです。こいつは何気にちょいちょい使うんだよなー。で、これについてはVSCodeでも問題なく使えるかな、という印象です。
【Salesforce】Visual Studio Code 開発者コンソールの Open Execute Anonymous Windowの代わり

VSCodeの良い点

  • 実行した匿名Apexを再利用しやすい。開発者コンソールの匿名Apexは、なんていうか、一時的にコードを書く場所という感じ。画面のUIが。それに対してVSCodeでの匿名Apexはエディタに書いてあるコードを実行するので、それをそのままプロジェクト内のどこかに保存しておけば再利用しやすい。VSCodeはローカルにプロジェクトを作る特性があるので、そういう使い方がしやすいというだけの話だけど。

VSCodeのイマイチな点

  • 匿名Apexの実行としては特に無し。
  • ただ匿名Apex実行の後は流れでデバッグログを見ることが多いので、そのデバッグログの見づらさという点では開発者コンソールに劣る印象。デバッグログについては下に続く。

比較⑤ デバッグログを見る

比較結果としてはどちらも同じ評価としたが、開発者コンソールの方が見やすいし使いやすい。ただVSCode特有の機能もあるので、それについては評価。
【Salesforce】Visual Studio Code 上でデバッグログの確認

VSCodeの良い点

  • Replay Debuggerが使える。ブレイクポイントを貼って、その時の変数の状態などをステップを追って見れる、という機能。正直まだちょっと触ってみただけだから感想を言えるほど分かってないんだけど、期待感あり。

VSCodeのイマイチな点

  • デバッグログを仕掛けないとそもそもログが取られない。開発者コンソールは開いているだけで勝手にデバッグログを仕掛けてくれる。対してVSCodeでは仕掛けるという手間が発生するし、そもそも最初からログを見る予定じゃない時も多い。あれ?うまく動いてないぞ?→ログ見るか。こんな場合はログを仕掛けてから改めて画面操作なりテスト実行なりしないといけない。
  • ログを見る前に、ログを取得する操作が必要。例えばApexバッチ処理とかだとログファイルがたくさん作成される。開発者コンソールだとログは常に一覧に表示されているので、とりあえず次々に開いて目的のログを見つけるが、VScodeだと ログ一覧の取得→選択→ダウンロード→開く という感じで1つのログを開くのが面倒。
  • ログの内容で絞り込めない。開発者コンソールでよく使うのがDebug Onlyでの絞り込み。自前で仕込んだログだけを見たい時はよくある。

評価 その他 VSCodeの良い点

その他として、使ってて思うVSCodeの良いところ。

  • Salesforceの組織にログインしなくても使える。開発者コンソールだと組織にログインしないとそもそも起動できない。
  • 開発者コンソールみたいに放っておくとセッションが切れるということがない
  • 差分表示が使える【Salesforce】Visual Studio Codeで差分表示ができない)。
  • 起動が軽い。2~3個起動しても全然問題なし。
  • ローカルフォルダのコピペでバックアップが取れる。1人開発みたいな案件だとわざわざバージョン管理使うまでも無い場合が多い。

終わりに

VSCodeは拡張性が高いので、上に書いたイマイチな点はプラグインが提供されたりして、そのうち無くなってしまうかも。というか、すでにプラグインがあるけど気づいていないだけかも・・実際にSOQLは公式ではないプラグインがあったけど、説明を見た感じそこまで便利そうじゃなかったからインストールまではしなかった。今後もちょいちょい探してみよー。

つーことで頑張ってVSCodeに慣れます。

コメント

タイトルとURLをコピーしました