Retty Tech Blog
https://engineer.retty.me/
実名口コミグルメサービスRettyのエンジニアによるTech Blogです。プロダクト開発にまつわるナレッジをアウトプットして、世の中がHappyになっていくようなコンテンツを発信します。
フィード
Retty VPoE通信 Vol.3 - インテグリティについて考える
Retty Tech Blog
Retty VPoE(VP of Engineering : 技術部門のマネジメント責任者)の常松です。 VPoE通信は「開発のトップとして今何を考えていて、どう動こうとしているのか」の定期発信企画で、今回が3回目です。 Retty VPoE通信 Vol.2 - Retty Tech Blog (戦術強化を大事にする理由) Retty VPoE通信 Vol.1 - Retty Tech Blog (VPoEになっての所信表明) インテグリティという言葉 12月20日に公開されただいくしーさんのブログが目に止まり、インテグリティ(integrity)という言葉が心に残りました。 daiksy.h…
11日前
ストレスを感じやすいママエンジニアが2回目の育休&復職で鍛えるべきは心の防御力だと気付いた話
Retty Tech Blog
ストレスを感じやすいママエンジニアが2回目の育休&復職で鍛えるべきは心の防御力だと気付いた話
21日前
APIリクエスト内で同一関数呼び出しをキャッシュする仕組みとGo実装
Retty Tech Blog
ソフトウェアエンジニアの福井です。 Rettyでは小さなデータを複数取得し、それらを組み合わせて1つの大きなデータにする処理がいくつかあります。そして小さなデータ取得の判定に使うためのデータを取得することがあります。例えば飲食店の画像、メニュー、電話番号を取得し、それらを組み合わせた飲食店データを返すAPIがあります。この際、会員種別によって画像、メニュー、電話番号の取得方法が異なります。いずれのデータもSQLで取得しています。 通常は同じSQLを何回も実行しないよう、会員種別を前段で取得したあとに、それを使ってそれぞれの小さなデータを取得することになると思います。ただ再利用性などのいくつかの…
22日前
Fastlyでオリジンシールドを設定する
Retty Tech Blog
この記事はRetty Advent Calendar 2024の11日目の記事です️。 adventar.org Rettyプラットフォームチームの今村です。 RettyではContent Delivery Network(CDN)にFastlyを利用しています。今回はFastlyで複数のバックエンドを利用している環境にオリジンシールドを設定する方法についてご紹介します。 オリジンシールドとは オリジンサーバを複数設定している環境でオリジンシールドを設定してみる 1. どのPOPをシールドPOPとして使用するかを設定 2. カスタムVCLのvcl_recvにオリジンを決定するための変数を定義 …
25日前
Search Console × BigQueryで全量データ分析
Retty Tech Blog
Retty(レッティ)のプロダクトマネージャーをしている松田です。 はじめに Search Consoleではエクスポート行数に1000行までの制限がある、遡れる期間が16ヶ月前まで、など何かと物足りないポイントがあります。 BigQueryにデータをエクスポートすることで、エクスポート開始以降はデータ量に制限がなく全量データを分析できるようになり、意思決定の幅が広がります。 ここではエクスポートしたデータの見方と、簡単な分析例をご紹介します。 はじめに Search ConsoleのデータをBigQueryにエクスポートする方法 searchdata_url_impressionテーブルの見…
1ヶ月前
ベクトル検索を実現する技術選定 ~pgvectorとQdrantの性能比較~
Retty Tech Blog
本記事はRettyアドベントカレンダー2024の9日目の記事です。 Rettyでエンジニアリングマネージャを務めている山田です。 2022年の年末頃にChatGPTが登場してから早2年となります。 当初は革新的なAIという印象でしたが、時間の経過によりLLMを普段の生活や業務に活かしたり、これを応用したアプリケーションの開発を検討するなど、こうした発明もある程度浸透してきている頃合いではないかと思います。 特に、LLMは任意の自然言語形式のデータの取り扱いに優れ、これまで実現が難しかったアイデアを形にすることができるため、LLMを応用して新しい体験を提供する機能の開発に取り組んでいる方や、すで…
1ヶ月前
Combine製ロジックへのSwiftTesting導入とBDDからの移行
Retty Tech Blog
本記事はRettyアドベントカレンダー2024の8日目になります Rettyアプリチームの今泉 @imaizume です。 最近はプロダクトマネージャー(PdM)としての業務が増え、コードを書く時間が以前よりも減ってきています。 そんな中先日久しぶりに参加したiOSの勉強会でSwift Testingの存在を知りました。 Xcodeとの親和性や拡張性の高さに感激したので、さっそくRetty iOSにも導入してみることにしました! また下調べをする中で、Combineを使ったテストの例を見つけられなかったのですが、実際に試してみたところいい感じにテストコードを書くことができました。 この記事では…
1ヶ月前
Rettyアプリ:リリース文言の継続的運用への取り組み
Retty Tech Blog
Rettyアプリチームの若田(@wakanao_banana )です!この記事はRetty Advent Calendar 2024の7日目の記事です🗓️ 今回のテーマは「リリース文言」についてです。これまでのリリース文言作成の課題とその解消、そして現在Rettyで運用されているリリース文言の作成フローについてご紹介します! リリース文言について Rettyでの取り組み リリース文言作成フローが制定されるまでの話 以前は属人化した運用だった 各チームの課題感 リリース文言の作成フロー Slackワークフローを用いた具体的な運用 1. [プランナー]:施策を作成時にissueにリリース文言の叩き…
1ヶ月前
レッティ AndroidアプリにおけるCIチェックの体制
Retty Tech Blog
Rettyでアプリエンジニアをしている松田(@matsudamper)です。 この記事はRetty Advent Calendar 2024の5日目の記事です。 この記事ではRettyのAndroidアプリのテスト、LintのCIチェック体制がどうなっているかを紹介します。 現在は以下のチェックがCIで走っています。 Unit Test Android Lint Instrumented Test ktlint detekt Protocol Buffers Lint/Format 上記のチェックについて、どのような設定、運用が行われているかを紹介していきます。 Unit Test 自分がイン…
1ヶ月前
[iOS] Visionフレームワークを用いた料理写真の画像分類精度検証
Retty Tech Blog
Rettyアプリチームの若田(@wakanao_banana )です!この記事はRetty Advent Calendar 2024の4日目の記事です🗓️ 12月に入り寒くなってまいりましたが、地元の北海道では冬に部屋をぬくぬく温めてお風呂上がりにアイスを食べる、なんてことを思い出す季節ですね🍨 今回はオンデバイスでの画像分類の精度についてお話しします🫡 Webで十分な時代になぜモバイルアプリを作るのか? Visionフレームワークについて VNClassifyImageRequest 推論の速度 料理写真の画像分類の精度検証 精度検証の目的 検証 検証方法 結果 1. foodラベルの確度が…
1ヶ月前
長期関与で学ぶ知見:Rettyの実例から見るシステム改善の軌跡
Retty Tech Blog
Retty VPoE(VP of Engineering : 技術部門のマネジメント責任者)の常松です。 2025年2月27日に開催されるEMConf JP 2025向けに本記事と同じタイトルのプロポーザルを出していましたが、強豪ひしめく選考で負けてしまったようです。本記事に話したかったことをまとめて供養します🙏 fortee.jp はじめに 1. スクラムと大規模スクラム(LeSS)の導入 2. マイクロサービスアーキテクチャへの移行 3. ライブラリやフレームワークの選定プロセス 4. マネージドサービスへの置き換え おわりに はじめに 転職が一般的になりつつある今の時代ですが、「1つのサ…
1ヶ月前
リソース効率向上のためのGoのuniqueパッケージ
Retty Tech Blog
ソフトウェアエンジニアの福井です。 Go 1.23で新しくuniqueパッケージが追加されました。このuniqueパッケージはinterningを提供します。 interning interningとはGoに限らず、新しいオブジェクトを作成するときにすでに同じオブジェクトのメモリ割り当てがあればそのメモリを再利用し、メモリスペース効率を向上させる方法です。 interningを活用した具体的なユースケースとしては以下があると思います。 株価データの集計バッチで、同じ値が頻出するティッカーと株価のオブジェクトのinterning フリマサイト 評価データの集計バッチで、「とても良い取引ができまし…
3ヶ月前
Fastly ディクショナリを駆使してシステムを段階的移行する
Retty Tech Blog
ソフトウェアエンジニアの福井です。 業務では飲食店Webページの機能開発をしつつ、Webページを新システムに段階的移行しています。Rettyに掲載されている飲食店は様々な契約種別があり、その種別ごとに新システムに移行しています。 RettyはCDNにFastlyを使っており、新システムへのルーティングはFastlyで以下のように実装していました。FastlyはCDN(VCLベース)サービスを利用しています。 新システムにルーティングしたい飲食店IDをディクショナリに保存します。リクエストURLの飲食店IDがディクショナリ内に存在していればバックエンドを新システムにします。 ディクショナリの制約…
3ヶ月前
大吉祥寺.pmに行ったら美味しいランチも楽しもう
Retty Tech Blog
Retty VPoEの常松です。来たる2024年7月13日(土)に技術勉強会 吉祥寺.pmの10周年イベント 大吉祥寺.pm が開催されます。私も登壇者の一人として参加予定です。 そんな大吉祥寺.pmですが、運営の方が「せっかくだから吉祥寺の美味しいものを食べていって欲しい」という思いから、おすすめのお店をX(Twitter)で募っていました。 大吉祥寺.pmに向けて、吉祥寺駅周辺のランチ情報を収集していますこのハッシュタグをつけて、お店の名前と写真をポストするだけです!#吉祥寺の美味しいものぜひご協力をお願いします! https://t.co/qnq50BNT3a— 吉祥寺.pm (@kic…
6ヶ月前
Fastly の Edge Rate Limiting で苦労せずレート制限を実装する
Retty Tech Blog
Retty でエンジニアをしている山下です。 早いもので2024年も残り半分となり、年々1年の長さが短く感じるようになってきました。 Retty では nginx 移行を通じて学んだ Fastly のはじめかた で紹介したように CDN として Fastly を利用しています。 今回は Fastly の Edge Rate Limiting でレート制限を簡単に実装したことについて書こうと思います。 レート制限が必要な理由 Fastly の Edge Rate Limiting とは Edge Rate Limiting でレート制限を実装する方法 UI から設定する方法 Custom VCL…
7ヶ月前
低予算でGoのコードカバレッジレポートをPull Requestにコメントする using CircleCI
Retty Tech Blog
ソフトウェアエンジニアの福井です。 コードカバレッジのパーセンテージを上げる(または保つ)ことを強制することは悪いプラクティスとされます。 そのためRettyではいくつかのプロジェクトで、パーセンテージによってmergeできないなど強制せず、カバレッジのパーセンテージのみを見える化していました。 しかしどのコードがカバーされてるか参照できるカバレッジレポートが身近にありませんでした。 どのコードがカバーされてるかを参照することで以下のメリットがあります。 条件が複雑でないコードのリファクタリングの心理的安全性が高まる コード設計面での気づきが得られる 2つ目の"コード設計面での気づきが得られる…
10ヶ月前
プロダクトマネージャーとエンジニアリングマネージャーで協力して使われなくなったコードを消していった話
Retty Tech Blog
Rettyの松田です。普段はプロダクトマネージャーとしてSEOに関わっていることが多いですが、今回はエンジニアリング寄りのブログです。 元々Webエンジニアをしていたのである程度はコードを読むことができ、現実的にプロダクトの改善につながるものがあったため、週1時間ぐらいを確保してコードリーディングするのを半年ぐらい続けていました。 一定の区切りがついたのと、実際にいくつか不要なコードを削除することができたので、その取り組みについてまとめてみます。 きっかけ プロダクトの主要なページについて、現状を把握することが難しくなってきていることが課題として存在していました。 主要なページは数多くの施策が…
10ヶ月前
アプリのバックエンドをGraphQLに移行しました
Retty Tech Blog
この記事はアプリチームのAndroid、Backendを主に担当している松田がお送りします。 概要 現在、アプリのバックエンドはREST APIで構築されていますが、これを新規開発はGraphQLに移行しました。移行した背景と技術的な選択、実装時の考慮点を紹介します。 移行理由 GraphQLへの移行を考えたのはオーバーフェッチの問題です。 オーバーフェッチをしないために、ユーザー情報の型がタイムライン用、ユーザー詳細用、店舗の口コミ詳細用と様々あり、管理が大変になっていました。 このような理由から、スキーマを定義して1つだけ情報を返す実装すれば良いGraphQLに移行する事にしました。 技術…
10ヶ月前
GitHub Copilotで効率的にSQLを書くコツ
Retty Tech Blog
Rettyプロダクトマネージャーの松田です。 プロダクトの現状把握や施策効果の分析など、さまざまなタイミングでBigQueryのSQLを書くことがあります。 Rettyでは昨年末にGitHub Copilotを導入したので、それに合わせてSQLの作成にもGitHub Copilotを使い始めました。 使いたいテーブルが偏っていたりテーブルの設計が似ているものが多く毎回同じようなクエリを書いていましたが、GitHub Copilotの導入で体感としては半分ぐらいに作業時間を短縮できたと思います。 まだまだ不十分だと感じることもありますが、現時点でも十分に活用できているので、GitHub Copi…
1年前
アプリ開発メインの私が業務で擦れるほど使い倒しているGit/GitHub CLIの便利コマンド4つ
Retty Tech Blog
Rettyアプリチームの今泉 @imaizume です。 昨今の開発において、バージョン管理ツール、特にGitとGitHubを多くの方が使っていると思います。 日常的に高頻度で行う作業ですので、かける手間や時間は極力抑えたいもの。 とりわけブラウザ、開発環境、ターミナル間の移動やロード時間を抑え、1つの画面内で開発からPull Request作成までを完了させたいものです。 そこで今回は、普段のモバイル開発で私が使っているGit及びGitHub CLI (gh コマンド)の活用事例について紹介します。 GitHub CLIについて cli.github.com GitHub CLI (gh コ…
1年前
Retty VPoE通信 Vol.2
Retty Tech Blog
Retty VPoE(VP of Engineering : 技術部門のマネジメント責任者)の常松です。 VPoE通信は「開発のトップとして今何を考えていて、どう動こうとしているのか」の定期発信企画で、今回が2回目です。 Retty VPoE通信 Vol.1 - Retty Tech Blog VPoEの管掌は技術組織のマネジメントまでが一般的かと思いますが、2023年4月からは企画・デザインも含めた開発組織全体を見る役割を担っています。 それはVPoEの仕事なんですか? この1年仕事をしていて「それはVPoEの仕事なんですか?」とメンバーから問われる機会が幾度となくありました。 事業戦略の立…
1年前
FRM事業(集客支援事業)の成長を支援!Retty営業企画部の取り組みを紹介
Retty Tech Blog
Rettyの営業企画部マネージャーの平野です。 昨年まではデータ分析チームに所属しており今年1月から営業企画部へ異動しました。 (これまでの取り組みはこちら) 営業企画部は2020年頃から設立されていましたが、私の異動と同時に大幅な体制変更があり、役割も変化しました。その変化からもうすぐ一年が経過し、私たちの役割や取り組みがようやく確立してきました。 来年には、他社の事業開発や営業企画の担当者と積極的に情報交換や意見交換を行いたいと考えています。そのため、今回は自己紹介も兼ねて、営業企画部の全体像や私たちの取り組みについてご紹介します。 ぜひ、最後までご覧いただけると幸いです。 前提:FRM事…
1年前
【Retty新卒エンジニアの成長記録】成長ではなく変化し続ける、そしてみんなで一つのプロダクトを作る
Retty Tech Blog
Retty Advent Calendar 2023 Day17 の記事を担当します。俵積田です。 Rettyに入社して半年以上経ったのでこれまでに自分が体験して感じたこと・考えたことを書いてみました。 これまで技術系のブログは書いたことはあるのですが、自分の抱いた思いを文字に起こしてインターネットに公開するのはこれが初めてなので若干照れ臭く恥ずかしいです。 まず、簡単な自己紹介そして、Rettyに入社した背景から書き起こさせてください。それから"入社して半年以上が経過した自分が共有したい考え方"という項目を通して、自分が身につけた考え方に触れていこうと思います。 自己紹介 23卒のWebエン…
1年前
日本全国で自社のサービスをドッグフーディングしてみて
Retty Tech Blog
この記事はRetty Advent Calendarの10日目の記事です。 私が行っているドッグフーディングの内容 検索 作成した行きたい・オリジナルリストから探す 投稿(のための飲食店観察) 飲食店情報の更新 他サイトとの比較 ドッグフーディングの成果など 2023年の報告件数 見つけた改善点、不具合の例 1. 検索サジェストでエリア入力が考慮されず、常に東京や有名店がサジェストされてしまう 2. 周辺に店舗がない場合の画面 3.投稿対象の店舗を見つけやすくするための修正 4. 実データを使って、新しい行きたいリスト・投稿作成画面を検証 学び 環境を変えて使うと見えなかった事象に気づける 実…
1年前
『体が酒になる』対策でアルコール計算機を作ってみた
Retty Tech Blog
おはようございナース!🍆どうも、エンジニアの木村です。これは Retty Advent Calendar 2023 Day13 の記事になります!🎉 — 注:本記事には酒の酔いに関する記述があります。たぶん、酔いは個人差や健康状態など様々な要素にも左右されるはずです。詳しくは厚生労働省が飲酒に関わる情報をまとめてくれているので参考にしてください。 『体が酒になる』 さて、量を気にせずに酒を飲んでいると体が酒になります。ということで、アルコール量を計算して摂取量の目安を覚えておけば良いんじゃないか?と考えました💡 アルコール計算機を作っちゃおう 電卓を叩くよりはフォームとかで計算できたら便利じゃ…
1年前
大規模サイトのクロール・インデックス - Rettyでの取り組み -
Retty Tech Blog
Rettyの松田です。Rettyアドベントカレンダー、2023年12月11日を担当します。今後とも多くの方にRettyを使っていただくための土台として、現在取り組んでいる日々のクロール・インデックス管理について、ご紹介できればと思います。
1年前
新卒エンジニアの振り返りと俺流みんなと仲良くなり術
Retty Tech Blog
はじめに 自己紹介 何を伝えたいか なぜRettyへ入社したのか エンジニアとしての半年間の振り返り インターン不参加・Android開発未経験からの入社 とにかく自分の状況を発信する とにかく出来る人の真似をする チームで開発すること 俺流みんなと仲良くなり術 Slackでのコミュニケーション 絵文字をつける 即レス・即リアクションをする timesでちょっとウケようとする 出社して皆とご飯を食べる イベント参加 さいごに はじめに はじめまして、Rettyの23卒エンジニアのわかたなおきです。この記事はRetty Advent Calendar 2023の4日目かつ23卒エンジニア第一弾の…
1年前
Goによるバッチ実装テクニック
Retty Tech Blog
ハロー! software engineerのTakato Fukuiです。最近バッチアプリケーションを開発しました。この記事ではその際に使用したバッチ実装のテクニックを説明します。
1年前
ChatGPTに特定業務特化IntelliJプラグインを作らせる
Retty Tech Blog
この記事はRetty Advent Calendarの2日目の記事です。 はじめに Rettyでエンジニアリングマネージャーを務める山田です。 ChatGPTが登場してから一年が過ぎました。その後社会にはAIが広まりつつあり、コーディングの世界にもGitHub CopilotのようなAIを応用した製品が浸透してきています。既に利用されているという方も多いのではないでしょうか? AIを活用してのコーディングはとても快適で、お願いした通りにコードを作成してくれたり、よくわからないコードを説明してくれたり、もはやこれ無しでの仕事というのは考えられなくなってきています。 では、AIがあれば人間は面倒な…
1年前