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
OSSライブラリの呪縛と解放戦略
Search
akkiee76
August 24, 2023
Technology
1
730
OSSライブラリの呪縛と解放戦略
「ミノ駆動さんと語るエンジニア怪談〜技術的負債の呪いにどう立ち向かうのかLT〜」で発表した資料になります。
https://forkwell.connpass.com/event/291332/
akkiee76
August 24, 2023
Tweet
Share
More Decks by akkiee76
See All by akkiee76
Meet the Translation API
akkie76
0
220
コードレビューで開発を加速させるAIコードレビュー
akkie76
1
320
Android Target SDK 35 (Android 15) 対応の概要
akkie76
0
2.5k
コードレビューを支援するAI技術の応用
akkie76
5
680
オブジェクト指向コードレビューの新しいアプローチ
akkie76
3
7.6k
Jetpack Compose で Adaptive Layout に対応しよう
akkie76
0
480
Observationではじめる値監視
akkie76
4
4.4k
TextField 表示スタイル変更の 有効活用例 5 選
akkie76
0
500
rememberUpdatedState の使いどころを考える
akkie76
0
360
Other Decks in Technology
See All in Technology
業務ヒアリングと知識の呪い
tamai_63
0
220
Semantic Kernel の Agent 機能試してみた!
okazuki
1
120
OPENLOGI Company Profile for engineer
hr01
1
12k
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
1.2k
Assisted reorganization of data structures
ennael
PRO
0
240
【shownet.conf_】ShowNet 2024 ~ Inter * Network ~
shownet
PRO
0
480
Rubyはなぜ「たのしい」のか? / Why is Ruby a programmers' best friend? #tqrk15
expajp
4
1.8k
【swonet.conf_】NOCメンバーが語るSTMの実態!! ~ShowNetから若者への贈り物~
shownet
PRO
0
290
Tracking down sources of kernel errors with retsnoop
ennael
PRO
0
150
Perlで始めるeBPF: 自作Loaderの作り方 / Getting started with eBPF in Perl_How to create your own Loader
takehaya
1
720
DenoでもViteしたい!インポートパスのエイリアスを指定してラクラクアプリ開発
bengo4com
1
1.8k
「ばん・さく・つき・たー!」にならないためにSHIROBAKOから 学んだこと
ysknsid25
3
630
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
167
48k
Fireside Chat
paigeccino
32
2.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
25
650
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
327
21k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
6
260
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
59k
Building Adaptive Systems
keathley
37
2.1k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Docker and Python
trallard
40
3k
Transcript
©2023 RAKUS Co., Ltd. OSSライブラリの呪縛と解放戦略 2023/08/24 ミノ駆動さんと語るエンジニア怪談 LT @akkiee76
Akihiko Sato 株式会社ラクス / 楽楽精算 / Lead Engineer @akkiee76 自己紹介
OSSライブラリのアップデート戦略 今日のテーマ
OSSライブラリの アップデートしていますか?
アップデート大変ですよね?
アップデートしないと 様々な問題が発生します 👻
OSSライブラリの呪縛 1 • セキュリティリスク • 互換性の懸念 • 保守性の低下 ◦ 公式のサポートが受けられないことも
• 法的リスク ◦ ライセンス違反などの法的問題が発生ことも アップデートしないとどうなるか?
OSSライブラリの呪縛 2 • セキュリティホールが増える 😈 • 顧客情報が流出することも 😈 • 社会的信頼の低下
😈 • 株価低下 😈 更にアップデートしないとどうなるか? プロダクト存続の危機 😅
OSSライブラリの呪縛 3 • 対応コストが取れない 😭 • 技術的な難易度が高い 😭 • 仕様を知る人がいない
😭 どうしてアップデートが難しいか? アップデートのハードルが高くなる 😅
OSSライブラリの呪縛を解放しよう • OSSライブラリを管理する ◦ アップデート日、EOLスケジュール • アップデートのコストを見積もる • アップデートを開発スケジュールに計上する(必要なコスト) 継続的なアップデートを行うためには?
アップデートのハードルを下げよう 😃
OSSライブラリ アップデート対応例 🔨
OSSライブラリをアップデートしよう 1 • OSSライブラリを見える化(一覧化)😃 • 定期的なアップデートを行う 😃 • アップデートはバージョン開発の初期に行う 😃
弊社での主なアップデートへの取り組み
OSSライブラリをアップデートしよう 2 • 管理ツールで一覧化 ◦ yamory、楽楽販売、スプレッドシート • アップデート時のバージョン、最終リリース日を記載 • 難易度・優先度を棚卸し
◦ 難易度・工数は定量的に判定し、工数に反映する OSSライブラリを見える化(棚卸し)する 😃
OSSライブラリをアップデートしよう 3 • 半年〜1年周期でアップデートを実施 • 開発リストに計上する(コストを計上する) ◦ レビュー待ちのタスクなどでコツコツ行う • アップデートする組み合わせは柔軟に組み替える
◦ 影響度、難易度によってスコープを変える 定期的なアップデートを行う 😃
OSSライブラリをアップデートしよう 4 • 場合によっては全機能影響を受けることも ◦ 機能開発中だとデグレを発見しやすくなる • 可能であればアップデート後から開発スタート ◦ merge
を次バージョン初期にするでもOK! アップデートはバージョン開発初期に行う 😃
• OSSライブラリを見える化(一覧化)😃 • 定期的なアップデートを行う 😃 • アップデートはバージョン開発の初期に行う 😃 主なアップデートへの取り組み
• Frontendライブラリの アップデートで苦労した話 • これで失敗しない!JUnit 5 へのマイグレーション方法 • 既存プロジェクトへの Swift
Concurrency 導入戦略 • 大規模AndroidアプリのDIをKoinからHiltへ移行するTIPS これまで行なってきたアップデート戦略
まとめ • OSSライブラリは生物 ◦ 対応しないとハードルが上がる • アップデートは定期的に ◦ アップデート不可能にならないように定期的にアップデート! •
アップデートは戦略を持って行おう ◦ アップデート対応は開発スケジュールに入れる!
Thank you !