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
LADRのすすめ&先行技術検証PRJの紹介 / Introducing-LADR-and-Te...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
moomoo-ya
August 25, 2020
Programming
2.9k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LADRのすすめ&先行技術検証PRJの紹介 / Introducing-LADR-and-Technology-verification
2020.08.25
RAKUS Meetup 8月
LADRのすすめ&先行技術検証PRJの紹介
moomoo-ya
August 25, 2020
More Decks by moomoo-ya
See All by moomoo-ya
サービスを陳腐化させない組織だった技術刷新 / Technology Renewal Initiatives
moomooya
0
1.6k
はじめてのオンラインイベント配信 with COVID-19 バグ修正版 / Online-Event-bugfixed
moomooya
0
160
一番安い子だーれだ?~黒字化のための無慈悲なタスク配分~ / Distribute tasks
moomooya
1
3.5k
はじめてのオンラインイベント配信 with COVID-19 バグあり版 / Online-Event-includes-bug
moomooya
0
890
やはり俺のLT登壇はまちがっている。 / my-lightning-talk-is-wrong-as-i-expected
moomooya
4
2.6k
Gatsby.jsで.md/.adocが混在できるテンプレートを作ったときの苦しみ / Pain-to-create-gatsby-template-that-supports-markdown-and-asciidoc
moomooya
0
700
技術書へのアクセスを劇的に向上させた話 / oreilly-safari-and-acm-membership
moomooya
2
7.9k
モノリスにおけるビジネスロジックの設計 ~アグリゲートパターン~ / aggregate-pattern-for-domain-modeling-on-monolithic
moomooya
2
1.7k
オブジェクト指向を学んでから20年間でモヤったこと / Object-Oriented-groomy-in-20-years
moomooya
0
590
Other Decks in Programming
See All in Programming
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
580
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.7k
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
300
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
260
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
200
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
840
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
180
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
400
Creating Composable Callables in Contemporary C++
rollbear
0
200
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
350
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
360
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
180
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
210
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
970
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
880
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
380
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Product Roadmaps are Hard
iamctodd
55
12k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
410
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
340
Transcript
#RAKUSMeetup 新サービス立ち上げ時の技術 選定と、サービス立ち上げに 向けたラクスの取り組み(仮) 2020.8.25 RAKUS Meetup Aug. Isamu Suzuki
#RAKUSMeetup 新サービス立ち上げ時の技術 選定と、サービス立ち上げに 向けたラクスの取り組み(仮) 2020.8.25 RAKUS Meetup Aug. Isamu Suzuki
長い
#RAKUSMeetup LADRのすすめ& 先行技術検証PRJの紹介 2020.8.25 RAKUS Meetup Aug. Isamu Suzuki
#RAKUSMeetup 鈴木 勇 / Isamu Suzuki • 2013年にラクスへ中途入社 • ガンプラ部
部長 • 先行技術検証とかアーキテクチャ選 定とか技術イベント司会とか • 上流から下流まで経験済み PjM含むフルスタック系 • C/Java → JavaScript → Python/TypeScrpt • 自宅にNuro光開通した • 約10年ぶりに自転車買った • Fat Project作者
#RAKUSMeetup 今日話すこと • アーキテクチャ選定時にやると少し幸せになれること • 新規サービス立ち上げに向けてどんな活動をしているか
#RAKUSMeetup 新サービスの アーキテクチャ選定
#RAKUSMeetup 2018年 楽楽労務立ち上げ
#RAKUSMeetup
#RAKUSMeetup このときの社内の様子 • 東京拠点の開発言語は主にJava ※ • FWはSeasar2 ◦ 新しめのサービスでも 2012年以前に開発開始
• モノリシックアーキテクチャ • インフラはオンプレミス ↑こうしている理由は長くいる人が 経験で何となく把握している感じ ※大阪では主にPHPを使っています
#RAKUSMeetup なんにせよ
#RAKUSMeetup 新しい技術を 導入したりしなかったりすることになる 新しい技術を 導入したりしなかったりすることになる
#RAKUSMeetup 「導入しなかった」記録を残したい • 「導入したもの」は後に残るので記録しなくても残りがち • 「導入しなかったもの」は後から見るとわからないことが多い ◦ 検討はしたのか? ◦ 検討の上でなぜ導入しなかったのか?
◦ 今後も導入すべきではないと判断したのか、その時点の事情なのか
#RAKUSMeetup LADR Lightweight Architecture Decision Records
#RAKUSMeetup • ADRは米Sabreの Michael Nygard氏発案 • ThoughtWorks社の Technology Radarで紹介 •
技術要素を4段階評価 ◦ Hold:慎重に ◦ Assess:よく調査して ◦ Trial:挑戦の価値あり ◦ Adopt:採用を推奨 https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records
#RAKUSMeetup • 2017年11月にAdoptに昇格 • 要約すると ◦ 重要なアーキテクチャーの意思決定を、 その文脈や結果とともに記録するための テクニック ◦
WikiやWebサイトではなくコード管理に 含むことを推奨 ◦ ほとんどのプロジェクトで採用しない理由 がない https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records
#RAKUSMeetup Lightweightなのでやることはかんたん • ADRのフォーマットを決める • アーキテクチャ選定の意思決定 • フォーマットに従って記録 • ソース管理(gitなど)に格納
#RAKUSMeetup . . .
#RAKUSMeetup 要領わかんないし、フォーマット決めるのが面倒
#RAKUSMeetup 公開されているテンプレート • joelparkerhenderson / architecture_decision_record • deshpandetanmay / lightweight-architecture-decision-records
• peter-evans / lightweight-architecture-decision-records • jgreeners / LADR ※英語のものしか(たぶん)ないので 頑張って読みましょう https://github.com/peter-evans/lightweight-architecture-decision-records
#RAKUSMeetup . . .
#RAKUSMeetup 何を記録すればよいのか ニュアンスがわかりにくい
#RAKUSMeetup ご用意いたしました
#RAKUSMeetup moomoo-ya / LADR-template • 完全日本語版 • 何を書くべきなのかを記載 • もちろん各自カスタムしていくと
なお良きかと • 使いやすいMITライセンス • https://github.com/moomoo-y a/LADR-template
#RAKUSMeetup
#RAKUSMeetup で、役に立つの?
#RAKUSMeetup 2018年から 1年半ほど経った 2020年1月
#RAKUSMeetup グループ企業のアーキテクチャ選定 • サービスのソフトウェアリプレイス的な計画 • 「マイクロサービスにするべきかどうか」 「コンテナの利用はどうか」 ◦ 聞き覚えのある検討項目
#RAKUSMeetup やってました
#RAKUSMeetup ※注意※ 今回のケース) 1年半経過 → 判断をそのまま流用していけない 「議論のスタート地点を前にずらす」イメージ この手の議論は想像以上に時間がかかるので 少しでもショートカットできるのは嬉しい
#RAKUSMeetup LADR の Pros / Cons Pros • 選定理由が記録に残る ◦
通常1年後には忘れている • 相談されたときに楽 ◦ 「あそこにあるよ」で済む • 新規メンバーの疑問解消 • 軽量だから更新が続く • 経緯を知った上で判断が出来る Cons • 記録するのがちょっと手間 ◦ しかし大した手間ではない • “LADR”が発音しにくい ◦ 今日も何度も噛んでます
#RAKUSMeetup 新サービス立ち上げに 向けた日々の取り組み
#RAKUSMeetup そもそも 新サービスの立ち上げは忙しい
#RAKUSMeetup 理想と現実 流行りのフレームワーク 話題の言語 最新のツール イケてる設計手法 改善された開発プロセス いつから マネタイズ できますか?
#RAKUSMeetup 新サービスの立ち上げは忙しい • リリースするまではコストにしかならない • 最低限の機能(MVP)でいち早いリリースが求められる • 「ノウハウのある技術で」となりがち • そもそも技術面より業務要件まとめる方が困難&優先
#RAKUSMeetup 開発の未来に先手をうつプロジェクト 2017年2月ごろから かいはつのみらいにせんてをうつ 「開発の未来に先手をうつ」かみせんプロジェクト としてプロジェクトが始動(命名は後日つけました)
#RAKUSMeetup 何やるの? • 今後使う見込みの技術を先行検証するプロジェクト • サービス横断的に選抜した4名でスタート ◦ 途中で1名追加参加 • 半期ごとに1テーマ、毎週5時間
• サービスへの導入を想定して検証 • ラクスは複数サービスあるので個別にやるとコスパが悪かった
#RAKUSMeetup 発足の経緯 技術の更新 やらんとあかんよな やりましょう 利益も あがってるしね 現場は漠然とした 不安感は持っていた 経営層からの
オーダー
#RAKUSMeetup 3年経って……順調に拡大中 • 「かみせんプロジェクト」→「技術推進プロジェクト」に改名 • プロジェクトを推進する担当部署が設立 • 参加メンバーも10名を超えました • テーマも複数テーマを並行して検証を進めています
#RAKUSMeetup 最近の成果は テックブログで公 開中 https://tech-blog.rakus.co.jp/archive/category/かみせん 『マイクロサービスアーキテクチャにおける サービス分割の難しさ』 『失敗しない機械学習プロジェクトの進め 方入門』
#RAKUSMeetup 宣伝
#RAKUSMeetup 明日はフロントエンドLT会 司会します Gatsby.jsテーマに ついて話します
#RAKUSMeetup Thank ☺ you • アーキテクチャ選定時は記録を残そう ◦ LADRはいいぞ ◦ 割とすぐに活用される
• 新サービス立ち上げに向けて備えをしよう ◦ 見えてからでは間に合わない(ことが多い)