every Tech Blog

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

golang

Go 1.26で変わるgo fix

Go 1.26で変わるgo fix この記事は every Tech Blog Advent Calendar 2025 の 26 日目の記事です。 はじめに go fixとは Go 1.26での変更点 modernizeとは 使い方 実行例 inlineとは 使い方 実行例 IDEでの修正 新しいgo fixでできること まとめ はじめに 開…

Goエンジニアになって半年経ったので振り返る

Goエンジニアになって半年経ったので振り返る この記事は every Tech Blog Advent Calendar 2025 の 23 日目の記事です。 はじめに こんにちは!デリッシュキッチンで主にバックエンドの開発を担当している秋山です。 私は今年の6月にエブリーへバックエンド…

Go Workshop Conference 2025 IN KOBE に参加してきました!

この記事は every Tech Blog Advent Calendar 2025 の 22 日目の記事です。 こんにちは @きょー です! 先日 Go Workshop Conference 2025 IN KOBE に参加してきました。とても楽しかったので記事として皆さんにも共有できればなと思います! 会場の様子 は…

WebTransportをGoで試してみる

この記事は every Tech Blog Advent Calendar 2025 の 12日目の記事です。 はじめに エブリーでデリッシュキッチンの開発をしている本丸です。 日々、GeminiやClaudeCodeに支えられて業務を行っているのですが、利用する中でチャットのような双方向の通信に…

Go 1.26 slog.MultiHandlerの ユースケースを考える

この記事は every Tech Blog Advent Calendar 2025 の 10 日目の記事です。 開発2部の内原です。 今回は、Go 1.26で追加される予定のslog.MultiHandlerについて調べてみたので書いてみます。 概要 Go 1.21で導入されたlog/slogは構造化ログを扱えるため便利…

Go のエラーの扱いを振り返る

目次 はじめに Go でのエラー構造 再帰的エラーハンドリング エラーハンドリングのパターン errors.As で値取り出してチェック errors.Is で値の一致 Go1.26 で追加予定の errors.AsType まとめ この記事は every Tech Blog Advent Calendar 2025 の 1 日目…

Grafana LGTMスタックをローカルで検証してみた

Grafana LGTMスタックをローカルで検証してみた はじめに こんにちは!デリッシュキッチンで主にバックエンドの開発を担当している秋山です。 オブザーバビリティの向上に向けてGrafanaやその関連ツールを検証する一環で、Grafana LGTMスタックをローカルに…

【ハンズオン】 MCP サーバー作成からリモートにホスティングしてみる

はじめに MCP サーバーとは ハンズオン step 1 step 2 step 3 最後に はじめに こんにちは、@きょーです!普段はデリッシュキッチン開発部のバックエンド中心で業務をしています。 このブログでは簡単な MCP サーバーを作成し、ローカルでの動作確認。そして…

Go言語のガベージコレクションについて学んでみた

はじめに エブリーでデリッシュキッチンの開発をしている本丸です。 1ヶ月前にGo Conference 2025があり色々と面白い発表があったのですが、その中にGo言語のガベージコレクションについての発表がありました。 ガベージコレクションについてやGo言語におけ…

インターンでデリッシュキッチンの新機能開発に取り組みました

1. はじめに こんにちは、everyで1ヶ月間のインターンシップに参加させていただいた宮田です。本記事では、デリッシュキッチンの新機能開発に携わった経験と、そこで得られた学びを紹介します。 現在、デリッシュキッチンの既存仕様に対して、ユーザー体験を…

Goの組み込み関数 len() に詳しくなる

はじめに こんにちは。デリッシュキッチン開発部でバックエンドエンジニアをしている鈴木です。 Go言語の組み込み関数len()は、一見シンプルに配列やスライスなどの「長さ」を返す関数ですが、その実装はコンパイラやランタイムレベルで特別な扱いを受けてい…

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

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

Go Conference 2025 に Platinum "Go"ld スポンサーとして参加しました!

目次 はじめに セッション・ワークショップ紹介 今日から始めるpprof(ymotongpooさん) Goを使ってTDDを体験しよう!!(chihiroさん) Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する(Takeru Hayasakaさん) 0→1製品の毎週リリース…

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

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

Go Conference 2025 に Platinum "Go"ld スポンサーとして今年も協賛いたします!

はじめに この度、株式会社エブリーは、2025 年 9 月 27 日(土)、28 日(日)に開催される「Go Conference 2025」に、Platinum "Go"ld スポンサーとして昨年に続き協賛することになりました! Go Conferenceとは? gocon.jp プログラミング言語 ”Go”ユーザーの…

AI と学ぶ Go のスライス/メモリ/パフォーマンス

最近、AI を利用して Go のスライスやメモリ、パフォーマンスに関する内容を学習してみる機会がありました。 今回はその際の体験についてまとめてみたいと思います。

Go 1.25でのtesting/synctestを用いた並行処理テスト

開発2部の内原です。 Go 1.25がリリースされ、並行処理のテストを簡単にするtesting/synctestパッケージが正式に利用可能になりました。1.24では GOEXPERIMENT=synctest フラグが必要でしたが、1.25では不要になりました。 今回は実際にtesting/synctestを使…

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

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

GoのCI/CDを少しでも早くしたい

目次 はじめに 背景 現状の把握 AWS CodeBuild GitHub Actions デッドコード 改善したところ 不要なコード削除 キャッシュの有効活用 Codebuild GitHub Actions まとめ はじめに こんにちは、開発本部開発 1 部トモニテグループのエンジニアの rymiyamoto で…

Goで実装するUnicode文字数カウントが実はわりと難しい的な話

開発2部の内原です。文字コードの話は大好物です。 一般的に、アプリケーションの開発において文字数カウントは非常に身近な機能です。パラメータ取得時やフォーム入力時など、様々な場面で文字数計算を実装する機会があります。 しかし、Unicode文字、特に…

OpenAPI における null 値の表現の仕方

こんにちは、@きょーです!普段はデリッシュキッチン開発部のバックエンド中心で業務をしています。 はじめに OpenAPI で API 仕様書を書く際、null 値を許容するプロパティの表現方法はバージョンによって異なります。たとえば、ユーザープロフィールのメー…

デリッシュキッチンにおけるElasticsearchからOpenSearchへの移行検討

はじめに こんにちは、デリッシュキッチン開発部でソフトウェアエンジニアをしている新谷です。 エブリーの開発部では「挑戦week」という1週間の期間限定チャレンジを定期的に開催しています。これは日常業務から離れて、新しい技術やアイデアに挑戦する取り…

【Golang】 sqlboiler で複雑なリレーションを扱うために頑張った話

こんにちは。 トモニテ開発部ソフトウェアエンジニア兼、CTO室Dev Enableグループの庄司([ktanonymous](https://github.com/ktanonymous))です。 "データベースファースト"な ORM ライブラリの `sqlboiler` を使う中で複雑なリレーションに対して有効に活用…

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

go 1.24 go1.24 golang golang 1.24 golang1.24

SonyflakeでUnique IDentifierを生成しよう

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

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

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

OPTiMさんとGolangの共同勉強会を開催しました

先日OPTiMさんと共同で開催した勉強会についてご紹介したいと思います。 OPTiMさんとeveryさんからそれぞれのメンバーが登壇し、Golangを利用したプロジェクトでの成功事例や課題克服にまつわるLTが行われました。 以下が当日のタイムスケジュールとなってい…

Go 言語で multipart/form-data を使用して画像を受け取り外部に送信する

この記事は every Tech Blog Advent Calendar 2024(夏) 25 日目の記事です。 はじめに こんにちは、24 新卒として 4 月から入社し、DELISH KITCHEN 開発部でソフトウェアエンジニアをしている新谷です。 現在取り組んでいる業務で、画像を受け取って外部に送…

DELISH KITCHENのユニットテストで使用しているライブラリ

この記事は every Tech Blog Advent Calendar 2024(夏) 7日目の記事です。 はじめに エブリーでソフトウェアエンジニアをしている本丸です。 Go Conference 2024もいよいよ明日開催ですね。 Goに関する話ということでDELISH KITCHENのユニットテストで使用さ…

Go 言語で行うメール解析

この記事は every Tech Blog Advent Calendar 2024(夏) 6 日目の記事です。 目次 はじめに イントロダクション そもそもメールヘッダーとは net/mail パッケージ メールの解析 ヘッダーの取得 Body の取得 net/mail パッケージのメール解析で辛いところ MIME…