ブックマーク / engineering.mercari.com (14)

  • メルカリWebのマイクロサービス化、その4年 | メルカリエンジニアリング

    Author: @urahiroshi, Engineering manager of Web Platform team 2022年8月4日、メルカリで “web-2” と呼ばれるサーバがシャットダウンされました。これはメルカリWeb版の開発に携わっているチームにとって、一つの区切りとなる出来事でした。 web-2はPHPで記述されたwebサーバで、2015年から https://www.mercari.com/jp/ 配下のコンテンツを配信していましたが、現在では複数のWebマイクロサービスがその機能を担っており、 https://www.mercari.com/jp/ 配下のページは後継となるWebマイクロサービスが配信するページへリダイレクトされています。 メルカリWebのマイクロサービス化に向けた開発が始まり、最終的にweb-2がシャットダウンされるまで、実に4年以上の期間がかか

    メルカリWebのマイクロサービス化、その4年 | メルカリエンジニアリング
  • メルカリShops のフロントエンド | メルカリエンジニアリング

    こんにちは。ソウゾウの Software Engineer の hiroppy です。「連載:「メルカリ Shops」プレオープンまでの開発の裏側」 の最後は、Web フロントエンドの紹介をしたいと思います。メルカリ Shops は既存のメルカリアプリの中に独立した Web アプリケーションとして動いています。記事では、どのようなライブラリを選定し、どのようにアーキテクチャを設計してきたかを解説します。 なぜ Web なのか? アプリの上で動いているのであれば、WebView ではなくても良いと感じる人はいると思います。今回採用した 1 つの理由としては、リリースが柔軟な点が挙げられます。iOS/Android の両方に対して開発サイクルを早めることが可能であり、また機能追加やバグ修正が容易です。どのように WebView で動いているかについては、6 日目のメルカリ Shops のため

    メルカリShops のフロントエンド | メルカリエンジニアリング
  • メルペイフロントエンドのテスト自動化方針 | メルカリエンジニアリング

    Merpay Advent Calendar 2021 の 8 日目はメルペイフロントエンドチーム の @tanakaworld がお送りします。 はじめに メルペイは金融サービスであり、品質の維持・向上に日々取り組んでいます。フロントエンドチームでは、約 2 年前からリグレッションテストの自動化に取り組み始め、直近の 1 年間はインテグレーションテストの自動化にもチャレンジしてきました。記事ではメルペイフロントエンドチームに於けるテスト自動化の方針とその全体像について振り返ってみたいと思います。 フロントエンドプロダクトに関わるテストは次のものが挙げられます。これらをひとつずつ順番に見ていきたいと思います。 ユニットテスト インテグレーションテスト シナリオテスト リグレッションテスト テストの種類とそのカバレッジ対象 1. ユニットテスト ユニットテストは Jest を用いて、主に

    メルペイフロントエンドのテスト自動化方針 | メルカリエンジニアリング
    Appakun
    Appakun 2022/02/20
  • gRPCを用いたマイクロサービスのAPI仕様の記述 - Mercari Engineering Blog

    この記事はMERPAY TECH OPENNESS MONTHの10日目の記事です。 こんにちは、メルペイのバックエンドエンジニアの柴田(@yoshiki_shibata)です。 メルペイのバックエンドは、Google Cloud Platform上でGoogle Kubernetes Engineを使用して、マイクロサービスアーキテクチャを採用した多数のマイクロサービスから構成されています。モノリシックなサービス実装では複数層のライブラリ(あるいはコンポーネント)から構成されるのに対して、マイクロサービスアーキテクチャでは複数層のマイクロサービスから構成されます。 どちらのアーキテクチャにおいても、偶発的プログラミング(Programming by Coincidence)1を避ける2ために、注意を払って作成する必要があるのが、境界部分のAPI(Application Programmi

    gRPCを用いたマイクロサービスのAPI仕様の記述 - Mercari Engineering Blog
    Appakun
    Appakun 2019/12/14
  • Summer InternshipでSpannerのSQLパーサ・型チェッカを作りました! | メルカリエンジニアリング

    こんにちは。Summer Internship for Engineer 2019の「Expert team Go Engineer (Backend)」に参加した@make.now.justです。 (なお、記事の投稿は代理で@tenntennが行っています。) 稿では、Summer Internshipの報告として、作成したGoogle Cloud Spanner(以下、Spanner)のSQLパーサ・型チェッカであるmemefishの解説と、また少しですがSummer Internshipの紹介をします。 TL; DR memefishというSpannerSQLのパーサ・型チェッカを作りました。 SQLの構文解析・意味解析は通常のプログラミング言語と少し異なる部分があり苦労しました。 Expert teamでのインターンではこういった自由な開発が行えます。興味のある学生は来年のSu

    Summer InternshipでSpannerのSQLパーサ・型チェッカを作りました! | メルカリエンジニアリング
    Appakun
    Appakun 2019/10/03
  • ナレッジグラフを使った解釈可能な推薦システム | メルカリエンジニアリング

    以下の図が、構築したナレッジグラフの一部分を図示したものと、その中から上の表に対応する部分を拡大したものです。 ナレッジグラフの属性ノードの情報を活用することで、お客さまが以前に購入したと同じ著者のを推薦するといった、商品情報をもとにした推薦が可能になります。 モデルについて 知識グラフを使った推薦は HeteRec [Yu et al., 2014] をはじめ、数年前から盛んに研究されています。今回はそのなかでも解釈性が高く、大きなデータにもスケールする KGCN [Wang et al., 2019] をもとにモデルを作りました。KGCN はグラフニューラルネットワークをもとにしたモデルです。技術的な詳細については英語版の記事を参照してください。 実験 以下の 3 つのタスクをメルカリののデータを使って実験することで、ナレッジグラフを使った推薦の有効性を確認しました。 商品推薦

    ナレッジグラフを使った解釈可能な推薦システム | メルカリエンジニアリング
    Appakun
    Appakun 2019/08/31
    “商品やお客さまだけでなく、著者やカテゴリといった属性ノードについても埋め込みが得られる” rdfとかで単純な構造にするとこういうメリットがあるのか。
  • AppEngineの旧Log APIを脱却したい話 | メルカリエンジニアリング

    この記事はMERPAY TECH OPENNESS MONTHの3日目の記事です。 メルペイ ソリューションチームで毎日コード書いたりして遊んでいるvvakameです。 TL;DR AppEngine 2nd genでロックインAPIから解放され大脱出できるようになった AppEngine Log APIはオーパーツ(完全には真似できない) プラットフォーム出力のrequest logを使う アプリではapplication logだけ出力する 高度なフィルターの使い方を覚える 05/23 もらった情報をもとに追記をしました。 AppEngineはいいものだよ & 2nd genの台頭 メルペイではプロダクト提供のためにAppEngineはほぼ使われていません。だいたいのものがGKE上で動いていて、だいたいのDBSpannerです。しかし、お客様に提供するものではない、internalな

    AppEngineの旧Log APIを脱却したい話 | メルカリエンジニアリング
    Appakun
    Appakun 2019/05/23
    “AppEngine log package 置き換えの検討” よかった https://godoc.org/cloud.google.com/go/logging#hdr-Grouping_Logs_by_Request
  • 複数の機械学習モデルが動くシステムをモデルごとにマイクロサービス化したお話 | メルカリエンジニアリング

    はじめまして。メルカリのAIチームでSysMLエンジニアをしているChicaです。 SysMLという言葉はあまり馴染みがないかもしれませんが、「Systems and Machine Learning」の略で、AIを実際にサービスに組み込むためのミドルウェア・インフラを整備することを言います。 メルカリではAIを使った多くのサービスが動いていますが、今回はその中でも特にたくさんの機械学習モデルが動いている違反出品検知システムをモデルごとにマイクロサービス化したお話を紹介します。 メルカリで動いている違反出品検知システムとは メルカリには禁止されている出品物に記載しているように、出品していただくことのできない(例えば現金のような)アイテムが存在します。対象のアイテムが出品されてしまったときに、間違って購入されないようCS(カスタマーサポート)チームが監視しています。 AIチームでは、CSチー

    複数の機械学習モデルが動くシステムをモデルごとにマイクロサービス化したお話 | メルカリエンジニアリング
  • メルカリの今年1年間の機械学習の取り組みとこれから

    これはMercari Advent Calendar 2017 の2日目の記事です。 昨日は @stanaka の分散ファイルシステムはブロックチェーンの夢を見るか でした。 今回は@Hmj_kd が、メルカリの機械学習の取り組みや機械学習エンジニアの今年行ってきた活動のいくつかをご紹介したいと思います。 以下、一部にて機械学習をMLと略します。 この1年間で機械学習で取り組んだこと 私が入社したのは2017/01で、社内では二人目の機械学習エンジニアでした。 その当時は speakerdeck.com にあるように、プロダクトにMLに関するものはありませんでした。 現在は、チーム全体でマネージャも含めて約10人ほどの組織になり、活発に実験や開発が行われています。 いくつかを列挙しますと - 商品出品時の価格推定とサジェスト - 一部カテゴリについて商品タグの推定 - 商品出品時のカテゴリ

    メルカリの今年1年間の機械学習の取り組みとこれから
    Appakun
    Appakun 2017/12/03
  • オートマトンを活用したiOS版メルカリ アッテの会員登録画面 | メルカリエンジニアリング

    今日は、iOSエンジニアの@orakaroです。 iOSエンジニアの皆さん、iPhone Xの対応はいかがでしょうか? メルカリアッテはようやくSwift4/RxSwift4/iPhone Xの対応が落ち着いたところです。 このブログでは、10月11日に開催した Souzoh iOS Talkの中で発表した メルカリ アッテを支えるオートマトンについて、より詳細な内容をお伝えします。 当日のスライドは下記になります。 speakerdeck.com 会員登録フロー 会員登録フローを実装する時に、以下のような基的な機能を実装することがあります。 メールアドレスとパスワードで登録できること メールアドレスとパスワードでログインできること Facebookで認証(登録、ログイン)できること パスワード再発行できること さらに、メルカリ アッテのようにセカンドパーティーのアプリなら、メルカリ連携

    オートマトンを活用したiOS版メルカリ アッテの会員登録画面 | メルカリエンジニアリング
    Appakun
    Appakun 2017/11/21
  • メルカリのデータサイエンティストの取り組みを大公開! Drink Meetupを開催しました

    メルカリのデータサイエンティストの取り組みを大公開! Drink Meetupを開催しました AI Author: kuropanther プロダクトの分析全般を担当している@hikaruです。 日々、メルカリのプロダクト改善のPDCAを定量分析の面からサポートしております。 以前、メルカリのデータサイエンティストが日々どのようなツールを使って分析をしているのかをお伝えしました。 tech.mercari.com このエントリーでは、メルカリの分析チームの活動をもっと知ってもらうために、先日メルカリで行われた「Drink Meetup with Mercari (BI/ML)」の様子をお伝えしようと思います。 mercari.connpass.com ちなみに、ご存じない方もいると思うので説明しておくと、Drink Meetup with Mercari はメルカリの各チームがどのように働

    メルカリのデータサイエンティストの取り組みを大公開! Drink Meetupを開催しました
    Appakun
    Appakun 2017/06/08
  • メルカリのデータサイエンスチームと分析エコシステムのはなし | メルカリエンジニアリング

    ※各プロダクト名の頭の”Google”は省略しています ※もちろん実際にはGoogle社のツール以外にも様々な分析用プロダクトが使われています 各ツールの詳細についてはWeb上の良質な情報がたくさんあるので、説明はそちらに譲るとして、ここではそれぞれの簡単な特徴とメルカリでの活用の仕方について主に述べていきます。 ◆ 1.BigQuery “弊社分析の中核的存在” 利用シーン: データの集計 どんなツールか Google BigQuery SQLの超速いやつ どんな大きなデータでも、複雑なクエリでも、高速で結果を返してくれる頼れるアニキ メルカリの分析での使い方 速いは正義 メルカリは多くのユーザを抱えているため、そのログデータも非常に巨大です。 そのため、通常のSQLでは計算に時間がかかりすぎるということが多々発生します。 BigQueryは とにかく「高速」の一言。なのでトライアンドエ

    メルカリのデータサイエンスチームと分析エコシステムのはなし | メルカリエンジニアリング
    Appakun
    Appakun 2017/05/20
  • golang.tokyo#4でGo開発環境Goglandのライブデモを見てきた | メルカリエンジニアリング

    こんにちは、メルカリアッテのAPIチームでGoエンジニアをしている@sonatardです。 この記事は弊社ソウゾウの社員である@tenntennが運営しているgolang.tokyo #4のブログ枠として書いています。 golang.tokyo #4では、ゲストスピーカーとしてJetBrains社のSergey Ignatov氏にご登壇いただきGoglandをライブデモ形式で紹介して頂きました。 メルカリアッテではGoogle App Engine for Go (GAE/Go) を全面的に採用しており、サーバサイドエンジニアの中でもGoglandの利用者が増えています。そこでSergey Ignatov氏に紹介して頂いた機能とソウゾウ エンジニアたちが利用しているお気に入りの機能をまとめてご紹介したいと思います。 ソウゾウがGAE/Goを採用した経緯は@ttsuruokaのatte 開発

    golang.tokyo#4でGo開発環境Goglandのライブデモを見てきた | メルカリエンジニアリング
    Appakun
    Appakun 2017/03/23
  • 未来のCSSを先取るHoudiniとは?それは魔法である!

    こんにちわ、メルカリアッテでFront-end Developerをしている@t32kです。 メルカリではセミナー参加補助制度があり、それを利用して海外カンファレンスに参加してきました。今回は11/30 ~ 12/01、オーストラリア・メルボルンで開催されたCSS/JSConf Australia 2016に行ってきたので、そのレポートを書きたいと思います。 今回はその中でも、CSSConfでのBarak Chamo氏が講演した内容が非常に興味深かったので紹介します。 Hey presto, CSS! 今日はお話する内容は魔法についてです。どのように自分が定義したCSSをブラウザ上で利用可能にするのかという魔法です。 その前に、魔法ではないこれまでのCSSについて振り返ってみましょう。日には『珍道具』と呼ばれるものがあります。とても素晴らしい技術ですが、ちょっとオーバーエンジニアリングに

    未来のCSSを先取るHoudiniとは?それは魔法である!
    Appakun
    Appakun 2017/03/09
  • 1