Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Go

より良いコードレビューをするために気をつけていること

Merpay Advent Calendar 2019 の22日目は、メルペイスマート払いチーム/Backend Engineer の @oinume がお送りします。今日はコードレビューについて自分が普段から実践していることを書いてみたいと思います。 はじめに 世の中にはコードレビューをする時の…

機械学習モデルを高速にオンラインテストする仕組みを作った話

こんにちは。Mercari Advent Calendar 2019の20日目は、AIチーム所属エンジニアのlain_m21が担当させていただきます。 一度出したサービスはそのまま放置せず、何度も改善させていくものです。特に機械学習を用いたサービスを改善させていく際には、精度向上…

マイクロサービスにクリーンアーキテクチャを採用する上で考えたこと

Merpay Advent Calendar 2019 の19日目は、Backendエンジニアチームの @toshinao がお送りします。 新しくマイクロサービスを立ち上げる機会があり、クリーンアーキテクチャをベースにしました。クリーンアーキテクチャはバックエンド・フロントエンド・アプ…

mercari.go #12を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 12月06日にメルカリ主催のGo勉強会 mercari.go #12 を開催しました。 この記事では、当日の各発表を簡単に紹介します!

バッチコマンドをテストしやすいようにリファクタリングする

Merpay Advent Calendar 2019 の8日目は、メルペイ backend payment platform チーム の @knsh14 がお送りします。 はじめに 私はメルペイでお客様の残高を管理しているマイクロサービス(以下Balance Service)の開発を担当しています。 Balance Serviceは次…

Write Your Own Go Linters with Parser Package

This is the seventh post of Merpay Advent Calendar 2019 from Adler, Backend Engineer in Payment Platform team at Merpay. What's a Linter? Why Do I Need One? Linters are tools that help to improve code readability, consistency, and maintain…

mercari.go #11を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 10月07日にメルカリ主催のGo勉強会 mercari.go #11 を開催しました。 この記事では、当日の各発表を簡単に紹介します!

メルカリの新しいホーム画面を支えるマイクロサービス

この記事は、 Mercari Bold Challenge Monthの13日目の記事です。 こんにちは、メルカリアプリのホーム画面のバックエンド開発を担当している @akkie30 です。 六本木の喧騒を離れた千葉県の温泉宿でこの記事を書いています。この記事を書く前はマザー牧場に…

mercari.go #10を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 8月20日にメルカリ主催のGo勉強会 mercari.go #10 を開催しました。 今回はGopherCon 2019参加メンバーによる報告会を行いました! この記事では、当日の各発表を簡単に紹介します!

mercari.go #9を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 7月17日にメルカリ主催のGo勉強会 mercari.go #9 を開催しました。 この記事では、当日の各発表を簡単に紹介します!

mercari.go #8を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 6月14日にメルカリ主催のGo勉強会 mercari.go #8 を開催しました。 この記事では、当日の各発表を簡単に紹介します!

Google Kubernetes Engine上のGoアプリケーションでのHTTPリクエストを行う方法

この記事はMERPAY TECH OPENNESS MONTHの最後の記事です。 こんにちは、メルペイのバックエンドエンジニアの@gia.nguyenです。 私は第3回のGopher道場を卒業してから2018年12月に入社しました。 他の記事にも記載されましたが、メルペイのバックエンドは、Go…

mercari.go #7を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 3月26日にメルカリ主催のGo勉強会 mercari.go #7 を開催しました。 この記事では、当日の各発表を簡単に紹介しようと思います。

mercari.go #6を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 2月25日にメルカリ主催のGo勉強会 mercari.go #6 を開催しました。 今回は、LT形式での発表を取り入れ、いろいろなテーマについて話しました! この記事では、各発表を簡単に紹介しようと…

mercari.go #5を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 1月8日にメルカリ主催のGo勉強会 mercari.go #5 を開催しました。 今回は、社内向けシステムでのGoの活用事例や、メルカリのマイクロサービス化、GoのgRPCライブラリの紹介をしました。 こ…

Microservices の裏で動く Microservices を Go で開発している話

Mercari Advent Calendar 2018 の 25 日目はメルカリ JP の Microservices Development Team の @codehex がお送りします。 これまで私達は Microservices を開発している旨を様々なテックイベントやカンファレンスで話してきました。中でも Mercari Tech Co…

回復性の高いMicroservicesアーキテクチャを支える技術

メルカリバックエンドエンジニアの@yagi5です。 Mercari Advent Calendar 2018の23日目を担当します。 モノリシックなシステムは、障害が発生するとシステムが全停止してしまうことが一般的です。 しかし、Microservicesアーキテクチャでは様々なテクニック…

mercari.go #4を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 11月9日にメルカリ主催のGo勉強会 mercari.go #4 を開催しました。 今回は、先日開催されたISUCONに関する発表や、メルカリのマイクロサービス化にあたってのPHP to Goの話、オリジナルのL…

mercari.go #3 を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 9月21日にメルカリ主催のGo勉強会 mercari.go #3 を開催しました。 今回は8/27 ~ 8/30にアメリカのデンバーで開催されたGopherCon 2018の報告会を行いました。 GopherConの参加メンバーが…

mercari.go #2 を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 8月10日にメルカリ主催のGo勉強会 mercari.go #2 を開催しました。 「メルカリにおける開発環境/QA環境と、そこで使われるGoのツールについて」「GoでGraphQLサーバを立てるぞ!」「Softwa…

Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang

Go

はじめに メルペイ エキスパートチームのtenntennです。 メルカリグループでは、毎週金曜日にGo Fridayという社内勉強会を開催しています。 毎週やっているとそれなりに知見が溜まってくるので、定期的に"こぼれ話"としてブログを書こうという話になりました…

mercari.go #1 を開催しました

はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 7月3日にメルカリ主催のGo勉強会 mercari.go #1 を開催しました。 最終的に300を超える応募をいただき、多くの方に関心をもっていただけたことを大変嬉しく思っています。 残念ながら全て…

GoでとあるAPIサーバを実装し直した話

Go

サーバサイドエンジニアの @b4b4r07 です。この記事は Go Advent Calendar 2016 の 19 日目です。今回は Go (Revel フレームワーク) で書かれていた API サーバをフルスクラッチで書き直したお話をします。 Revel とは A high productivity, full-stack web …

nginx-build〜nginxのビルドプロセスを自動化〜

インフラチームの@cubicdaiyaです。今回はnginxのビルドプロセスを自動化するツールであるnginx-buildについて紹介します。 メルカリとnginx メルカリでは多数のnginxを活用し、高速なレスポンスやサービスの安定稼働を実現するのに重要な役割を果たしていま…

nginxとGoでつくるメルカリのプッシュ通知システム

原稿の締め切りを越えた先にあるもの、それは校正です。「俺達の戦いはこれからだ!」的な展開に胸が熱く・・・いえ、ちょっと胃のあたりがチクチクする@cubicdaiyaです。 今回はメルカリのプッシュ通知システムとその変遷について紹介します。 メルカリとプ…

cachectld〜無駄なページキャッシュの削除を自動化〜

Go

原稿の執筆が一段落して心に余裕が出てきた@cubicdaiyaです。 今回はサーバを運用しているとありがちなページキャッシュに関する問題とメルカリのアプローチについて解説します。 Fluentdによるログ転送 話は変わりますが、メルカリの各サーバ上ではプログラ…

Slackプロキシサーバ〜slackboard〜を利用したメルカリのSlack活用法

最近原稿の締め切りが追いかけてくる夢をよく見る@cubicdaiyaです。今回はその逃避の一環として定番のチャットツールであるSlackのメルカリでの活用法について紹介します。 メルカリでのSlack活用 多くのエンジニア組織がそうであるようにメルカリではSlack…