タグ

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

  • SOLID原則に従って行うリファクタリング実践 | メルカリエンジニアリング

    この記事は、Merpay Advent Calendar 2022 の21日目の記事です。 こんにちは。メルペイBackendエンジニアのfivestar(@fivestr)です。 記事では「SOLID原則」と呼ばれる設計原則に沿って実際に行ったリファクタリングについて、メルペイの「あと払い」サービスの開発現場事情を踏まえながらご紹介していきます。 あと払いの歴史とコード負債 私が所属するCredit Designチームではメルペイの「あと払い」や「メルペイスマートマネー」といった与信サービスの開発を行っています。中でも「あと払い」はメルカリが2017年にリリースした「メルカリ月イチ払い」を前身とする歴史の長いプロダクトであり、単純な機能追加だけでなく、設計上大掛かりな変更を伴う修正を繰り返しながら今日まで成長してきました。 例えば、あと払いをメルカードの決済・清算のバックエンドとして統

    SOLID原則に従って行うリファクタリング実践 | メルカリエンジニアリング
    ohtaman
    ohtaman 2022/12/22
  • Search API v2 を作った話 | メルカリエンジニアリング

    はじめに こんにちは、メルカリJP の Search Backend チームの otter です。 今回は、BFF的役割を担っている Search API のインターフェースを version 2 として刷新したときの課題や改善した点について紹介したいと思います。 API が持っていた課題 ご存知の方も多いと思いますが、メルカリではサービス全体としてマイクロサービスアーキテクチャによる開発を採用しています。 Search API もモノリシックな API からマイクロサービスとして切り出されたもので、iOS やAndroid などのクライアントとの後方互換性を担保するため、API のインターフェースや仕様はそのまま移行されました。 そのため、サービス面では柔軟に新たな施策に対応するのが難しかったり、システム面では各マイクロサービスで共通化されるべき、エラーハンドリングやページネーションがメ

    Search API v2 を作った話 | メルカリエンジニアリング
    ohtaman
    ohtaman 2021/10/06
  • メルペイのシステム運用とPlaybookの共通管理への挑戦 | メルカリエンジニアリング

    こんにちは、メルペイでSREとして従事している @myoshida です。この記事は Merpay Tech Openness Month 2021 の8日目の記事です。 SREチームはお客さまへよりよいサービス利用体験を提供するため、日々様々な改善活動に取り組んでいます。その活動の一環としてPlaybookの概念を導入し、運用者の運用負担を減らす取り組みを始めました。今回はそのことについて説明してみたいと思います。 概要 メルペイではアプリケーションエンジニアとSREの双方がオンコール制度のもと運用に携わっています。 運用の悩みは様々ですが、そのうちの1つに手順書の取り扱いがあります。 どこに置くべきか、更新はされているのか、何を書けばいいのか、どの場面でどの手順書を利用すればよいのかというような悩みはどこの現場でも少なからず存在すると思います。 そこで、Playbookと呼ばれる体系的

    メルペイのシステム運用とPlaybookの共通管理への挑戦 | メルカリエンジニアリング
    ohtaman
    ohtaman 2021/09/10
  • 新しいメルカリ Web の話 | メルカリエンジニアリング

    @1000ch です、今回は新しいメルカリ Web について書きます。この大きなプロジェクトのリリースは、多くの人の多大なる貢献によって成されたものです。そのプロジェクトの立ち上がりから今日まで、リードする役割でプロジェクトを見てきた一部始終を記録するべく書きます。 メルカリにおけるレガシーなソフトウェア ソフトウェアは生モノとよく言われますが、古くなったソフトウェアとどう付き合っていくかは、どの開発組織も抱えている、あるいはいつかはぶつかる課題なのではないかと思います。多くの方々に利用して頂くためには大規模なソフトウェア群を開発し運用する必要があります。しかし、はじめから全てを見越して完璧なアーキテクチャを構築するのは不可能であり、それをビジネスの成長に耐えうるものにソフトウェアを成長させていくのがエンジニアリングの責務です。 2013 年にスタートしたメルカリに於いても例外はなく、急速

    新しいメルカリ Web の話 | メルカリエンジニアリング
    ohtaman
    ohtaman 2021/08/11
  • Engineering Ladder | メルカリエンジニアリング

    エンジニアの成長段階ごとに期待される行動を明文化

    Engineering Ladder | メルカリエンジニアリング
    ohtaman
    ohtaman 2021/02/10
  • マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング

    この記事はMERPAY TECH OPENNESS MONTHの15日目の記事です。 こんにちは。メルペイのPayment PlatformチームでPaymentServiceの開発を担当するエンジニアの @foghost です。 メルペイではマイクロサービスのアーキテクチャで決済システムを開発しています。その中でPaymentServiceは決済トランザクション管理の基盤サービスとして、下位層のサービス(外部サービスも含め)が提供する各種決済手段を利用して、上位層のサービス(メルカリ、NFC,コード払いなど)に必要な決済フローを共通APIとして提供しています。PaymentServiceが提供する決済処理に複数のサービスを跨いでお金の動きを正確に管理する必要があるので、作り始めた頃から決済トランザクション管理を最も重要な課題として、サービスを跨いでもデータの整合性が取れる仕組みを作ってき

    マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング
    ohtaman
    ohtaman 2020/10/25
  • 「プログラミング言語Go完全入門」の「完全」公開のお知らせ | メルカリエンジニアリング

    メルペイ エキスパートチームの@tenntennです。稿は Merpay Tech Openness Month の11日目の記事です。 「プログラミング言語Go完全入門」の期間限定公開のお知らせでも書いたように、メルペイでは、社外の方向けにGopher道場という体系的にGoを学べる場を無償で提供してきました。Goの普及を目的にこれまでに8回開催し100人以上の方に参加していただきました。 また、Gopher道場の動画や資料はGopher道場 自習室として誰でも利用できるようになっており、現時点で300名以上の方が利用されています。 Gopher道場の資料のベースになっている「プログラミング言語Go完全入門」は、2020年7月31日までの限定公開になっていましたが、日より公開期限を撤廃し、完全公開することになりました。 また、日8月31日から始まる「Online Summer Int

    「プログラミング言語Go完全入門」の「完全」公開のお知らせ | メルカリエンジニアリング
    ohtaman
    ohtaman 2020/09/01
  • 機械学習システムの信頼性を数値化する ML Test Scoreのハンズオンワークショップを開催しました | メルカリエンジニアリング

    こんにちは、メルカリでCRE (Customer Reliability Engineering) に所属している @hurutoriya です。 今回メルカリ社内での勉強会の一環として、Google が提案した機械学習システムの信頼性を数値化する ML Test Score のハンズオンワークショップを開催しました。 記事では、ML Test Score の説明、ワークショップの開催方法や簡単な考察などをお話します。 今回はWFHの影響も受け Google Meet を使ったフルリモートでの開催となりました。 ワークショップの内容として、メルカリ内で実際に運用されている機械学習システムを対象に、実際にそのシステムを開発する機械学習エンジニアが ML Test Score を計算しました。 ML Test Scoreの説明 ML Test Score の目的は、定量化しづらい機械学習シス

    機械学習システムの信頼性を数値化する ML Test Scoreのハンズオンワークショップを開催しました | メルカリエンジニアリング
    ohtaman
    ohtaman 2020/06/17
  • Webの自動テストのこの1年を振り返って | メルカリエンジニアリング

    Mercari Advent Calendar 2019も、この記事を入れてあと3個となりました。最後まで読んでくださいね。 23日目はAutomation&QAグループで、Webのテスト自動化を行っている@AHA_oretamaがお送りします。 今回はWebの自動テストについて、この1年やってきたことを振り返ってみようかと思います。 Webのリアーキテクチャ 現在、Webではリアーキテクチャを進めています。 進め方としては既存のモノリシックなWebアプリケーションを残したまま、パス(例えばトップ /jp/ や検索ページ /jp/search/ )ごとに新しいWebアプリケーションにマイグレーションする方法をとっています。 影響範囲を小さくしつつその範囲の中でチャレンジが行えることがこの方法の利点です。 詳しくは去年のMercari Tech Confの資料をご覧ください。 speaker

    Webの自動テストのこの1年を振り返って | メルカリエンジニアリング
    ohtaman
    ohtaman 2019/12/23
  • TensorFlow のモデルを Graph Transform Tool で最適化してサービングする | メルカリエンジニアリング

    こんにちは。メルカリアドベントカレンダー 9日目は JP AI Engieering Team 所属の @KosukeArase がお送りします。 機械学習技術をサービスに適用するにあたって、機械学習モデルによる推論を API として提供(サービング)したいという場面は多いと思います。 TensorFlow community は TensorFlow Serving によるモデルのサービングを可能にしており、メルカリでも多くの機械学習プロダクトでこの TensorFlow Serving を利用しています。 TensorFlow Serving はドキュメントがしっかりしているため稿では詳細に説明しませんが、実運用に際してはなるべくモデルサイズを小さくしたい、無駄な計算を減らし推論速度をあげたい、といったモチベーションがあるかと思います。 このような計算グラフの最適化を実現する関数、ツ

    TensorFlow のモデルを Graph Transform Tool で最適化してサービングする | メルカリエンジニアリング
    ohtaman
    ohtaman 2019/12/12
  • Windows10 / Microsoft Edge での自動テスト(Selenium WebDriver)を Azure DevTest Labs 上で実行して高速化したお話 | メルカリエンジニアリング

    Windows10 / Microsoft Edge での自動テスト(Selenium WebDriver)を Azure DevTest Labs 上で実行して高速化したお話 この記事は、Mercari Bold Challenge Month の 2日目の記事です。 メルカリで QA Automation Engineer をしている 根 征 です。 私は現在、メルカリWeb版のUIテスト自動化に取り組んでいます。 今回は、Microsoft Edge ブラウザでの UIテスト自動化 (Selenium WebDriver) とその環境構築についてお話します。 マルチブラウザ時代のUIテスト戦略 Windows10 / Microsoft Edge で Selenium WebDriver のテストを動かす Windows 10 / Microsoft Edge のテスト環境への課題

    Windows10 / Microsoft Edge での自動テスト(Selenium WebDriver)を Azure DevTest Labs 上で実行して高速化したお話 | メルカリエンジニアリング
    ohtaman
    ohtaman 2019/08/28
  • 複数の機械学習モデルが動くシステムをモデルごとにマイクロサービス化したお話 | メルカリエンジニアリング

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

    複数の機械学習モデルが動くシステムをモデルごとにマイクロサービス化したお話 | メルカリエンジニアリング
    ohtaman
    ohtaman 2019/02/28
  • メルカリの分析チームとは?その全ての疑問にひとつひとつ答えます | メルカリエンジニアリング

    この記事はMercari Advent Calendar 6日目の記事です。 メルカリのBIチームのアナリスト/マネジャーの @hikaru が、メルカリの分析チームの事情についてお送りします。 ※ BIチーム…メルカリ内の分析を一手に担うチーム。Business Intelligenceチーム。 この記事について イベントやカジュアル面談などでメルカリの分析チームの内幕についてよく聞かれる質問があります。 いえ、それどころか場合によっては社内であまり一緒に仕事する機会がない方々からも、チームに関して質問されることがあります。 ※ カジュアル面談…メルカリでは、社内のポジションに興味ある方にオフィスに来ていただいて1on1でざっくばらんに話す会を頻繁に行っています。 正直、分析チームというのは外部から何をやっているか見えづらい面もあるため、理解できます。 よく頂く質問としては、 組織的なこ

    メルカリの分析チームとは?その全ての疑問にひとつひとつ答えます | メルカリエンジニアリング
    ohtaman
    ohtaman 2018/09/13
  • 1