Mercari Engineering Blog

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

たのしいリアルISUCON

Mercari Advent Calendar 2017 の15日目は id:koemu こと斎藤が担当します。

こんにちは。私は、サーバサイドのソフトウェアエンジニアとして、過去はメルカリ 米国版の開発、現在は日本版の開発に携わっています。

サーバサイドのソフトウェアエンジニアにとって、サービスの成長に伴うサーバの負荷との戦いは切っても切れない存在であると、私は考えています。初めから想定できる問題もあれば、サービスが成長して初めて明るみになる問題もあります。成長痛と言ってもいいかもしれません。

今日は、私が当社で働いていて携わった、サーバサイドのプログラムのパフォーマンスに関わる事象について、「Slave DBへの要求を memcached に向けていく」「PHP からサブシステムを呼び出そうとするときの工夫」そして「array_merge()の失敗談」の3点をピックアップして紹介します。

続きを読む

出社したら自動でSlackに通知する

Mercari Advent Calendar 2017 の14日目は SRE チームの @masartz がお送りします。

前提

メルカリのSREチームでは当番体制を敷いており、平日は他のチームメンバーが出社するまで自宅待機しています。
出社したメンバーは当番にその旨を連絡します。こんな感じです。

f:id:masartz:20171211114057p:plain

とはいえ、時には連絡を忘れてしまう事もあります。人間だもの。
そんな時には当番が自宅に張り付きになってしまいます。

f:id:masartz:20171211114109p:plain

人間なので忘れることは仕方ないです。 人間が頑張らずに解決できると良いので、今回のお話です。

狙うところとしては、 出社したら勝手に当番に連絡される です。 それぞれ分解して実現方法を検討します。

続きを読む

モバイル開発に役立つJSデバッグ術

Mercari Advent Calendar 2017 13日目は フロントエンドチームの @sottar が web アプリの開発(特にモバイル開発)で役立つ Chrome DevTools の便利な機能を紹介します。

はじめに

メルカリでは PC からのアクセスよりもモバイルからのアクセスが多いため、web アプリもモバイルからのアクセスを意識したコードを書く必要があります。
しかしモバイル向けのコードを書く際に、毎回実機を接続して確認するのは面倒です。そこで最近のブラウザに付属している開発者ツールにはモバイル向けのコンテンツの開発に役立つ機能が搭載されているため、その機能を使いこなすことでモバイル向けの開発をしつつ、開発のスピードを上げる事が可能です。
そこで本日は Chrome DevTools 内にある、特にモバイルデバイス向けのコンテンツ開発に役立つ機能を紹介します。

続きを読む

ReactでWeb, ReactNative, Sketchに共通で使えるコンポーネントを作る話

Mercari Advent Calendar 2017 の11日目はフロントエンドエンジニアの @sawa-zen がお送りします。

はじめに

2013年に Facebook 社から React がリリースされ多くのフロントエンドエンジニアから注目を集めました。React を使用したWebサービスも次々と現れており、Web 界隈では今やポピュラーなライブラリとなりましたが、React の活躍は Web だけに収まりません。React Native の登場によりネイティブアプリを React の記法で実装できるようになり、さらには Airbnb 社から react-sketchapp が登場し Sketch のデザインデータも React で管理できるようになりました。

しかし、完全に同じ記法で書けるというわけではありません。

Web, ReactNative, Sketchでの記法の違い

以下は Web, ReactNative, Sketch で同じデザインのボタンを実装した時のコードです。

f:id:sawa_zen:20171210184445p:plain

続きを読む