Above & Beyond

日々のアウトプット記録

PORT Firebase × PostCoffee

04/18(木) は「PORT Firebase × PostCoffee」に参加してきました。

stamp.connpass.com

f:id:kabukawa:20190418233829p:plain:w400

会場は WeWork 神保町 さん。

f:id:kabukawa:20190419000641j:plain

メチャおしゃれなイベントスペース、と思ったらメインはコワーキング&オフィススペースで、イベントにも使える場所なんですね。へー。

www.wework.com

今回のイベントの主催でもありアプリの開発をした Stamp さんと PostCoffee さんが出会ったのも WeWork(他のロケーションのようですが) だそうで、こういうスペースから新しいことが始まるんだなぁということを感じました。


目次


PORT とは

前回の参加報告がありますので、そちらも参照してください。

kabukawa.hatenablog.jp


タイムテーブル

時間 内容
18:30 開場/受付
19:00 会場説明
19:05 Stamp Inc
19:15 PostCoffee
19:20 PostCoffee開発秘話&質疑応答
20:00 懇親会
20:30 退場

内容

PostCoffeeさんのコーヒーやWeWorkさんのビールを片手に、ゆったりした流れの中でイベントは始まりました。

f:id:kabukawa:20190419110130j:plain:w300

ちなみに、今回 PostCoffee さんが会場で提供していたのは以下の4種類のコーヒーでした。全種類飲みましたが、どれも美味しいです。

* 名前 特徴
f:id:kabukawa:20190419105351p:plain ETH-01
Ethiopia Aricha
エチオピア アリチャ
休日の朝やリッチな気分で優雅に過ごしたいときに飲みたいコーヒー。
上品でエレガント。
紅茶のようにさらさらと飲みやすく、ジャスミンのような上品で華やかな香り。
優雅な気分で過ごしたい時にピッタリのコーヒー。
f:id:kabukawa:20190419105545p:plain KEN-03
Kenya Kianjuki
ケニア キアンジュキ
飲むと元気になるコーヒー。
天気の良い日が似合う。
爽やかに目覚めたい朝にのみたい。
月曜の朝に飲むと1週間頑張れそう。
爽やかでグレープフルーツのような明るい風味。
黒糖のような甘さが後に広がる。
飲むと明るく清々しい気持ちになれるコーヒー。
f:id:kabukawa:20190419105628p:plain POS-06
PostCoffee Blend
ポストコーヒーブレンド
とにかく甘い。
飲むと気分が明るくなるコーヒー。
家族や友達と過ごすときに飲みたい。
飲むと幸せな気分にひたれる。
赤いフルーツを思わせる果実感。
華やかな香りと甘さを兼ね備えたオリジナルブレンド
大事な人と過ごす時間に飲むと幸せな気分にひたれるコーヒー。
f:id:kabukawa:20190419105706p:plain BRA-08
Brazil Cerrado
ブラジル セラード
毎朝、トーストと一緒に。
あさご飯にあわせて飲みたい。
このコーヒーをのみたくて毎日目覚める。
アーモンドチョコレートのような香ばしさとカラメルソースのようなほろ苦さがゆっくり口の中に広がる。
毎朝の定番として飲みたいコーヒー。

説明は PostCoffee | 日本トップクラスのスペシャルティーコーヒーのサブスクアプリ から引用。


Stamp Inc. について

f:id:kabukawa:20190419004512j:plain:w300

Stamp Inc. COO 前園(@goodHiZoon) さん


Stamp Inc.
時間と魔法をつくる会

stamp.team

こんな感じの事業をされているとのこと。

  • Engineering
    • モバイルアプリケーションのプロトタイピング
    • 世界で戦うためのエンジニアのマインドセットから具体的な技術的なソリューションを提案
  • Consulting
  • Engineer Hiring
    • コミュニティをベースにしたエンジニアの獲得プラットフォーム構築
  • Programing School
    • 世界を目指せるエンジニアの創出を目指したスクール事業

コミュニティ運営、スクール事業

stamp.connpass.com

mokudev.connpass.com

mokudev-tokyo.connpass.com

Team PostCoffee App.
5人で3週間で開発。詳細は後のセッションで。

f:id:kabukawa:20190419110603j:plain:w500


PostCoffee について

f:id:kabukawa:20190419004526j:plain:h300

PostCoffee.co & HERETIC, inc. 代表 下村(@cyberryo) さん


PostCoffee
スペシャリティコーヒーのサブスクリプションサービス。アプリで簡単にコーヒー豆を注文、最短翌日にはポストへ届く。

postcoffee.co

スペシャルティコーヒーの定義 « SCAJについて | Specialty Coffee Association of Japan

最も手軽に美味しいコーヒー豆を購入できるサービス

  • ワンタップ注文
  • 翌日投函
  • 日本トップクラスのコーヒー豆

料金体系
メンバーシップ

コーヒーをもっと気軽に楽しむ
Basic
通常メンバー
コーヒーをもっとスマートにする
Monthly
マンスリーメンバー
¥0/月額 ¥1,280/月額
注文ごと送料 ¥280
アプリでカンタン注文
最短翌日投函
AIバリスタ
※近日リリース予定
毎月1パッケージ(150g)が無料
送料無料
飲み比べスターターキット無料

先着3000名様限定!
アプリでカンタン注文
最短翌日投函
AIバリスタ
※近日リリース予定

マンスリーメンバー先着3000人に スターターキット が無料でついてくる。

  • PostCoffee別注テトラドリップ
  • 使い捨てペーパーフィルター (4枚)
    ※1杯分(15g)の目安に印がついています。
  • KEN-03 Kenya Kianjuki 15g (1杯分)
  • POS-06 PostCoffee Blend 15g (1杯分)
  • GUA-07 Guatemala La Folie 15g (1杯分)

登録には電話番号認証(SMS)が使われている。これは Firebase の iOS向け機能で実現されているようです。

firebase.google.com


PostCoffee開発秘話&質疑応答

f:id:kabukawa:20190419004540j:plain:h300

Stamp Inc. CEO 村本(@1amageek) さん


話すこと

  • Core UXはシンプルである
  • どうやって開発速度を上げているのか?
  • グロースさせるとは何をどうする?

Core UXはシンプル

CoreUXはアプリに存在しないことが多い。

f:id:kabukawa:20190419121650j:plain:w500

アプリは体験を手助けするだけ。

f:id:kabukawa:20190419121726j:plain:w500

Appじゃない方がいいUXもある。AppはCoreUXを体験してもらうための手段の一つ。それが全てではない。 CoreUXを実現するための要件は小さい。色々機能をつける前にCore UXに最短で作ることが大事。MVPを作ることを重要視している。


どうやって開発速度を上げているのか?

f:id:kabukawa:20190419121802j:plain:w500

開発が柔軟である分開発者間で誤解が生まれやすいので汎用ライブラリで共通化する。

開発が終わってからライブラリ化

f:id:kabukawa:20190419122143j:plain:w500

  • 運用+リファクタをやるのか?
  • ライブラリが既存コードを置き換えることがあるのか?

現実的にはなかなか難しい。

開発と同時にライブラリも開発

f:id:kabukawa:20190419122156j:plain:w500

  • 設計を行い、汎用的なコードはライブラリとして先に設計
  • ライブラリのテストを重点的に行い、後戻りを少なくする。

一般の開発とライブラリの開発を業務時間内で並列作業はできるか?

  • 結論からいうと厳しいがライブラリの設計が開発の効率性と保守性をあげるのでやるべき。

要件が変わるのでライブラリには意味がない?

  • 設計ができない人の言い訳

開発した、若しくは使用しているライブラリ

github.com

github.com

origami.design

github.com

村本(@1amageek) さんのリポジトリには他にもたくさんのライブラリなどが公開されています。 どれも開発をする上で便利そうなので、リンクを貼っておきます。

github.com


グロースさせるとは何をどうする?

  • Core UXへの近道を実現する
    Core UXがユーザーにフィットすることがわかればより便利に
  • 便利なのかどうかはユーザーが判断
    AB testingやAnalyticsを活用してユーザーの行動を確認
    離脱したユーザーのサポートを行う

Core UXに至るまでには壁がある

f:id:kabukawa:20190419123936j:plain:w500


LT

f:id:kabukawa:20190419004557j:plain:w300

Masataka(@Masatak22063922) さん

発表資料はこちら。

qiita.com

GitHubページへのリンクを貼っておきます。

github.com


giiiita(@giiiita) さん

f:id:kabukawa:20190419004613j:plain:w300

発表資料は無しでのLTでした。 メモができてなくて内容を紹介できない(すいません、、、)ので、QiitaとGitHubのページのリンクを貼っておきます。

qiita.com

github.com


懇親会

乾杯から始まりました。参加者同士での自己紹介タイムを経て、今回の内容や参加者同士の情報交換などが行われていました。 楽しく話をしているうちに、あっという間に終了時間が。こういう時間が持てることも、このコミュニティイベントに参加する良いところですよね。

f:id:kabukawa:20190419004304j:plain


まとめ

前回(先週ですが)書ききれなかったことが、今回の内容で伝わってくれたら嬉しいです。 ここで話されている内容は実務で得られた知見やTips等、明日から現場ですぐに応用できそうなものが多いと思います。 また、技術だけでなくビジネス寄りの話もありますし、幅広く役立つことを学ぶことができる場ではないでしょうか。 このコミュニティの事を知る人が増えて、もっとたくさんの人で盛り上がっていっていくことに、この記事が少しでも役に立ってくれたら嬉しいです。

今回もとても有意義な時間を過ごすことができました。 スピーカー、スタッフ、参加者の皆様、ありがとうございました!

04/15~04/21 参加予定の勉強会など

予定表

今週の参加予定を書いておきます。

f:id:kabukawa:20190415012156j:plain:h400

日付 時刻 イベント ハッシュタグ
04/15(月) - なし
04/16(火) - なし
04/17(水) 19:00〜22:00 cnd.connpass.com#cndjp
04/18(木) 18:30〜20:30 stamp.connpass.com #PORTJP
04/19(金) 18:00〜20:45 ochacafe.connpass.com #ochacafe
04/20(土) - なし
04/21(日) 09:30~16:30 情報処理技術者試験

コメント

今週は勉強会への参加を少し減らしています。 先週の反動という訳ではなく、5月からの動きに向けた色々をこなそうと思っているからです。 相変わらず、情報処理技術者試験の勉強は「まったく」できてませんが、土曜日に頑張るんだろうな、たぶん。

PORT Firebase x Stripe

04/10(水) は「PORT Firebase x Stripe」に参加してきました。

stamp.connpass.com

f:id:kabukawa:20190407210220p:plain:w500

会場は Stripe さんの 原宿オフィス。

f:id:kabukawa:20190413190855j:plain

最近良く来ている気がしますが、いつ来てもきれいで素敵なスペースですね!


目次


PORT とは

他の回のイベントページから引用します。

Portはたくさんのイベントや勉強会を開催し、皆さまと一緒に新たな一歩を創造することを目的として立ち上げました。
PortではFirebaseの技術紹介、導入事例、Firebaseを使用したグロースハック、ライブコーディングなどさまざまなイベントを企画しています。

今回はFirebaseとStripeを使ってコーヒーのサブスクリプションアプリPostCoffeeを3週間で作り上げました、というテーマで開催されます。


何故参加したか

Firebase、うまく使いこなせれば簡単にサービスを作ることができて良いなと思うものの、使い所とか注意点について分かってないなぁと思っていたので参加しました。


タイムテーブル

時間 内容
19:00 開場/受付
19:45~19:50 会場説明
19:50~20:00 乾杯
20:00~20:10 オープニングトーク
20:10~20:40 FirebaseでのStripe開発
20:40~21:10 Stripeについて
21:10~21:45 懇親会
22:00 退場

内容

www.pscp.tv


Stripeについて

ストライプジャパン株式会社 代表取締役 Daniel Heffernan (@danielshi) さん

[資料は公開されたら追記します]


DEVELOPPER EXPERIENCE(開発体験)の法則

  • Stripeと開発者の方向性の一致
  • 迅速な導入
  • より多くの言語・環境をサポート
  • パーソナライズ化されたドキュメント
  • 本当に役に立つエラーコードとメッセージ
  • 安定稼働、高い透明度
  • 前方互換性があるAPI、アップデート
  • Think bigger! Developper successを目指す

Stripe

  • eBayのより良いバージョンとしてAuctomaticを開発
  • アイルランドの起業家ジョンとパトリック・コリソンが、2010年にストライプを設立

開発サイクル

  • 昨年は社員が1000人、今年は1700人と急激に大きくなっていて、それでも大丈夫な開発体制を敷いている。
  • Stripeの直近のデプロイ回数、1年で3200回以上。
  • 一日あたり10回くらいやっている

開発で使われているツール達

  • Stripeで使用しているKeyValue型DBのsequins
  • FEATURE FLAGS
  • 新機能等はフラグを使って、新旧のコードを切り替えていっている。

github.com

github.com

github.com

github.com

sorbet.run

sorbet については4/19のRubyKaigiでもセッションがあってStripeの方が話をされるとのこと。

stripe.com

その他の情報

stripe.com


FirebaseでのStripe開発

Stamp Inc CEO Norikazu Muramoto (@1amageek) さん

[資料は公開されたら追記します]

f:id:kabukawa:20190414002430j:plain


スペシャルティコーヒーのサブスクリプションサービス、PostCoffee。

postcoffee.co

このサービスのバックエンドをFirebase、決済機能をStripeで3週間で構築。その際の注意点などについての内容。

データについて

  • ECサービスのDB構造
    • User
    • Store
    • SKU(Stock Keeping Unit)
    • Balance
    • Transaction

Firestoreの仕様

割り当てと制限  |  Firebase

項目 仕様
ドキュメントへの最大書き込み速度 1 秒あたり 1回
コレクションへの最大書き込み速度
(コレクションに含まれているドキュメントの
インデックス付きフィールドには順次値が含まれている)
1 秒あたり 500回
Commit オペレーションに渡すか、
トランザクションに書き込むことができるドキュメントの最大数
500個

コレクションを如何に有効活用するかが鍵。

決済処理

StripeはAPI呼び出しで二重決済を防ぐことができるようなものを提供しているのでAPIに任せることができる。

stripe.com

エラー処理

  • アプリケーションで発生するエラー
  • StripeのAPI呼び出し時のエラー

前者はトランザクションを張ることで救うことができるが、後者は工夫が必要。 具体的には

在庫確認決済出庫処理

という流れにおいて、出庫処理でエラーが発生した場合に決済は既に行われてしまっているので払い戻し処理が必要になり、払い戻し手数料が必要になってしまう。これを回避するために requires_capture (仮計上) を設定しておき、万が一エラーが発生しても手数料が発生せずに払い戻し処理を行えるようにしておく。

尚、以下のイベントでは、更に導入検討から開発・運用、今後の展開などなどクライアント/ディベロッパーサイドそれぞれからの話を聞くことができるようなので、興味のある方は是非参加してみてください!

stamp.connpass.com


懇親会

写真撮れてないのですが、飲み物も沢山あって皆さん飲み物を片手に色々な話をされていたようです。

f:id:kabukawa:20190413191317j:plain

僕もこだわりのコーヒーの話をたくさん聞けて、楽しかったです!


まとめ

Firebaseの話、実際に3週間で構築したという話を聞いて凄いな、と素直に思いました。 こういう話を聞くと、自分でもなにかサービスを作ってみたくなりますね。(といいつつ、なかなか作れない現状をなんとかしたい) あと、Stripeさんの話も、知らない話が多かったのでとても興味深く、面白かったです。(何人かの参加者からも同様の声がありました) 日本のStripeさんも社員数がどんどん増えていると聞きましたが、いい会社だなぁと思ったので納得しました(笑)

みなさま、ありがとうございました!