Utilitys

僕の考えるテストファースト開発技法

はじめに この記事では、ウォーターフォール開発を前提に、各工程でどのようにテストファースト的に振る舞うかを整理します。 テストファーストは実装だけの話じゃない Kent Beck のTDD(Test Driven Development)は「Red → Green → Refactor」で有名ですが、本質は「動く前に、どうあるべきかを定める」ことです。 つまりこの考え方は、要件定義・基本設計・詳細設計といった上流工程にも応用できます。 各工程とテストの対応・考え方 要件定義 × システムテスト 基本設計 × 結合テスト 詳細設計 × 単体テスト テストファースト思考の共通原則 メリット・デメリット メリット 項目 内容 要件漏れ防止 テスト視点でパターンを考えるため、漏れが減る 手戻り減少 実装後に「想定外のケース」に気づくリスクが下がる レビューがしやすい 期待値ベースで設計やコードをチェックできる チーム共通認識 テスト観点を通じて、仕様認識のずれを防げる デメリット 項目 内容 工数が見えづらい 「テスト設計思考」は明文化されにくい 重箱の隅になりがち 異常系ばかりに気を取られてしまうことも 経験が必要 網羅性の判断には経験が必要で、属人化しやすい まとめ テストファーストって、なんか「テストコードを先に書こうぜ」って話に見えがちだけど、僕としてはもっと広い意味で捉えてます。 実装に入る前に「こう動くべき」って期待値とかパターンをちゃんと考えとこうよっていうスタンスでそれが要件定義だろうが、基本設計だろうが、どのフェーズでも大事な姿勢だと考えました。 ただ、全部の工程で全員がそれを意識する必要があるかって言うと、別にそうでもなくて。リーダーとかレビュアーがそういう視点を持って、レビューや方針決めのときにちゃんと網羅性とか「抜けてるとこない?」って見てあげれば、それで十分機能するんじゃないかなと。 結局のところ、「事前にちゃんと考える」というだけでプロジェクトの精度はかなり上がるし、それがテストファーストの本質なんじゃない?と、この記事を作りながら考えてました。

salesforce

Apexトリガーの記載方法

Apexトリガーとは

Salesforceのレコード操作後にApexクラスでの割り込み処理を行う際に使用するプログラムのこと。

割り込みが行われるタイミング(処理前、処理後)は2種類存在し、ユーザ操作が完了後Salesforceの内部で処理が行われる前か後かを指定することができる。
レコードに対してどのイベント(新規作成、編集、削除等)の時に起動するかを指定することができる。

salesforce

VSCodeでSalesforceと連携してApexクラスを取得〜デプロイしてみよう

※VSCodeの設定がまだの人は先に↓の記事を見てみてください。 公式の「Visual Studio Code の設定 単元 | Salesforce Trailhead」はこちらから 目次 1. ローカルPCにて作業用プロジェクトを作成する 2. salesforce組織の認証を行う 認証設定を行う(任意) salesforce 組織の認証を行う 3. 接続先の組織からソースを取得する(retrive) 3-1. Package.xmlから取得する方法 3-2. 直接ファイルを選択して取得する方法 4. ソースを編集する 今回は例として、Account(取引先)の作成後に特定の項目に値を設定するApexトリガーを作成します。 5. ソースをsalesforceに格納する(deploy) 5-1 . Package.xmlから更新する方法 5-2. 直接ファイルを選択して更新する方法

salesforce

Aura ComponentまたはLWCでクイックアクションを呼ぶ方法

前提
Aura Componentから「クイックアクションAPI」を使用することでクイックアクションは呼べる。
lightning:quickActionAPI – documentation – Salesforce Lightning Component Library
LWCからクイックアクションを直接呼ぶことはできないため、Aura Componentと組み合わせる必要がある。
Aura Component からLWCを呼ぶことはできるが、LWCからAuraを呼ぶことはできない。
Lightning Web コンポーネントを Aura コンポーネントと連携させる方法について 単元 | Salesforce
レコードの詳細画面以外からは呼べない※考慮事項は以下のリンク
クイックアクション API の考慮事項

Utilitys

Salesforceで使える便利なGoogleChromeの拡張機能3選

GoogleChrome拡張機能一覧 目次 Salesforce DevTools Salesforce DevTools 具体的な機能 ORGanizer for Salesforce ORGanizer for Salesforce 具体的な機能 Salesforce inspector Salesforce inspector Warning ページレイアウトに配置されていない項目(フローが動作して設定される値など)も変更できてしまうため、意図しない動作となる可能性がある。 具体的な機能 Note データのエクスポート/インポートもできる。 オブジェクトの設定画面まで遷移や、開発者コンソールを開いてなどの手間が不要となり効率アップになるかも。

salesforce

VSCode上でSalesforceと連携するための設定方法について

VSCodeとSalesforceを連携することで「VSCodeを使用したApexの開発」「Metadata APIの使用」など便利な機能が使えるようになります!この記事ではVSCode上でSalesforceを繋ぐための準備として、VSCodeの設定方法について記載しています! 目次 STEP1. Open JDK のダウンロードおよびインストール 1. Open JDK ダウンロード  ※筆者はJavaのJDKのバージョンはZulu 11を使用。※2023/12時点では17推奨 JDK version 17 (Recommended), or JDK version 11.  Slaesforce公式:Java 設定 2. Open JDK インストール Step2. Salesforce CLI のインストール https://developer.salesforce.com/docs/atlas.ja-jp.sfdx_setup.meta/sfdx_setup/sfdx_setup_install_cli.htm STEP3. Visual Studio Code のインストール STEP4. Visual Studio Code の拡張機能のインストール STEP5. Visual Studio Code のセットアップ 以上です!!良いVSCodeライフを! 次のステップ↓↓↓ VSCodeでSalesforceと連携してApexクラスを取得〜デプロイしてみよう

salesforce

Apex入門

本記事は以下のTRAILHEADの内容をまとめたもののため以下を実施が前提となる
Apex の基本とデータベース
非同期 Apex
Apex トリガ
Apex テスト
目次
SOQL/DML
SOQL
SOQLとは
Apex内でのSOQL使用例
DML
DMLとは
Insert・・・新規登録
Update・・・更新
Upsert・・・登録/更新
Delete・・・削除
非同期処理
非同期処理とは
futureを使用する方法
Database .batchableを使用する方法
スケジューラ
スケジューラとは
スケジューラの使用例
トリガ
トリガとは
トリガの使用例
ガバナ制限
ガバナ制限とは
Apexテスト
Apexテストとは
具体的なテストパターン
SOQL/DML
SOQL
SOQLとは
Salesforce上の各オブジェクト(テーブル)に問い合わせるためのクエリのこと
基本構文としてはSQLと同じになる。
Apex内でのSOQL使用例