WHITEPLUS TechBlog
https://blog.wh-plus.co.jp/
株式会社ホワイトプラスのエンジニアによる開発ブログです。
フィード

ABテストを前提にアプリ改善を進めるようになって変わったこと
1
WHITEPLUS TechBlog
こんにちは、ホワイトプラスでアプリ開発をしている土門です。 最近、ホワイトプラスのアプリ開発では、「ABテストを前提に改善を進める」という考え方がかなり強くなってきました。 以前は、 このUIの方が使いやすそう この導線の方が自然そう この訴求の方が伝わりそう といった、“良さそう” をベースに改善を進めることも少なくありませんでした。 もちろん、それ自体が悪いわけではありません。 実際、プロダクト開発では経験や感覚もとても重要です。 ただ、改善を続けていく中で、 本当に改善されたのか? ユーザーにとって価値があったのか? を、感覚だけで判断する難しさも感じるようになりました。 そこで現在は、…
5日前

Claude Code スキルは事前設計だけでは育てきれない ─ PR レビュースキルを 20 回以上改善した記録と気付き
1
WHITEPLUS TechBlog
こんにちは!株式会社ホワイトプラス、コアシステム開発Gの たなか です。 当社のエンジニア組織では LLM を活用した作業効率化に取り組んでおり、Claude Code、Codex、Devin など複数のツールが使える環境が整っています。 自分はレビューにかける時間が長いという課題感があって、Claude Code を使って自分用の「PR レビュースキル」を作って育てています。記事タイトルにある通り、このスキルだけで 20 回以上改善しました。 「同じスキルを 20 回も改善するのは多すぎるのでは」と思われるかもしれません。振り返ってみると、確かに最初から想定できていれば減らせた改善もありまし…
6日前

既存の社内CLIツールを捨てずに、Claude Code Skill + MCP でリリース手順書作成を30分から5分に短縮した話
WHITEPLUS TechBlog
はじめに こんにちは、CX開発グループの @n-black-cat です。 便利な社内ツールはあるのに、使うまでの準備や使った後の作業が面倒 — そんな経験はないでしょうか。 弊社では、大きなプロジェクトをリリースする際にリリース手順書を作成し、それに沿ってリリース作業を行う文化があります。手順書を作成する際には Go で書かれた自家製の CLI ツールがあり、分単位のタイムテーブル、リリースコマンド、ロールバック手順、Slack テンプレートまで含んだ、そのまま使える手順書を出力してくれます。 ただ、ツール自体は正確に Markdown を吐いてくれるものの、その前後はすべて手作業でした。 …
1ヶ月前

個人の知見を組織の力に変える──AI活用ラボ立ち上げ
WHITEPLUS TechBlog
こんにちは、CX開発グループでテックリードを担当している德廣です! CX開発はリネットの顧客向け機能、コアシス開発は基幹システムを担当するチームです。 今回は、2026年上期からCX開発・コアシス開発を跨いで立ち上げた「AI活用ラボ」という取り組みについてお話しします。 なぜこのタイミングで立ち上げたのか、背景から書いていきます。 これまでやってきたこと DDD認識共有会から始まった 2022年末、私がホワイトプラスに入社して最初に取り組んだのが「DDD認識共有会」の立ち上げでした。 当時は弊チームではPRでの指摘・手戻りが多く、望む生産量に達していませんでした。ValueObjectやRep…
2ヶ月前

モノレポでClaude Codeのスキルをチームごとに出し分けたい ― direnvと環境変数で30行で解決した話
WHITEPLUS TechBlog
こんにちは、ホワイトプラスでエンジニアリングマネージャーをしている仲見川です。 今回は、Claude Codeのスキルをチーム別に管理・配布する仕組みを構築した話を紹介します。 Claude Codeのスキルとは スキルは、Claude Codeの能力を拡張する仕組みです。SKILL.md ファイルに指示を記述すると、Claudeがそれを自身のツールキットに追加します。Claudeは会話の内容に応じてスキルを自動的に利用するほか、/skill-name で直接呼び出すこともできます。 たとえば「DDD構成要素の実装規約」「テストコードのパターン」といったプロジェクト固有のルールをスキルとして定…
3ヶ月前

Claude CodeのHooksで入力待ち・完了を通知する方法
WHITEPLUS TechBlog
Claude Codeの応答待ち中に別作業へ移っても、ベストタイミングで戻れるようにしたくて通知音を鳴らす設定を入れてみました。本記事では、Claude CodeのHooks(Stopイベント)を使って通知音を鳴らす手順と、うまく鳴らないときの確認ポイントをまとめます。
4ヶ月前

仕様駆動開発(SDD)を実際のプロジェクトで試してみた
WHITEPLUS TechBlog
こんにちは、コアシス開発グループのfjtです! 今回は、最近注目されている開発手法である「仕様駆動開発(Spec-Driven Development)」を実際のプロジェクトで導入してみたのでその所感をお伝えします。 1. はじめに 仕様駆動開発(SDD)とは 仕様駆動開発(Spec-Driven Development)とは、AIが実行可能なレベルまで構造化された仕様書を先に作成し、それに基づいてAIに実装を任せる開発手法です。 AIを利用した開発手法であるVibe Codingの課題を解決できる可能性があるとして注目されています。 なぜ仕様駆動開発を導入しようと思ったか 弊チームもVibe…
6ヶ月前

レビューの軽微な指摘をAIに自動対応させてみた
WHITEPLUS TechBlog
こんにちは、コアシス開発グループのfjtです! 今回は、コードレビューの「nitsコメント」をAIエージェント「Devin」で自動対応する仕組みを作った話をご紹介します。 1. はじめに なぜこの仕組みを作ったのか 私たちのチームでは、コードレビューにおいてコメントの意図を明確にするためにタグを付ける文化があります。 [nits]: 軽微な指摘(コードスタイルなど) [imo]: 意見・提案 [ask]: 質問・確認 [must]: 必須の修正 このうち[nits]は、軽微ながらもコードの品質を保つために重要な指摘です。 [nits] ここのコメント削除して [nits] use文でインポート…
6ヶ月前

Entity と Value Object の違いと使い分け:ドメインモデル設計の入り口
WHITEPLUS TechBlog
こんにちは!株式会社ホワイトプラス、コアシステム開発Gの たなか です。 前回はクリーンアーキテクチャの層の基本:役割・依存方向・実務で効いたポイントという記事を書きました。 クリーンアーキテクチャや DDD(Domain-Driven Design)に触れ始めると、 Entity Value Object(VO) DTO Published Language(PL) といった用語が次々に出てきます。 名前は聞いたことがあっても、 Entity と VO はどう違うのか DTO や PL も含めて、どれも「値を入れるだけの入れ物」に見えてしまう といった形で、頭の中がごちゃごちゃしてしまうこと…
6ヶ月前

2025年下期の取り組みをご紹介
WHITEPLUS TechBlog
2025年下期の取り組みをご紹介 こんにちは、CX開発グループでテックリードを担当している德廣です! 1. はじめに ホワイトプラスでは、半期ごとに目標を設定し、チーム全体で取り組みを進めています。本記事では、2025年下期(7月〜12月)に向けて設定した目標と、11月時点までの取り組み状況について共有します。 本記事では、CX開発チームでの2025年下期(7月〜12月)の取り組みのうち、特に重要な2つに絞って、現状分析から今後の施策まで、半期の途中経過をご紹介したいと思います。 2. 部門目標 2025年下期の部門目標(抜粋): 収益確度の高い施策に係る開発サイクルを早める 開発プロセス/環…
6ヶ月前

GKEの新機能と不具合情報まとめ 2025年11月
WHITEPLUS TechBlog
2025年11月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 11月も大きなリリースはありませんでしたが、昔からあった地味にやっかいな問題であるロギングエージェントのパフォーマンス問題が解決されたのは嬉しいですね。影響がある人は少ないと思いますが、不具合が告知されているため確認しておくと安心して運用できるかと思います。 新機能 11/27 TPU7x(Ironwood)が利用可能になりました TPU7x(Ironwood)はGoogleが開発した第7世代のTPUで大規模AIワークロード向けに…
6ヶ月前

入社4ヵ月目エンジニアの働き方
WHITEPLUS TechBlog
はじめまして。CX開発グループでエンジニアをしている高橋です。 今年の8月にホワイトプラスへ中途入社し、気づけば4ヵ月が経とうとしています。 ようやく開発フローにも慣れてきたタイミングなので、今回は「入社4ヵ月目のエンジニアが実際にどんな働き方をしているのか」をご紹介しようと思います。 これからホワイトプラスへの入社を検討している方の参考になれば幸いです。 また、将来の自分が読み返したときに「そういえば最初はこんな感じだったな」と振り返れるような記録にもしておきます。 働き方 フルリモート エンジニアは基本フルリモートです。 もともと出社への抵抗はあまりありませんでしたが、それでも毎朝の通勤が…
6ヶ月前

GKEの新機能と不具合情報まとめ 2025年10月
WHITEPLUS TechBlog
2025年10月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 10月は利便性が改善されるリリースが多数ありました。中でもノードがドレインされるまでの時間が伸びたことや、クラスター作成時にしか設定できなかったネットワーク関連の設定が変更できるようになったことはとても嬉しいですね。また、いくつか不具合も告知されているため確認が必要です。 新機能 10/28 Autoscaled blue-green upgradesがプレビューとして利用可能になりました Autoscaled blue-gree…
7ヶ月前

リネットのモダンフロントエンドへの道のりと現在地
WHITEPLUS TechBlog
はじめに こんにちは、ホワイトプラスでエンジニアリングマネージャーをしている仲見川です。今回は、弊社が運営する宅配クリーニングサービス「リネット」のフロントエンド開発について、レガシーコードベースからモダンな技術スタックへの移行戦略と、SPA/MPA共存環境でのモダナイゼーションの現状と取り組んでいる事例をご紹介します。 リネットでは、長年にわたって複数のフロントエンド技術スタックが共存する環境で開発を続けてきました。SPA(Single Page Application)とMPA(Multi Page Application)の両方を運用する中で、モダンな技術への移行を進めつつも、レガシーな…
7ヶ月前

クリーンアーキテクチャの層の基本:役割・依存方向・実務で効いたポイント
WHITEPLUS TechBlog
はじめまして!株式会社ホワイトプラス、コアシステム開発Gの たなか です。 当社では、クリーンアーキテクチャやドメイン駆動設計(Domain-Driven Design / DDD)をベースに設計や実装を行っています。 が、なんと私、入社するまでどちらの設計手法にもちゃんと触れたことがありませんでした 😵💫 前職までの環境で意識していたのは「フレームワークのお作法に則る」程度で、特定の設計手法を意識して使っていたのは Strategy パターンぐらいです。 そんな私でも設計業務を担当させてもらうようになり、層構造を理解していく中で、設計の見え方が大きく変わりました。 この記事では、DDD の…
7ヶ月前

GKEの新機能と不具合情報まとめ 2025年9月
WHITEPLUS TechBlog
2025年9月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 先月のGKE 10周年記念ブログで紹介された機能が無事にリリースされています。その他には新規サービスエージェントの導入や互換性のないマシンタイプの告知など障害の原因になる可能性のある変更が告知されているため、影響が無いか確認する必要があります。また、Cloud Monitoringの課金対象のメトリクスが増えているため、該当するメトリクスを取得している場合はどの程度料金が増加するのか確認しておくと安心できそうです。 新機能 9/29…
8ヶ月前

Claude Codeが導入されたので触ってみた!【入門】
WHITEPLUS TechBlog
こんにちは! 株式会社ホワイトプラスのエンジニアリング部 CX開発Gのyumeです。 さまざまなAIツールが日々急速に開発・進化していく現代、 弊社も新たにAI開発支援ツール「Claude Code」を導入しました。 この記事はこんな方におすすめです: 「最近よく聞くClaudeとかClaude Codeって何?」と疑問に思っている方 「さくっとClaude Codeがどんなものか見てみたい」という方 「Claude Codeを使ってみたいけど何から始めようかな」という方 Claude(クロード)とは? Claude Codeとは? Claude Codeの使い方(導入) 前提条件 セットアッ…
9ヶ月前

GKEの新機能と不具合情報まとめ 2025年8月
WHITEPLUS TechBlog
2025年8月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 8月は小さな変更が多数リリースされました。なかでもHPAが再設計されパフォーマンスが改善されていたり、GKEのパッチバージョンを受け取るまでの期間を短くすることができたりと地味ですが嬉しいリリースがありました。 また、公式のブログでGKEの10周年を記念した記事が公開されていて、そこでは有料ティアが 1 つに統合され料金がわかりやすくなったり、StandardクラスタでもワークロードごとにアドホックでAutopilotを利用できるよ…
9ヶ月前

「生成AIのプロンプトエンジニアリング」を読んで学んだ今日から使えるプロンプト
WHITEPLUS TechBlog
こんにちは! ホワイトプラスのコアシステム開発Gエンジニアのさとうです。 AIツールを活用した開発業務が流行っている昨今ですが、弊社もAIツールで開発業務の効率化を試みています。 blog.wh-plus.co.jp そんな中、どのようにプロンプトを与えれば良い回答が得られるか、短いやり取りでタスクをこなせるか、常に手探りな状態で進めることにモヤモヤしていました。 Webには「こういうプロンプトが良い」「こうすればうまくいった」という情報が洪水のようにあふれていて、どれをピックアップするのが効果的か選びきれずにいました。 このような課題感から、一度きちんとプロンプトを学んでみたいと思い「生成A…
9ヶ月前

openapi-typescript で型安全なAPIクライアントを作成する
WHITEPLUS TechBlog
こんにちは!コアシステム開発Gでテックリードをやっている古賀です。 以前に OpenAPI の紹介をしました。 blog.wh-plus.co.jp 今回はその続編として、OpenAPI スキーマ定義を活用し、TypeScript で型安全に API 通信を実現する方法を紹介します。 最終的な成果物を先に見たい方は、末尾の動画をご覧ください。 TypeScriptにおける型安全とは TypeScriptにおける型安全とは、型の不一致をコンパイル時に検出し、ランタイムエラーの発生を未然に防ぐプログラミングスタイルです。 例えば、次のように文字列型の変数に数値を代入しようとすると、コンパイルエラー…
10ヶ月前

GKEの新機能と不具合情報まとめ 2025年7月
WHITEPLUS TechBlog
2025年7月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 7月はリリース数は少なかったですが大きなリリースが複数あり長文になっています。メンテナンスが告知されたため影響を受けないように適切にメンテナンスウィンドウを設定する必要があります。また、GFEsのTLSハンドシェイクに変更が入っています。現時点の発表内容を見る限り直接アクセスしている場合は影響はありませんが、中間プロキシ等を使用している場合は正しくRFCに準拠していることを確認する必要があります。 メンテナンス情報 7/28 コント…
10ヶ月前

DBバージョンアップって何が大変?気をつけたことまとめました
WHITEPLUS TechBlog
こんにちは、アプリ開発グループのdomonrです。 今回は CloudSQL の DB バージョンアップを実施した際に感じた、「技術的な話以外で、何が大変だったか」をまとめました。 本記事では、互換性チェックやSQL構文のような技術的内容ではなく、「どう段取りを組み、どう判断し、どう連携したか」といったマネジメントの観点にフォーカスしています。 DBのバージョンアップを予定している方にとって、準備のイメージがつかめるきっかけになれば幸いです。 1. スケジュール設計 リリースのスケジュールは、ユーザー影響や運用リスクを最小化するための基盤です。週末やアクセス集中時間を避けるだけでなく、他プロジ…
10ヶ月前

GKEの新機能と不具合情報まとめ 2025年6月
WHITEPLUS TechBlog
2025年6月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 6月はリリース数こそ少なかったですが、運用に影響を与える可能性のあるリリースが1つありました。クラスターオートスケーラーの仕様に変更が入り、ノードのスケールダウンの挙動が変わりました。今までスケールダウンしなかったタイミングで発生する可能性があるため注意が必要です。 新機能 6/25 C4DマシンシリーズがGAとして公開されました 以下のバージョン要件が適用されます。 Standard clusters 手動ノード作成 GKE 1.…
1年前

OpenAPI Specification で API スキーマを定義する
WHITEPLUS TechBlog
こんにちは!コアシステム開発Gでテックリードをやっている古賀です。 APIを改修しようとすると、「どのようなリクエストを送るべきか?」「レスポンスはどのような形式か?」といった疑問に直面することは少なくありません。 コードを読まなければ分からなかったり、ドキュメントがあるものの埋もれていたりすると、そのたびに調査が必要になり生産性を下げてしまいます。 これを防ぐには、API仕様を事前に定義し、誰でも簡単に参照できるようにしておくことが有効です。 APIスキーマを定義する手段としては、gRPCのProtocol Buffersや、GraphQLのスキーマ定義言語など、目的に応じていくつかの方法が…
1年前

「Shift」を使って laravelcollective/html から spatie/laravel-html へ移行する方法と注意点
WHITEPLUS TechBlog
この記事では、laravelcollective/html から spatie/laravel-html への移行を例に、Shift の利用方法をお伝えします。Shift は laravelcollective/html の移行だけでなく、Laravel や PHPUnit のバージョンアップ対応も行えるので、移行・バージョンアップを検討中の方にご覧いただけると幸いです。
1年前

GKEの新機能と不具合情報まとめ 2025年5月
WHITEPLUS TechBlog
2025年5月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 今月はk8s 1.33がRapidチャンネルで利用可能になったことが大きなリリースとしてあげられます。近い内にstableチャンネルにもリリースされるはずなので非推奨の対応は早めに行っておきたいですね。また、分析情報と推奨事項でアラートされる項目が順調に増えているのも安定稼働を考えると嬉しいリリースですね。 新機能 5/30 分析情報と推奨事項でetcdのデータベースサイズが限界に近づいているクラスタを特定し表示するようになりました…
1年前

MCPを理解するための MCP Server 構築入門
WHITEPLUS TechBlog
こんにちは!コアシステム開発Gでテックリードをやっている古賀です。 MCP(Model Context Protocol)はAIエージェントと外部システムをつなぐための重要な仕組みとして注目を集めており、私も MCP Server を Cursor に繋いでみて利便性が高まることを実感しています。 一方で次のような悩みが出てきました。 MCP の挙動を理解できていない → 使いこなせているか? 自分の用途に合った MCP Server が提供されていない → 自作できないか? 自社サービスの MCP Server を立てられないか → ビジネスチャンス!? そこで、ドキュメントや MCP ライ…
1年前

活用しているAIツール紹介
WHITEPLUS TechBlog
こんにちは、CX開発グループでテックリードを担当している德廣です! 今回は、ホワイトプラスの開発チームで現在活用しているAIツールについてご紹介したいと思います。 また、2025年6月28日(土) に開催される PHP Conference Japan 2025 に協賛することになりましたので、そちらのお知らせもさせていただきます! phpcon.php.gr.jp 現在活用しているAIツール Cursor - AI統合開発環境 Cursor は最近導入しました。まだ使い方を模索中ですが、MCP然りその可能性の大きさに日々驚かされています。 PhpStormのような痒いところに手が届かない部分…
1年前

タスクを分解して結局どうだったの?機能ごとに集計してみた
WHITEPLUS TechBlog
この記事では、分解したタスクを機能ごとに集計したらどのような傾向が見られたかをご紹介できればと思います。 タスクを分解する・しないの比較に興味がある!という方の参考になれば幸いです。
1年前

継続的に安全なコンテナでサービスを稼働するために行ったこと
WHITEPLUS TechBlog
サイバー攻撃による個人情報の流出が多数ニュースになっている状況で、お客様に安心してサービスを利用してもらうためには防御を一層高める必要があります。今回はインフラチームが主導して、Goで書かれたサービスをセキュリティが高く安全な状態で稼働できるように改善したのでその内容を紹介します。 改善前の状況 Goで書かれたサービスをDocker公式のDebianイメージを使いGKE上で稼働させていました。このDebianイメージは長年更新されておらず、バージョンはDebian 8 (Jessie) で2020年6月にEOLを迎えています。加えて脆弱性のスキャンも行っておらず、たくさんの脆弱性が入っているイ…
1年前