every Tech Blog

株式会社エブリーのTech Blogです。

バックエンド

新着順 人気順

Claude Code ぶん回して仕様駆動開発を実践してみた 〜 設計書3.6万行と6つの落とし穴 〜

3〜7 名・3 か月で、Go の API、AWS の基盤、Flutter の 業務アプリを Claude Code 中心に新規開発した記録です。設計書を先に Fix する仕様駆動開発(SDD)に近い進め方と、AI の尤もらしい誤りや膨らむ設計書など、6 つの落とし穴と対策をまとめました。

AI AgentのタイムアウトからGoのイテレータを俯瞰する

先日、アプリ版デリッシュキッチンでGenerative UIを搭載したデリッシュAIをリリースしました。この記事ではAI Agentが引き起こしたタイムアウトのバグから、Go 1.23で入ったイテレータについて俯瞰してみたいと思います。

Goの import cycle not allowed を出しているのはコンパイラじゃない

Goの import cycle not allowed を出しているのはコンパイラじゃない こんにちは、uho-wq です。 早速ですが、以下のソースコードをビルドするとどのような結果になるでしょうか? # ディレクトリ構成 $ tree . . ├── a │ └── a.go ├── b │ └── b.go └── go.…

Goのtime. Nowとは? 〜synctestを添えて〜

Goのtime.Nowとは? 〜synctestを添えて〜 はじめに エブリーでエンジニアをやっております、赤川です。食事管理アプリ ヘルシカ の開発を通じてGoを嗜んでいます。 ダイエット・食事管理・体重管理・カロリー計算 - ヘルシカevery, Inc.ヘルスケア/フィッ…

外部連携バッチシステムの動作確認をしやすくする

はじめに こんにちは。リテールハブ開発部の清水です。 私たちのチームでは、外部システムと深夜帯にCSVをやり取りするバッチシステムを開発・運用しています。 これらのバッチ群は適切な順番で適切な設定で実行することが求められるのですが、 新メンバーが…

govulncheckで行う脆弱性対応

govulncheckで行う脆弱性対応 はじめに 開発本部でデリッシュキッチンプレミアム会員向けの開発を担当しているhondです! 先日axiosのサプライチェーン攻撃が話題になりました。axiosのリードメンテナのnpmアカウントがソーシャルエンジニアリング経由で侵害…

Go 1.26で追加されたnew(expr)はなぜこの形なのか

こんにちは、開発1部の[@uho-wq](https://x.com/uho_wq)です。 本記事ではGo 1.26で追加された`new(expr)`がどのような議論の末にこの形に落ち着いたのかを説明しようと思います。 ## new(expr) Go 1.26で、組み込み関数`new`が式(expression)を受け取れるよ…

Go Wasm の js.Value.Call はなぜ遅い? wasm_exec.js の内部実装から理解する

こんにちは @kyo です! 2026年2月21日に開催された Go Conference mini in Sendai 2026 にて、「GoとWasmでつくる軽量ブラウザUI」というタイトルで登壇させていただきました。この記事では、発表中にいただいたフィードバックについて深掘りをして得…

Echo v5 がリリースされました

目次 はじめに 注意事項 Echo v5の主な変更点 Echo v4からv5への移行しながら変更点を確認する バージョン更新とecho.Contextの変更 Routerのカスタマイズ (Interface + DefaultRouter) StartConfigを用いたサーバー起動 デフォルトロガーがslog.Loggerに変…

RevenueCat でサブスクリプション管理を効率化

はじめに 導入背景 バックエンドで直面した課題 RevenueCat の魅力 Webhook によるイベント通知 ダッシュボード A/B テスト基盤がある 実際に使って感じたメリット 工夫した点 サブスクリプションの有効期限が切れているにも関わらずプレミアムステータスの…

仕様駆動開発ツールcc-sddを実務で使ってみた

はじめに こんにちは、開発1部でソフトウェアエンジニアをしている新谷です。 今回は、AIエージェントで仕様駆動開発を実現する国産ツール「cc-sdd」を実務で約1ヶ月使用してみたので紹介します。 cc-sddとは cc-sddは、仕様駆動開発をAIエージェントで実現…

AIレビューをきっかけにSQLBoilerの内部構造を調べた話

目次 はじめに SQLBoilerのコード生成フローをおさらい 調査のきっかけになったAIレビュー columnsWithoutDefault が示すもの 実際の挙動を確かめる まとめ — AIレビューとの付き合い方 はじめに こんにちは。開発本部開発1部デリッシュキッチンMS2に所属し…

Laravel × Octane / Swoole × Auroraのマルチテナント化2パターン比較

はじめに こんにちは、リテールハブ開発部でバックエンドエンジニアをしているホシと言います。 現在、小売アプリの開発でLaravel11を利用してサービス開発を行っています。 今回は現在サービス提供している環境をマルチテナント化したお話をしようと思いま…

echo.Contextはどこからきているのか

私は入社して初めてWebフレームワークのlabstack/echoに触れました。使っていく中で「便利だけどこれどうやって動いているんだろう?」と思うことが増えてきました。 そこを意識しなくていいのがフレームワークの良いところなんだとは思いますが、気になるの…

プッシュ通知基盤におけるアラートの方針について

はじめに エブリーでヘルシカのサーバーサイドの開発をしている赤川です。 ヘルシカでは、APIサーバーの監視をSentryを用いて行っており、開発中のプッシュ通知基盤にもSentryを導入することになりました。通知基盤が一度に処理するデータ量は、ユーザーの数…

トモニテで発生した SQL インジェクション攻撃の記録と教訓

はじめに こんにちは、トモニテで開発を担当している吉田です。 サービスを運営する上で、セキュリティ対策は欠かせません。 本記事では、実際にトモニテが受けた攻撃の事例をもとに、 異常検知から調査の経緯、攻撃の詳細、そして発見された問題点や今後の…

Laravel開発で注意したい Eloquentの落とし穴と正しい使い方

はじめに こんにちは、リテールハブ開発部でバックエンドエンジニアをしているホシと言います。 現在、小売アプリの開発でLaravel11を利用してAPI開発を行っています。 今回はとても便利で、開発効率を大きく上げてくれるツール「LaravelのEloquent ORM」に…

TestFlightアプリでSandbox課金テストを行う方法

はじめに こんにちは、デリッシュキッチン開発部でソフトウェアエンジニアをしている新谷です。 新卒で入社してから早1年が経ち、時の流れの速さを感じています。 今回は、アプリ課金システムにおけるサーバー側のテスト方法についてご紹介します。 最近、デ…

初めてLaravelを導入したバックエンド開発の構成紹介

こんにちは。RH開発部RHRAグループの池です。 2024年6月にエブリーは5つの小売アプリの運営について事業譲渡を受け、『 retail HUB 』へ移管しました。 引き継いだシステムのバックエンドはLaravelを用いて構築されていましたが、Laravelは弊社では初めて扱…

Postman の環境を整備し開発のしやすさをちょっと上げた話

はじめに デリッシュキッチン開発部のバックエンド中心で開発をしている@きょーです。 この記事では、普段業務で Postman を使っていく際に便利だと思った機能について紹介します。 Postman とは Postman は、API の構築・利用を支援する API プラットフォー…

サンタさんへ、MySQL5.7から8.4にアップグレードしてください

MySQL5.7から8.4にアップグレードした時の問題点と解決策

Go 1.24 の encoding/json の omitzero について

go 1.24 go1.24 golang golang 1.24 golang1.24

ISUCON 14感想戦

この記事は every Tech Blog Advent Calendar 2024の18日目の記事です。 はじめに こんにちは、TIMELINE 開発部 Service Development をしているhondです! 今回は12/8に行われ、弊社がISUポンサーとして協賛したISUCON 14に会社の同期と友人と共に参加した…

ISUCON14 に ISUポンサーの枠で出場しました

この記事は every Tech Blog Advent Calendar 2024 の 10 日目の記事です。 エブリーで小売業界に向き合いの開発を行っている @kosukeohmura です。 エブリーは ISUCON14 にて ISUポンサーとして協賛いたしました。社に 1 枠の参加確定枠を頂き、僕は社内で …

SonyflakeでUnique IDentifierを生成しよう

はじめに この記事は every Tech Blog Advent Calendar 2024 の4日目の記事です。 DelishKitchenやヘルシカのバックエンドやらインフラやらをやっているyoshikenです。 今回は弊社でも利用しているUID生成に便利なSonyflakeについて説明していきます。 UIDと…

OpenAPI の定義を積極的にファイル分割して見通しを良くしてみる

この記事は every Tech Blog Advent Calendar 2024 1 日目の記事です。 はじめに 現状の管理方法からの問題点 分割の手段 分割によるメリット・デメリット まとめ 最後に はじめに こんにちは、トモニテ開発部ソフトウェアエンジニア兼、CTO 室 Dev Enable …

ISUCON14でISUポンサーとして協賛します!

はじめに こんにちは、トモニテ開発部ソフトウェアエンジニア兼、CTO 室 Dev Enable グループの rymiyamoto です。 この度、エブリーは 2024年 12月 8日に開催される『ISUCON14』に、ISUポンサーとして協賛することになりました! isucon.net ISUCONとは? I…

datadogのsmoothingを"理解"する

はじめに エブリーの吉田です。 今回はDatadogのMonitor等で使用する関数、Smoothing(平滑化)について書いていきます。 公式ドキュメントにも色々書いてあるのですが、数学から離れて久しいため、再確認も兼ねてできるだけ丁寧に説明していきます。 https://…

【2024最新】AWS Data Firehoseを使った際の4つの問題とその解決策

【2024最新】AWS Data Firehoseを使った際の4つの問題とその解決策 背景 こんにちは、開発本部 DELISH KITCHEN Retail HUB NetSuperグループに所属するフルスタックエンジニアをやらせていただいています、ホークアイ️です。2024/2/9、Amazon Kinesis Data F…

go1.22 からのテストカバレッジとの付き合い方

はじめに そもそも話題の背景 低下の要因たち 仕様変更に至るまでの経緯 計測方法の見直し テストファイルがあるものだけ抽出する(ホワイトリスト型) 除外したい pkg を名指しする(ブラックリスト型) まとめ はじめに こんにちは、トモニテ開発部ソフトウ…