ENECHANGE Developer Blog
https://tech.enechange.co.jp/
ENECHANGE開発者ブログ
フィード

Claude Code Desktop × Playwright MCPでシナリオテストはもっとシンプルになるのか?(準備編)
1
ENECHANGE Developer Blog
こんにちは、エンジニアの川野邉です。 最近、Claude CodeとPlaywright MCPを使って、シナリオテストの自動化について検証してみました。 この記事は「Playwright MCPを使ってみた」という紹介ではありません。 社内で長年運用してきたシナリオテストの仕組みを振り返りながら、「AIを使えばもっとシンプルに運用できるのでは?」と思い立ち、検証・実験をしてみた話です。 今回はその前編として、検証に至った背景や環境構築、テストシナリオの準備までを紹介します。 記事は以下の2本構成を予定しています。 準備編:背景・環境構築・シナリオ作成 実験編:実行結果・評価・業務利用できるか…
4日前

Step Functions のテストを「配線」と「中身」に分けて考える
ENECHANGE Developer Blog
はじめに こんにちは。システム開発部 石橋です。 複数の Lambda・ECS・Batch を組み合わせたワークフローを Step Functions で構築した。いざテストしようとすると、「ステートマシン全体を通しで動かすしかないのか?」という壁にぶつかる。 この記事では、ステートマシンのテスト対象を 「配線」と「中身」に分離する 考え方と、それに基づくテスト戦略を紹介する。
9日前

人間によるレビュー指摘を蓄積してAIコードレビューの精度を高める
ENECHANGE Developer Blog
はじめに 弊社の開発では ClaudeCode をはじめとした AI エージェントによるPRコードレビューを利用するのが日常になっていますが、商用製品としてのクオリティを担保するためにも必ずマージ前に人間によるレビューも行っています。 しばらくこの運用を続けていると 複数PRに渡り人間が何度も同じ種類の指摘をしている という問題が顕在化してきました。 例えば以下のような指摘が頻繁にあがっています。 責務の分離・配置:「この処理は呼び出し元ではなく処理側で自己完結させるべき」「定型コンテンツは別ファイルに切り出すべき」といった、コンポーネント間の役割の境界に関する指摘 実装品質:「同一リソースへ…
18日前

restrict_with_exception で守ったはずが、なぜか FK 制約エラー (has_many と論理削除の噛み合わせ事故)
ENECHANGE Developer Blog
Rails の dependent: :restrict_with_exception で親削除を防いだはずが、paranoia(論理削除)との組み合わせで InvalidForeignKey が発生。原因は default scope が empty? に影響すること。再現手順・解決策・テスト例まで解説します。
25日前

アポストロフィ1文字のバグ修正で、初めてOSSにコントリビュートした話
ENECHANGE Developer Blog
はじめに 社内で利用しているCLIツールecskの不具合をきっかけに、初めてGitHub上のOSSへコントリビュートしました。Issueの起票からPull Requestの作成、マージまでの一連の流れを経験したので、その記録を残します。 本記事では、特定のコンテナだけECSに接続できないという事象の調査過程と、原因となっていたバグ、その修正、そしてコントリビュートの手順を順に説明します。 関連リンク: Issue: https://github.com/yukiarrr/ecsk/issues/24 PR: https://github.com/yukiarrr/ecsk/pull/25 ツー…
1ヶ月前

セルフホストClairでECRイメージの脆弱性スキャン環境を構築した話
ENECHANGE Developer Blog
こんにちは、ENECHANGEエンジニアの藤巻です。 コンテナイメージの脆弱性スキャン、皆さんはどのように運用していますか? 私たちのチームでは毎月ECRイメージをスキャンし、新たに検出された脆弱性に見解を付けて報告する運用をしています。 ところが、ECRのスキャン方式の移行に伴いスキャン環境を更新したところ、前回結果との差分(「新規」として見解を付けるべき脆弱性)が大量に発生し、報告運用が立ち行かなくなるという問題に直面しました。 この記事では、別のスキャン方式を検討した結果、OSSの脆弱性スキャナー「Clair」をローカルにセルフホストしてECRイメージをスキャンできる環境を構築した話を紹…
1ヶ月前

『コンテキストスイッチを減らして、集中できる時間をつくる』から約2か月。実際どうだったのか振り返ってみた
ENECHANGE Developer Blog
こんにちは。ENECHANGEでエンジニアリングマネージャーをしている川野邉です。 以前、「コンテキストスイッチを減らして、集中できる時間をつくる」という記事を書きました。 tech.enechange.co.jp その中で、私たちのチームでは、コンテキストスイッチを減らすため、分散していたスクラムイベント(計画・振り返り)を水曜日に集約し、水曜日を週の起点として開発を進める取り組みを紹介しました。 あれから約2か月が経過したので、実際に運用してみてどうだったのか、良かった点や課題について振り返ってみたいと思います。
2ヶ月前

【AI時代こそ、TanStack Start】TanStack StartとHey APIではじめるスキーマ駆動開発
ENECHANGE Developer Blog
はじめに TL;DR AI 駆動開発では「型・スキーマ・境界」が AI のガードレールになる。 TanStack Start は createServerFn でサーバー境界を、Hey API は OpenAPI で型を一元化する。 結果として、人間にも AI にも読みやすい SSoT 駆動の開発基盤が手に入る。 こんにちは、ENECHANGEエンジニアの柿です。 今回は、TanStack Start と Hey API を使ったフロントエンド基盤について紹介します。 最近はどこを見ても AI の話題が多く、日々さまざまなアーキテクチャやノウハウが生まれています。どれも有用で、AI を使うなら…
2ヶ月前

やらかしたことで得られたこと
ENECHANGE Developer Blog
【はじめに】 こんにちは!ENECHANGEの大澤です! 突然ですが、皆さんは仕事でやらかしたことはありますか? また、やらかした際の報告はスムーズに出来ていますか? 私は経験がまだ浅いこともあり、大きなやらかしはせずに来ていました。 しかし、先日、大きなやらかしをしてしまいました...。 (具体的な内容はここでは伏せます。) その時に得られた経験がエンジニアに限らず社会人としてやっていくにおいても、とても大切なものだと思えたので、このブログに残そうと思います。
2ヶ月前

Application SignalsとOpenTelemetryで構築するSLO基盤
ENECHANGE Developer Blog
目次 はじめに なぜSLO基盤が必要なのか 技術選定理由 アーキテクチャ全体像 Ruby on Railsでの計装 Application Signalsで実現できること SLOダッシュボード アプリケーションマップ スパンの可視化(分散トレース) その他 今後の展望 はじめに ENECHANGE株式会社でSREを担当している杉田(@Mnbvc124)です。 ENECHANGEでは、複数のプロダクトをAWS上で運用しています。 プロダクトの信頼性を継続的に改善するため、SLO導入に向けた基盤整備を進めており、その中で Amazon CloudWatch Application Signals …
2ヶ月前

RubyKaigi 2026に参加してきました!
ENECHANGE Developer Blog
RubyKaigi2026の看板 こんにちは、ENECHANGE の利廣(としひろ)と杉山です。 今年も ENECHANGE は、2026年4月22日〜4月24日に開催された「RubyKaigi 2026」にゴールドスポンサーとして協賛しました!我々2人も RubyKaigi 2026 に参加してきましたので、その様子をお届けしたいと思います。 rubykaigi.org
2ヶ月前

EMConf JP 2026 参加レポート~「増幅」と「触媒」としてのEM~
ENECHANGE Developer Blog
こんにちは!ENECHANGEでエンジニアリングマネージャー兼モバイルアプリエンジニアをしている片田(id:yuta_ktd)です。 昨年末に注文した分割キーボードのCornixがようやく届いたので使ってみているんですが、分割はもちろん40%配列も初めてなので、想像の5,000,000,000倍使いこなせていないです。 なので最近の日課は寿司打になってます。 さて、今回は2026/03/04に開催されたEMConf JP 2026に参加させていただいたので、その参加レポートをお届けします! 2026.emconf.jp
3ヶ月前

コンテキストスイッチを減らして、集中できる時間をつくる
ENECHANGE Developer Blog
こんにちは。ENECHANGEでエンジニアマネージャーをしている川野邉です。 今回は、私たちのチームで行った会議体の見直しについて紹介します。取り組み自体はとてもシンプルですが、日々の働き方や集中のしやすさに、じわっと効いてくる変化がありました。
3ヶ月前

Temporal Tableのレコードはいつから有効か? - トランザクション開始時刻とcommit時刻との違いについて -
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 花粉症の大変厳しい季節、皆様いかがお過ごしでしょうか。 私は「あー」か「うー」しか発することができない生き物として日々を過ごしています。 スギ花粉の飛散を抑制する研究が一日でも早く結実することを願いこのブログを書いています。 いわゆるミッションクリティカルなシステムの構築に携わった皆様であれば百も承知かと思われますが、システムにおいてトレーサビリティは大変むずかしい課題です。 特に処理とデータのトレーサビリティ、つまり「この処理はどの状態のデータにアクセスしたか」は難しい課題かと思います。 今回はTe…
4ヶ月前

【Claude Code】CLAUDE.mdが肥大化する問題とその解決策
ENECHANGE Developer Blog
こんにちは、ENECHANGEエンジニアの柿です。 Claude Codeを使っていると、/initでCLAUDE.mdを作成し、プロジェクトの情報を記述していくと思います。 しかし、CLAUDE.mdの/initによる記述量は比較的多く、そこにさらに追記・編集を加えると、CLAUDE.mdが大きくなってしまいます。 CLAUDE.mdはどのセッションでも最初に読み込まれるファイルなので、大きければ大きいほど、コンテキストウィンドウを圧迫してしまい、長いやり取りが困難になり、開発体験を損なう可能性があります。 また、公式ドキュメントには以下の記述があり、肥大化は非推奨とされています。 ミスを起…
4ヶ月前

Claude Code カスタムスキルでアラート対応を効率化する
ENECHANGE Developer Blog
こんにちは、ENECHANGEエンジニアの藤巻です。 私たちのチームでは、本番環境のアラート対応にBugSnag と CloudWatchを使っています。 既知のアラートについては Notion に対応方針をまとめているのですが、慣れていないメンバーにとっては、Notion を検索して該当記事を探し、手順を読み、本番環境を確認するという一連の流れがなかなか大変です。 この記事では、Claude Code のカスタムスキル機能を使って、アラートの対応を効率化した事例を紹介します。
4ヶ月前

Corosync+PacemakerによるNginx HA構成を自立型AIエージェントで構築したかった話
ENECHANGE Developer Blog
Corosync + Pacemaker によるオンプレミス向けHA設計 PlatformEngineeringのLDRです。 Qごとに1日だけ、プロダクト開発や事業課題の解決に活用できそうな技術についてインプット/アウトプットする「I/O Day」があります。今回は、過去に構築したことのあるCorosync + PacemakerによるHA構成を、自立型AIエージェントで構築させてみようとした話です。 裏設定 SaaSばかりやってるとオンプレ案件の時に環境での構築ってこれどうやってたっけ…って浦島状態になるのでたまに棚卸しが必要。DCの機器の持ち込み制限のある区域でBIOS/UEFI設定して…
4ヶ月前

Claude Code の「Skills」で仕様書自動生成の仕組みを作った話
ENECHANGE Developer Blog
こんにちは。ENECHANGEの川野邉です。 コードは日々進化していくのに、仕様書やドキュメントが過去に取り残される。 これは多くの開発現場で起きている課題ではないでしょうか。 コードは更新されるのに、仕様書は追いつかない クライアントや非エンジニアに説明のたびにコードを読み直す ドキュメントを書いても、次の改修で更新されず陳腐化する 仕様書やドキュメントの重要性は分かっていても、開発が忙しいとどうしても後回しになりがちです。 そこで今回、コード変更のタイミングで仕様書を自動生成・更新する仕組み を作れないかと考えました。 本記事では、Claude Code の Skills 機能 を使って試…
4ヶ月前

Devin活用術 - 水平展開と横断検索で開発効率UP
ENECHANGE Developer Blog
Energy Marketing Devチームの青木です。 今回は、Marketingチームで使用しているAIツールとその活用方法についてまとめました。
5ヶ月前

【Sansan × LayerX × ENECHANGE】運用と開発を進化させるAIの実践事例【イベントレポート】
ENECHANGE Developer Blog
ENECHANGE株式会社は2026年1月29日に、オンラインイベント「【Sansan × LayerX × ENECHANGE】運用と開発を進化させるAIの実践事例」を開催いたしました。 開発や運用の現場では、プロダクトの価値に直結する作業とは別に、環境構築やオンボーディング、アラート対応、初期調査といった「避けられないが、付加価値を生みにくい作業」が日々発生します。本イベントでは、AIエージェントをこうした作業の“担い手”として組み込み、業務を再設計するためのノウハウを各社のエンジニアが紹介しました。 本記事では、イベントの内容をレポートします。
5ヶ月前

AI時代、DDDの補完サブドメインはエンジニアが作るべきか
ENECHANGE Developer Blog
こんにちは。ENECHANGEエンジニアの石橋です。 AIによって実装コストは劇的に下がりました。しかし、そこから競争優位が自動的に生まれるわけではありません。 本記事で考えたいのは、次の問いです。 AI時代、補完サブドメインは本当にエンジニアが担うべきなのか? 結論から言えば、サブドメインの分類(コア/補完/一般)は変わりません。 変わるのは、補完サブドメインを「誰が構築するのが合理的か」という前提です。 AIによって、 補完領域の一部は、非エンジニアのドメインエキスパートでも構築可能になりつつある という現実が生まれています。
5ヶ月前

OSSのGitHubリポジトリで、やりすぎてみている話 ── DCOからRenovateまで
ENECHANGE Developer Blog
こんにちは、VPoTの岩本 (iwamot) です。 ENECHANGE発のOSSであるCollmboでは、GitHub Actionsワークフローや品質チェック機能をもりもりと活用しています。正直「やりすぎ」なくらいです。 ただ、これは意図的なものです。他のOSSやプロダクトのリポジトリではどこまでやれば充分なのか、議論の叩き台にしてもらうのが真の狙いです。 この記事では、Collmboで利用しているワークフローや品質チェック機能をご紹介します。 1. 開発プロセス DCO (Developer Certificate of Origin) CI: pip-licenses, ruff, t…
5ヶ月前

Claude Code を使いこなすためのベストプラクティス(実践検証付き)
ENECHANGE Developer Blog
こんにちは、ENECHANGEエンジニアの藤巻です。 この記事は、Claude Code 公式ドキュメントの Best Practices for Claude Code を参考に、要点を日本語でまとめたものです。「自分の作業を検証させる」「まず探索、次に計画、それからコード」「セッションを管理する」など、Claude Code を効果的に使うための9つのポイントを紹介します。 あわせて本記事では、これらのプラクティスを実際の作業フローに適用し、サブエージェントを用いたレビュー実践を通じて、実務の中でどのように機能するのかも検証した結果を紹介します。
5ヶ月前

要件が定まらない状況での設計判断 〜eValue Platformリアーキテクチャ事例〜
ENECHANGE Developer Blog
はじめに ENECHANGE株式会社でSREを担当している杉田(@Mnbvc124)です。 本記事では、環境価値管理サービス「eValue Platform」のリアーキテクチャにおける設計判断についてお話しします。 要件が不確定な中で、どのようにアーキテクチャを決めたのか。 その意思決定プロセスを共有します。
5ヶ月前

イベント履歴式ドメインモデル(イベントソーシング)とは何か
ENECHANGE Developer Blog
はじめに システム開発部でバックエンドエンジニアをしている白坂です。 弊社では、『ドメイン駆動設計をはじめよう』の輪読会を行っています。 この記事では、第7章で扱われているイベント履歴式ドメインモデル(イベントソーシング)について自分の理解を整理します。 これからDDDを学ぶ方の参考になれば幸いです。
5ヶ月前

Claude Code GitHub Actionsによるエラー初期分析を横展開した際の工夫点
ENECHANGE Developer Blog
こんにちは、VPoTの岩本 (iwamot) です。 同僚の片田さんによる「Claude Code GitHub Actionsを用いてエラーの初期分析効率化を目指す」では、Sentryに通知されたエラーを生成AIで初期分析する取り組みが紹介されていました。 ENECHANGEではSmartBear Software社のBugSnagをエラー監視に使っているプロダクトも多いので、同様に初期分析の仕組みを作ってみました。 本記事では、BugSnagエラー初期分析フローの全体像と、横展開する際に工夫したポイントをご紹介します。
6ヶ月前

AWS Glue + Iceberg で電力データを取り込み、処理時間を計測してみた
ENECHANGE Developer Blog
はじめに 以下の記事で、AWS Glue と Iceberg を用いて分析基盤を作成してみました。 本記事では、この分析基盤に対して 1万〜15万件 のデータを取り込み、以下の観点で検証します。 Glue Job の処理時間(XML パース → Iceberg MERGE)の計測 データ量に対する処理時間のスケーリング傾向の把握 ワーカー数(並列度)による効果の確認 tech.enechange.co.jp
6ヶ月前

GitHub CopilotでPRレビュー時のOWASP Risk Rating評価を自動化
ENECHANGE Developer Blog
最近ゴルフスコア⛳️79を出せたldrです。アベレージ70台を目標に頑張ります🏌️♂️ はじめに Infrastructure as Code(IaC)のセキュリティレビューで「このIAM権限、どれくらい危険?」「0.0.0.0/0で公開するリスクは?」といった疑問に、定量的に答えられていますか? 主なリスク評価手法として下記が挙げられますが、OWASP Risk Rating Methodologyに基づいたPRレビューガイドを作成し、GitHub Copilotで自動化することで、セキュリティリスクを0-9のスコアで定量的に評価できるようにしました。これにより手動入力コストを最小化し、リ…
6ヶ月前

Egress-Only IGWで、コスト増なしにRDSをプライベート化した話
ENECHANGE Developer Blog
こんにちは、VPoTの岩本 (iwamot) です。 事情によりパブリックアクセスを有効化していたAmazon RDSのDBインスタンスがあったのですが、パブリックアクセス不要となったため、プライベートサブネットに移行しました。 その際、Egress-Onlyインターネットゲートウェイ (以下、Egress-Only IGW) を活用することで、有料のNATゲートウェイやVPCエンドポイントを追加することなく、移行を完了できました。 本記事では、移行の背景や、実際の移行手順をご紹介します。
6ヶ月前

DeepWikiを使ってOSSのコードリーディングを効率化する
ENECHANGE Developer Blog
こんにちは。 2026年1月にENECHANGEに入社いたしました、エンジニアの杉山です。 現在は既に展開されているSaaSプロダクトのリアーキテクトプロジェクトに参画しております。 リアーキテクトを進める中で強く感じているのが、 自社プロダクトの仕様理解と同じくらい利用しているOSSの理解が重要であるということです。 OSSを表面的な使い方だけで捉えていると 今の構成は最適なのか 要件的に別のライブラリで十分ではないか といった判断を根拠を持って行うことが難しくなります。 本記事では、そうした実務の中でOSSのコードリーディングを効率よく進めるために、私がDeepWikiをどのように活用して…
6ヶ月前