コドモン Product Team Blog

株式会社コドモンの開発チームで運営しているブログです。エンジニアやPdMメンバーが、プロダクトや技術やチームについて発信します!

Kotlin

KotlinにおけるエラーハンドリングとArrow-ktのEither型

この記事は、コドモンAdvent Calendar 2025 24日目の記事です。 こんにちは!プロダクト開発部のjunです。12月は子どもの誕生日が2回とサンタ業務と正月休みがあり、山積みの謎の段ボールやポチ袋たちと仕事をする日々です。 これらのビッグイベントを滞りな…

複雑な公開条件を伴うロールアウトをDBで制御した話 〜 AWS AppConfigとの比較検討 〜

こちらは「コドモン Advent Calendar 2025」の 6 日目の記事になります。 はじめに こんにちは。プロダクト開発部の河野です。 普段はコドモンの写真販売・共有機能を担当しているチームで、プロダクトの改善や新機能の開発を行っています。 先日、私たちの…

【イベントレポート】Kotlin Fest 2025に参加しました!

こんにちは!エンジニアの藤村です。 2025年11月1日に開催されたKotlin Fest 2025に、コドモンはゴールドスポンサーとして協賛しました! この記事では、ブースコンテンツの検討から当日のスポンサーブースやセッション、懇親会の様子をレポートします。 ブ…

「抽象に依存する」クラス設計の具体例 - 生成AIを組み込んだアプリケーションを題材に

はじめに DIP(依存関係逆転の原則) 生成AIを組み込んだアプリケーションにおける抽象と具象の例 抽象と具象を反映したクラス設計の例 機能: Generator 入出力: ImageSummaryGenerator 実現方針: GeneratorByAI 実現手段: OpenAIPromptBuilder 実装の詳細: …

複数の集約を更新するユースケースで結果整合性を実現する方法を検討しました

こんにちは、プロダクト開発部の中田です。 今回はドメイン駆動設計をもとに実装する際に、個人的によく悩む課題について、対応方法を調べたので共有します。 はじめに 複数の集約をまたぐ整合性が必要となった例 整合性の実現方法の選択肢 案1. モデルを見…

ClineとDDDと私

こんにちは、プロダクト開発部の中田です。 最近、AIエージェント界隈は非常に盛り上がっていますね。 今回は、Clineを使ってみた感想や、自分が現在どのように使っているかをご紹介します。 はじめに Clineを使いはじめたわけ Clineを使いはじめて悩んだこ…

Kotest + SpringBootTest + TestcontainersでAPIの結合テストを行う

はじめに コドモンプロダクト開発部の安居です。私たちのチームでは、Spring Bootベースのマイクロサービスを複数開発・運用しています。その中でAPIの結合テストを行う際に、「テストの実行時間」や「ローカルでのテスト実行のしやすさ」に課題を感じていま…

ECSで動作するSpringBoot (Kotlin)アプリケーションにDatadog APMを導入した

こんにちは。 コドモンの決済推進チームの杉山です。 この記事では私が所属している決済推進チームでどのようにDatadog APMを入れたかを紹介します。 Datadog APMを入れた経緯などはこの記事では触れません。 導入時にこちらのガイドを参考にしました。 この…

KotlinでIntelliJ IDEAのプラグインを作ってみよう!

こちらは「コドモン Advent Calendar 2024」の 13日目の記事です qiita.com こんにちは! プロダクト開発部の村松です! みなさんはどのようなエディタを使っていますでしょうか? 弊社ではIntelliJ IDEAを使うメンバーが多く、日々IntelliJ IDEAの便利な機…

ビジネスルールを型で表現するリファクタリング手法

こちらは「コドモン Advent Calendar 2024」の 3日目の記事です qiita.com エンジニアの上代です。 今回ご紹介するのは、請求に関連するシステムで実施したリファクタリングについてです。このプロジェクトでは、サーバーサイドをKotlinで開発しており、請求…

イベント連携基盤の技術選定をした話 〜Axon + MSKさわってみた編〜

こんにちは、プロダクト開発部の中田です。 今回は、イベント連携基盤の技術選定において、前回のEventBridge編に引き続き、MessageBrokerの候補として挙げたAmazon Managed Streaming for Apache Kafka(以降、MSKと記述)およびAxon Framework(以降、Axon…

Kotlin Fest 2024に協賛しました🐣

こんにちは!Engineering Officeのおかぱる(@okapall)です。 「Kotlin Fest 2024」にひよこスポンサーとして協賛してきましたので、協賛背景や当日の様子を書いていきます! www.kotlinfest.dev 協賛の背景 サーバーサイドKotlin選定の理由 当日の様子 イ…

GaugeとPlaywrightをGitHub Actionsで実行する際に工夫していること

こんにちは!プロダクト開発部の関根です。 飛行機好きの息子のために飛行機が見られるお出かけスポットやいい感じのYouTube動画を探す毎日です。 さて、コドモンではATDDでソフトウェアを開発しており、E2EテストのツールとしてGaugeやPlaywrightを利用して…

コードサンプルで学ぶMockKの使い方

こちらは「コドモン Advent Calendar 2023」の 7日目の記事です qiita.com こんにちは。プロダクト開発部の上代です。 私のチームではKotestを使用してテストコードを書いており、モッキングライブラリのMockKを採用しています。 MockKはKotlin専用のモッキ…

Kotlinの新機能Context Receiverについて登壇しました

こんにちは!プロダクト開発部の関根です。 6/23(金)に Server-Side Kotlin Meetup vol.9 『オフラインLT大会again!』 に登壇する機会をいただきました。 本記事では登壇することになったきっかけや発表内容の中で反応をいただいた点、登壇してみてのふりか…