体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

メルカリ・ソウゾウでは、どのようにGoでソフトウェア開発をしているのか聞いてみた

既存のプログラムをGoで書き直したら……

──まずGoとの出会いやメルカリグループへの転職経緯を含めて、簡単に自己紹介をお願いします。

上田:今まで、サーバーサイドからWebフロントエンド、Unityでの開発など幅広く経験してきました。Goには学生時代から関心があって、勉強会に参加したり、自分で主催したりしていました。就職してからも社内外で勉強会の主催をしています。

2016年9月にソウゾウにジョインしたのですが、その理由のひとつはやはりGoで製品開発が行えるという点です。以前からソウゾウではGoによる新規アプリケーションの開発に力を入れているのは知っていました。

仕事で本格的に使う方が、個人では経験できない課題やチーム開発ならではの課題に直面します。そういった課題に直面することで、これまで以上に実践的な面でGoが学べるのではないかと考え、ソウゾウにジョインすることを決めました。

株式会社ソウゾウ エキスパートエンジニア 上田 拓也氏(@tenntenn

久保:私の場合、以前から自分が他の言語で実装したことのあるアルゴリズムをGoに移植して遊んだりしていました。

それをGitHubで公開していたら上田さんからプルリクエストが来たこともありましたね(笑)。大分前の話ですけど。

メルカリには2014年にジョインしました。ウノウ時代に一緒だった代表の山田(進太郎)に誘われたのがきっかけです。

株式会社メルカリ プリンシパルエンジニア 久保 達彦氏(@cubicdaiya

──Goに触れたのはいつ頃でしょうか?

上田:Goが世に出たのは2009年で、存在は知られていたものの知名度という意味では高くはなかった2010年か2011年頃、私が学生の時に初めて触れました。

大学の研究室であるシミュレーターを開発していたのですが、もう少しパフォーマンスが出ないかと考え、別の言語での書き直しを考えてました。

ちょうどそのときに、並行処理が得意なGoに出会いました。
取り組んでいたシミュレーションが並行処理と相性が良いものだったことと、新しいプログラミング言語を学ぶのが好きだったこともあり、勉強してみることにしました。

好きな言語という意味ではJavaの経験が長かったこともあり、静的型付けの言語が好きです。

同じく静的型付けのGoもコンパイルで多くのバグが発見できるので、一気に書いてあとはコンパルエラーを直していくという感じで開発しています。

使ってない変数があるとコンパイルエラーになったりするので、未然にバグが防げて助かっています。
 
久保:Goはリリースされた直後から触っていました。その後もたまに遊んでいたりしていたのですが、本格的に使い始めたのは2013年頃かな。その頃には本番でも使い始めていました。

シンプルだから使い勝手がいいし、実行速度も十分に速い。学習もしやすい

──あらためてGoの言語としての優れたところは何かをお話しください。

上田:Goの本体の言語仕様はすごくシンプル。言語にどんどん機能を足して成長していくというのではなく、むしろ「効率的な実装が可能か?」、「本当に必要か?」などを吟味しながら、導入する機能を選択してきた言語だと思います。

1 2 3次のページ
CodeIQ MAGAZINEの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。
GetNews girl / GetNews boy

オスカー2018年晴れ着撮影会