## 開発期間
2025年08月 ~ 2025年12月
## 概要
顧客の声(フィードバック)を収集・分析し、プロダクト改善に活かすためのBtoB SaaSプロダクトの新規立ち上げ。
**「リリース前時点で4社への導入決定」**というビジネス成果に向け、要件定義からアーキテクチャ設計、インフラ構築、実装までを一人称でリード。
特定のクライアント向けカスタマイズではなく、汎用的な**マルチテナント/SaaS型プロダクト**として設計・開発。
## 体制
* **規模**: 2名(PM 1名 / エンジニア 1名)
* **担当**: 要件定義、技術選定、アーキテクチャ設計、アプリケーション開発、インフラ構築(IaC)
* ※ 技術領域の全責任者として、設計から実装・デプロイまでを一人称で完遂。
## 技術スタック
| カテゴリ | 詳細 |
| :--- | :--- |
| **言語** | **Go** (1.25) |
| **フレームワーク** | Gin, sqlc |
| **データベース** | PostgreSQL |
| **インフラ** | AWS CDK (Go), API Gateway, Lambda, Aurora Serverless, S3, CloudFront |
| **アーキテクチャ** | Clean Architecture, Unit of Work Pattern |
| **外部連携** | Stripe (決済・サブスクリプション管理) |
| **フロントエンド** | Next.js (TypeScript) |
## 成果と技術的挑戦
### 1. 0→1開発におけるビジネス成果とスピード感
企画者であるPMと連携しながらMVP(Minimum Viable Product)の要件をスピード感を持って策定。
ビジネス要件が流動的なフェーズにおいて、変更に強いドメイン設計と、デプロイサイクルを高速化するIaC環境を初期から構築しました。
結果、営業段階でデモ可能な品質のプロダクトを短期間でリリースし、**リリース前に4社の受注を確定**させました。
### 2. Go言語における堅牢なアーキテクチャ設計(Clean Architecture)
Go言語の実務採用は本プロジェクトが初でしたが、長期的な保守性とスケーラビリティを担保するため、**厳格なレイヤードアーキテクチャ**を採用しました。
* **依存関係逆転の原則 (DIP)**: Domain(ビジネスルール)を中心に据え、DBや外部APIへの依存を完全に排除。インターフェースを用いた疎結合な設計により、単体テストの容易性と将来的な技術変更への耐性を確保しました。
* **防御的ドメイン設計**: 全てのIDやパラメータにValue Objectを採用し、生成時にバリデーションを強制。「不正な値がドメイン層に存在できない」状態を保証することで、バグの混入を構造的に防いでいます。
### 3. 高度なトランザクション管理と整合性担保
SaaSとしてデータの整合性が生命線となるため、フレームワーク機能に頼らず、信頼性の高いデータ処理基盤を構築しました。
* **Unit of Workパターンの独自実装**:
* ドメイン層がトランザクションの詳細(`Begin`, `Commit`, `Rollback`)を意識せず、宣言的に扱えるインターフェースを構築。
* ユーザー登録、契約管理、ログ記録といった複数のリポジトリに跨る更新処理において、ACID特性を厳密に担保しています。
* **Stripe連携における冪等性(Idempotency)の担保**:
* 決済システム(Stripe)からのWebhook処理において、ネットワーク起因のリトライによる「二重課金」や「処理重複」を防ぐため、イベントログテーブルを用いた冪等性制御を実装。分散システムにおけるデータの整合性課題を解決しました。
### 4. AWS CDKによる完全なIaC化と開発効率化
インフラ構成(API Gateway, Lambda, DB等)をすべて**Go言語によるAWS CDK**でコード化しました。
* **環境複製の自動化**: コマンド一つでStaging/Production環境を複製できる体制を構築し、インフラ変更のレビューもプルリクエストベースで実施可能にしました。
* **スキーマ駆動開発**: `sqlc` を採用し、SQLとGoコードの型整合性をコンパイル時に保証。実行時エラーを極小化し、開発体験(DX)と品質を両立させました。
Go言語未経験の状態からスタートしましたが、言語仕様だけでなくエコシステムや設計思想まで深くキャッチアップし、シニアエンジニアから**「特定の言語に依存しない、普遍的で堅牢な設計力がある」**との評価を獲得しています。