Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
"hey Talk" Engineers #1 STORES 予約 を支える技術
Search
Yukito Ito
April 08, 2021
Programming
0
530
"hey Talk" Engineers #1 STORES 予約 を支える技術
Yukito Ito
April 08, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
Kotlin Multiplatform at Stable and Beyond (Android Makers 2024)
zsmb
0
210
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
780
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
370
Site Reliability Engineering for GMO
pyama86
8
1k
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
200
"config" ってなんだ? / What is "config"?
okashoi
0
240
今、知っておきたい! 生成AIエージェントの世界
elith
3
360
障害対応を起点としたもっといい開発と運用のサイクル作りのためにできること / Hatena Enginner Seminar #29
polamjag
0
160
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
130
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
23
15k
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
200
Featured
See All Featured
Ruby is Unlike a Banana
tanoku
96
10k
Into the Great Unknown - MozCon
thekraken
10
990
Visualization
eitanlees
136
14k
Typedesign – Prime Four
hannesfritz
36
2.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
357
22k
Writing Fast Ruby
sferik
621
60k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
BBQ
matthewcrist
80
8.8k
In The Pink: A Labor of Love
frogandcode
138
21k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Transcript
STORES 予約 を支える技術 ykpythemind 2021/04/08
自己紹介
ykpythemind / 伊藤薫人 スタートアップの開発責任者などを経て,2020年 1月にクービック株式会社に入社 heyに吸収され、今に至る - Ruby - TypeScript
- Go @ykpythemind @ykpythemind
話すこと
- 技術スタック - 予約開発チーム - 実際の開発風景 見せます - チャレンジングな試み
技術スタック
主な2つを紹介
None
サーバサイドはほぼほぼRuby on Rails ☀ 鉄板 ☀ 触ったことある人が一定数存在 ☀ なんだかんだ考えることが限定される感。 ☔
覚えることは多い ☔ viewとの密結合が辛く、徐々にAPI化が進み、フロントエンドはNext.js (react)に 分離の方向へに進んでいる ☔ TypeScript/Reactなどと比べたときの開発体験の悪さ
None
エンドユーザー側の予約フロー / 新しいオーナー管理画面(開発中)で使用 ☀ 覚えることが少ない ☀ 各種最適化 - 開発環境での開発体験の良さ (zero
config) - 何もしなくても何かパフォーマンスが良い ☔ Vercelに載せないと真価発揮しない感 (SSG/ISR) - なおSTORES 予約 ではいくつかの事情でVercelでのホスティングを断念
その他
比較的枯れた技術を愚直に使用
予約開発チーム
イメージ図
heyの中では比較的やんちゃな開発チーム - もともとあまりRubyの経験者いなかった! - TypeScript, Scala, Perl, Go … -
良くも悪くも「Rubyにそこまで思い入れがない」 - 各人が別々の方向を向いている独立部隊..... - だったのが、徐々に開発のテンポを掴みだしてチーム開発が加速している!
技術者として、言語やフレームワークを超えても適用 できる考え方を大事に - シンプルに書く - SOLID原則 - データベース設計 - http
- Web標準 etc...
本質に向き合うチーム、楽しい!
実際の開発風景 見せます
予約枠の空きロジックの計算の改善
実際の予約受付画面 マルバツパネル ≒ 予約枠
🤔 その日の営業時間設定が短い すでに予約がある 予約をブロック する時間設定 メニューの所要時間で 色々変わる - 対応できるスタッフが 働いている時間か
- 受付締め切り設定 - 設備を使える時間か etc… 30分ごとに 受け付ける設定 他
予約枠の空きロジックの計算の改善 - 古くからあるロジックで秘伝のタレ化 - 再利用性がなく、散らばっている - 最古参の @song だけが知っているロジック
esaの同時編集機能で設計議論 ペアプロ / モブプロ Pull Requestで議論 / Patchの送り合い ※ 一例。Pull
Requestだけで終わることも多い。難しいタスクはなるべく1人で悩まないよう進める
三種の神器
None
アイデアを持ち寄る ※ こちらのスライド資料は後ほど公開します。雰囲気 だけお楽しみください。
🥺
考えすぎない とりあえず実装してみないと分からない
esa同時編集機能 + Google Meets 同時編集できれば任意のツールでOK
VS Code + Live share
予約変更時には変更対象の予約を除いて取得 する必要があるから引数で渡すかー? 変数名直すわ executeって命名かcallっ て命名どっちがええの? Courseの情報から計算できるか ら引数はこれで良さそう! 時間内にあれこれ話してコードを書いていく
None
Pull Requestはすごい!
とりあえずPull Requestの形にする - どんどん master/main ブランチに取り込んでいくスタイル - まだ使用しないコードだったら比較的ラクに入れていける - レビューで白熱したら....
- バグっていなければ、一旦マージし提案/修正したい人は別Pull Requestを投げる - 結局コード書いていかないと分からないことが多い
歴史的経緯の話だったり、テスト手法のテクニカルな話だったり。
開発が楽しい!
チャレンジングな試み
Prettier for Rubyの導入
https://github.com/prettier/plugin-ruby
prettier - インデント等の細かい争いをなくすので好き - ruby-pluginを試してみたら完成度高かった - 他の言語の良い仕組みを取り入れたかった 当時(2020/11) は スター数100程度のプロジェクト
コーディングが楽になった rubocopの Layout copをすべてoffにできた
バグ見つけてPR出せた
チャレンジングな試み - 技術やツール、良さそうなものは試しに入れてみる - どんどんやってください - うまく行かないものは反省して捨てる
チャレンジもでき、楽しい!
俺たちなりのfun を持って開発していきます
None