eureka go
Takuma Morikawa / eureka, inc.
Copyright © 2009-2015 eureka, inc. All rights reserved.
Copyright © 2009-2015 eureka, inc. All rights reserved.
なまえ Takuma Morikawa
しょぞく
たんとう (Go, JS, たまにインフラ)
じこしょうかい
エウレカについて
About eureka
株式会社エウレカ
専門分野以外の領域
でも活躍できる
エンジニア
55人
非エンジニア
40人
事業内容自社サービスの企画・開発・運営・オンライン・デーティング・サービス「pairs」
・カップル専用アプリ「Couples」
海外拠点・唯麗家股份有限公司(台湾)・ EUREKA SG Pte. Ltd.(シンガポール)
社員数: 95名インターン・業務委託含む
オンライン・デーティング・サービス「pa i rs」
12年9月 13年3月 13年9月 14年3月 14年9月 15年3月
225万
。゚+\\310万会員突破//+.゚
リリース 2012年 10月
会員数 310万人
プラットフォーム PC/SP/iOS/Android
135万
45万
90万
190万3年で
300万人
カップル専用アプリ「Coup les」
。゚+\\300万DL突破//+.゚
リリース 2014年 5月
DL数 300万DL
プラットフォーム iOS/Android
14年5月 14年10月 15年3月
215万
170万
130万
85万
45万
国内No.1
golang libraries in pairs
今日お話すること
・pairsで使ってるライブラリとかのお話
基本方針
・あまり自前で作らない
ライブラリ
基本方針
・あまり自前で作らない
・なぜなら…
ライブラリ
あるよく晴れた日の朝…
one day, very sunny day morning…
私さん(仮名) ボス(仮名)
ʕººʔ ʕ ʘ ʘʔ
Charac te rs
ʕººʔ<「うーん今日もいい天気」
pa i rs go 開発秘話
ʕººʔ<「うーん今日もいい天気」
ʕººʔ<「こんな日はGoに限る」
pa i rs go 開発秘話
ʕººʔ<「うーん今日もいい天気」
ʕººʔ<「こんな日はGoに限る」
ʕººʔ<「よーし仕事しちゃうぞ」
pa i rs go 開発秘話
「森川さん」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「森川さん」>ʕ ʘ ʘʔ
「ちゃんとコード書いてますか」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「森川さん」>ʕ ʘ ʘʔ
「ちゃんとコード書いてますか」>ʕ ʘ ʘʔ
「6月リリースマストですよ?」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「森川さん」>ʕ ʘ ʘʔ
「ちゃんとコード書いてますか」>ʕ ʘ ʘʔ
「6月リリースマストですよ?」>ʕ ʘ ʘʔ
ʕººʔo0O(おええ…)
pa i rs go 開発秘話
「私が求めているのは」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「私が求めているのは」>ʕ ʘ ʘʔ
「コードを書くマシーンと化したあなたです」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「私が求めているのは」>ʕ ʘ ʘʔ
「コードを書くマシーンと化したあなたです」>ʕ ʘ ʘʔ
「一切の人間性を捨てて下さい」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「私が求めているのは」>ʕ ʘ ʘʔ
「コードを書くマシーンと化したあなたです」>ʕ ʘ ʘʔ
「一切の人間性を捨てて下さい」>ʕ ʘ ʘʔ
「おかしいな、休日は芝生が白いですね」>ʕ ʘ ʘ ʔ
pa i rs go 開発秘話
「私が求めているのは」>ʕ ʘ ʘʔ
「コードを書くマシーンと化したあなたです」>ʕ ʘ ʘʔ
「一切の人間性を捨てて下さい」>ʕ ʘ ʘʔ
「おかしいな、休日は芝生が白いですね」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
ʕººʔo0O(おええ…)
「スケジュール引き直したので」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「スケジュール引き直したので」>ʕ ʘ ʘʔ
「これでお願いしますわ」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「スケジュール引き直したので」>ʕ ʘ ʘʔ
「これでお願いしますわ」>ʕ ʘ ʘʔ
ʕººʔ<「?」
pa i rs go 開発秘話
ʕººʔ<「AWSが12月中になってます」
pa i rs go 開発秘話
ʕººʔ<「AWSが12月中になってます」
「AWS周りは3週間あげます」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
ʕººʔ<「AWSが12月中になってます」
「AWS周りは3週間あげます」>ʕ ʘ ʘʔ
ʕººʔ<「e2eも12月中になってます」
pa i rs go 開発秘話
ʕººʔ<「AWSが12月中になってます」
「AWS周りは3週間あげます」>ʕ ʘ ʘʔ
ʕººʔ<「e2eも12月中になってます」
「e2eは1週間あげます」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
ʕººʔ<「AWSって」
pa i rs go 開発秘話
ʕººʔ<「AWSって」
ʕººʔ<「Dynamo」
ʕººʔ<「SQS」
ʕººʔ<「SNS」
pa i rs go 開発秘話
ʕººʔ<「SES」
ʕººʔ<「S3」
ʕººʔ<「Redshift」
pa i rs go 開発秘話
ʕººʔ<「どこまで含めていってます?」
pa i rs go 開発秘話
ʕººʔ<「どこまで含めていってます?」
「AWSは」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
ʕººʔ<「どこまで含めていってます?」
「AWSは」>ʕ ʘ ʘʔ
「AWSです」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「その中にAWS以外のもの」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「その中にAWS以外のもの」>ʕ ʘ ʘʔ
「ありますか?」>ʕ ʘ ʘʔ
pa i rs go 開発秘話
「その中にAWS以外のもの」>ʕ ʘ ʘʔ
「ありますか?」>ʕ ʘ ʘʔ
ʕººʔo0O(おええ…)
pa i rs go 開発秘話
「その中にAWS以外のもの」>ʕ ʘ ʘʔ
「ありますか?」>ʕ ʘ ʘʔ
ʕººʔo0O(おええ…)
ʕººʔ<「ありません…」
pa i rs go 開発秘話
ʕººʔ<「…」
pa i rs go 開発秘話
ʕººʔ<「…」
ʕººʔo0O(どこか遠くへ行きたい…)
pa i rs go 開発秘話
基本方針
・あまり自前で作らない
ライブラリ
基本方針
・あまり自前で作らない
=> 探す
ライブラリ
基本方針
・あまり自前で作らない
=> 探す
=> 探しても無かったら…?
ライブラリ
基本方針
・あまり自前で作らない
=> 探す
=> 探しても無かったら…?
=> もっと探す
ライブラリ
基本方針
・あまり自前で作らない
=> 探す
=> 探しても無かったら…?
=> もっと探す
=> それでも無かったら…?
ライブラリ
_人人人人人人人人人_
> つくるしかない <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
ライブラリ
_人人人人人人人人人_
> つくるしかない <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
ライブラリ
(嫌々)
・revel
=> pairs全般
・goji
=> 決済周り
f ramework
Microserv ices on pa i rs
Microserv ices on pa i rs
(未来予想図)
Microserv ices on pa i rs
(現況)
( ;◔д◔)< なんでこれを選んだんすか?
f ramework
( ;◔д◔)< なんでこれを選んだんすか?
・ノリです
f ramework
( ;◔д◔)< なんでこれを選んだんすか?
・ノリです
f ramework
( ;◔д◔)< なんでこれを選んだんすか?
選定時に見た箇所
・フルスタック
・i18n
・柔軟性の低いもの
f ramework
・logrus
・sentry
・fluentd
・(deferpanic)
ログ周り
・logrus
・sentry
・fluentd
・(deferpanic)
・spacemonkeygo/monitor
・zipkin
ログ周り
・goreq
vs gorequest
ht tp
・goreq
vs gorequest
・構造体 vs メソッドチェーン
ht tp
・goreq
vs gorequest
・構造体 vs メソッドチェーン
・ドットの位置が…
ht tp
・っていうか何使えばいいですか…
・自前で
・go-config-loader
conf ig
・xorm
=> ORM
database
・xorm
=> ORM
・wizard
database
・xorm
=> ORM
・wizard
=> シャーディング
database
・Apple, Google
payment
・Apple, Google
・go-iap
payment
・Apple, Google
・go-iap
・iOS 6 Style 非対応
payment
・Apple, Google
・go-iap
・iOS 6 Style 非対応
・PayPal
payment
・Apple, Google
・go-iap
・iOS 6 Style 非対応
・PayPal
・go-paypal-classic
payment
・GoogleSpreadSheetで管理
f i x tu reくん
・GoogleSpreadSheetで管理
=> YAML出力
f i x tu reくん
・GoogleSpreadSheetで管理
=> YAML出力
=> go-yml2sqlで変換
f i x tu reくん
・GoogleSpreadSheetで管理
=> YAML出力
=> go-yml2sqlで変換
・テスト時にinsert
・SQLを表示
f i x tu reくん
・go標準 + testify
t es t
・go標準 + testify
・ginkgo
t es t
・go標準 + testify
・ginkgo
=> コードが肥大化するにつれて死亡
t es t
・CircleCI
・gvmで他バージョン対応
CI
・CircleCI
・gvmで他バージョン対応
・gox & ghr
CI
・CircleCI
・gvmで他バージョン対応
・gox & ghr
・codedeploy
CI
・CircleCI
・gvmで他バージョン対応
・gox & ghr
・codedeploy
・データロード周りでエラーになりやすい
CI
・goamzの時代
・誰のを使えばいいのか…
AWS
・goamzの時代
・誰のを使えばいいのか…
・aws-sdk-go
AWS
・goamzの時代
・誰のを使えばいいのか…
・aws-sdk-go
・aws-sdk-go-wrapper
AWS
・goamzの時代
・誰のを使えばいいのか…
・aws-sdk-go
・aws-sdk-go-wrapper
・DynamoDB, S3, SNS, SQS
AWS
・goamzの時代
・誰のを使えばいいのか…
・aws-sdk-go
・aws-sdk-go-wrapper
・DynamoDB, S3, SNS, SQS
・2ヶ月に1回破壊的変更…
AWS
まとめ
・あまり自前で作らない
・それでも作らなければなかなかったら…
まとめ
_人人人人人人人人人人人人人_
> 一緒に作りましょう!! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
まとめ
_人人人人人人人人人人人人人_
> 一緒に作りましょう!! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
(切実)
「世界で愛されるサービス」を一緒に作りませんか?
セグメントNo1 サービス
グローバルビジネス
Business
pairs Goフルスクラッチ
Engineering
マッチングアルゴリズム
Big Data
✕
ハイブリッドエンジニア
大規模行動データ解析
CONFIDENTIAL
Thank you :)
Thank you :)