About Me

微生物学からソフトウェアエンジニアへ。 好奇心と必要に導かれた歩み。

これまでの歩み

大学

微生物学を専攻。 科学的方法論と分析的思考の土台を築いた。

飼料業界 (7 年)

営業 (2 年)購買 (5 年) を経験。 社内外の関係者と密に連携・交渉・コミュニケーションを取りながら、 ビジネス側のスキルを培った。

このころ、 趣味でプログラミングを楽しむようになる 💻

転機

子の誕生をきっかけに、 一念発起して ソフトウェアエンジニアへキャリアチェンジ

プロジェクトマネージャ (1.5 年)

スマートフォンアプリ開発プロジェクトを率いる。 技術要件と業務要件の橋渡し、 部門横断のチーム調整を担当。

Web エンジニア (3 年)

Laravel で Web アプリケーションを開発。 PHP / MVC アーキテクチャ / モダン Web 開発の実践を深く経験。

Salesforce エンジニア (2 年 〜 現在)

Apex 開発に注力。 業務改善と機能開発に取り組みながら、 コードアーキテクチャ の両面から問題を解くスタイルを大切にしている。

特に テスト容易性保守性、 そして 責務の明確な分離 を重視しています。

AI が当たり前になる時代だからこそ、 ビジネス経験のなかで培ったヒューマンスキルは、 技術力と並んで欠かせないものになると考えています。

ApexEloquent 誕生のストーリー

プロジェクト着任

Apex 開発者として、 初めての Salesforce プロジェクトに参画。

プロジェクトの危機

コードベースに目を通すと、 崩壊の一歩手前 という状態だった。

アーキテクチャの不在

オブジェクト指向設計を無視した手続き型スクリプトの山

形だけのテスト

アサーションが 1 行もない、 カバレッジ稼ぎだけのテストクラス

N+1 問題

あちこちに散らばるクエリ問題が、 パフォーマンスと信頼性を蝕んでいた

モダン Web 開発で当然のように大切にされている基本が、 ここには一切残されていなかった。

調査と分析

Salesforce 開発でよく起きる課題 (テストの書きにくさ / データ依存 / ビジネスロジックの肥大化) を体系的に洗い出した。 モダン Web 開発のパターンを、 Salesforce プラットフォーム上にどう適応できるかを探る。

ブレイクスルー

これが目を覚ますきっかけになった。 Salesforce 開発の現場には、 より良いパターンと実践が必要だ、 と確信した瞬間。

Decided to build

ApexEloquent

自前のフレームワークを作る。 ここから Apex Stem 全体への構想が始まった。

中心に据えたのが Query Delegation Pattern。 ドメインロジックを I/O から切り離し、 モック中心の高速な単体テストを書けるようにする設計です。

フレームワーク開発

ApexEloquent を組み上げ、 磨き続けた。 Query Delegation Pattern の実装、 詳細なドキュメント整備、 複雑な業務シナリオ (請求書管理など) を想定したサンプル実装まで、 一通り揃えた。

姉妹 OSS の登場

ApexEloquent だけでは解決しきれない領域 (結合テストデータ生成 / Usecase のライフサイクル追跡 / 基盤ユーティリティ) があると分かり、 続けて 3 つの OSS を順次設計した。

  • ApexBlueprint: 結合テストデータを宣言的に組み立てる OSS
  • ApexTrace: Usecase のライフサイクルログとテストの経路検証
  • ApexTools: TriggerHandler 基底クラスと、 DI 対応の HTTP リクエストラッパー

こうして 4 つの OSS が揃った。

Handler-Usecase Architecture の考案

4 つの OSS を 1 つの開発フローで統合運用するための設計が必要になり、 Handler (エントリポイント) と Usecase (業務ロジック) の 2 段構えのアーキテクチャを考案した。 この 4 OSS + アーキテクチャ全体を Apex Stem としてまとめ、 一貫した思想で運用できるようにした。

知見の共有

同じ課題に直面する開発者にこのアプローチを届けたくて、 このサイトを立ち上げました。 堅牢でスケールしやすくテストしやすい Salesforce アプリケーションを作るための、 より良いやり方を探求しつづけています。