Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
懺悔LT
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tetsu Nishimura
March 24, 2025
47
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
懺悔LT
Tetsu Nishimura
March 24, 2025
More Decks by Tetsu Nishimura
See All by Tetsu Nishimura
Railsフロントエンド移行効率化 ためAエージェント利用方法
kitsunecat
0
29
生成AIで仕事をどうにかして怠ける話
kitsunecat
0
60
update_columnsについて無知だった話
kitsunecat
0
58
書きながら考えないRSpec
kitsunecat
0
140
rake taskでメソッド定義したらテストが不安定になった
kitsunecat
0
120
ツクリンクで実践している 画像処理
kitsunecat
0
20
ツクリンクで実践している画像処理(フロー部分)
kitsunecat
0
240
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.5k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
510
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
470
Building Applications with DynamoDB
mza
96
7.2k
Optimising Largest Contentful Paint
csswizardry
37
4k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
690
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
520
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
4 Signs Your Business is Dying
shpigford
187
23k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
© Tsukulink Inc. ライブラリアップデートの 懺悔と教訓
自己紹介 なまへ:にしむらてつ 趣味:スノーボード、クライミング、スキューバダイビング すんでるとこ:長野県 おしごと:Webエンジニア(ツクリンクでは非機能面の改善を担当) 好きな言語・技術:Rust, TypeScript, TCP/IP(Routing, Swiching,
QoS)
今日お話すること ライブラリのアップデートは早めこまめがよいよね でも油断すると後回しになってしまうよね ✖ 何かを持って帰ってもらう ◦ 共感してもらう
どんな人に伝えるか 夏休みの宿題をラスト3日で追い込んでいた人
懺悔
経緯 最近Railsアップデートを実施しました。 Ver. 7.0 => 7.1 - Ver. 7.0のEOLは2025/04/01 -
チケット作成 2024/05/07 ・・・
経緯 Railsアップデートを実施しました。 Ver. 7.0 => 7.1 - Ver. 7.0のEOLは2025/04/01 -
チケット作成 2024/05/07 ・・・ - 着手 2025/02/05 - リリース 2025/03/24
経緯 Railsアップデートを実施しました。 Ver. 7.0 => 7.1 - Ver. 7.0のEOLは2025/04/01 -
チケット作成 2024/05/07 ・・・ - 着手 2025/02/05 - リリース 2025/03/24 gemの破壊的な変更対応、落ちるspecの対応や割り込みの不具合対応などで ギリギリのリリースに...
どうしてそうなった
前提 会社からは十分な投資を受けております! - 非機能面を担当するチーム - プロダクト部としても重要な項目としてアップデートは入っていた - その他、開発体験を向上させる取り組み
いいわけ 優先度の高いチケットがあった - ユーザー影響がでている不具合 - 社内の運用面で期限がある - 獲得ユーザー数につながる
優先度の判断はおおむね間違っていなかったが、 もう少しなにかできたのではないか
期限における体感の誤り 期限の感覚が間違っていた。残りが半年だとすると ✖「まだあと数ヶ月ある」 ◦「もう半年切ってしまっている」
もっと早く着手していれば。。。 1. すこしずつ始められた - エラーの内容を見てどれくらいかかるかの初期見積もりはできた 2. 余裕があるから細かくタスク分解できる - チケットを細かく切ってプランニングも正確に進められる
3. こまめにアップデートできた - 依存する・しないに関わらずライブラリを一つずつアップデートできた
よかったこと
おかしなspecに気づくことができた 網羅テストで普段触らない機能に触ることで、不完全なspecを見つけられる - スコープが広すぎる単体テスト - 偽陽性のテスト
見逃しがちなバグにきづくことができた 開発環境をゼロイチで構築するときにのみ発生するエラー - 過去のマイグレーションが動作しない、など
踏める地雷は結構踏むことが出来た 地雷を踏むこと自体はネガティブだけど、 ナレッジが溜まったと考えればポジティブです。
まとめ
教訓 ライブラリは。。。 - 普段からライブラリは最新版にアップデートしましょう - アップデートが公開されたらとりあえず動かしてみましょう
ありがとうございました