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開発で『自分の庭』をつくる / kayac-andpad-event
Search
FUJIWARA Shunichiro
December 04, 2023
Technology
0
690
隙間家具OSS開発で『自分の庭』をつくる / kayac-andpad-event
https://connpass.com/event/301666/
FUJIWARA Shunichiro
December 04, 2023
Tweet
Share
More Decks by FUJIWARA Shunichiro
See All by FUJIWARA Shunichiro
コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地
fujiwara3
28
6k
fujiwara-ware OSSをひたすら紹介する/ya8-2024
fujiwara3
7
460
Amazon ECSで好きなだけ検証環境を起動できるOSSの設計・実装・運用 / YAPC::Hiroshima 2024
fujiwara3
22
6.9k
リアル事例から読み解くWebパフォーマンスチューニングの勘所/Offers web performance tuning
fujiwara3
4
1.5k
ISUCON作問入門/ ISUCON Summer Fes 2023
fujiwara3
2
1.6k
隙間家具職人が考えること/ecspresso meetup
fujiwara3
4
4.2k
MackerelとGrafana OnCallを連携してみた
fujiwara3
0
1.6k
Amazon ECS デプロイツール ecspresso 開発5年の歩み
fujiwara3
15
4.1k
k6による負荷試験 入門から実践まで
fujiwara3
9
5.7k
Other Decks in Technology
See All in Technology
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
360
Building Dashboards as a Hobby
egmc
0
270
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
4
440
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
390
開発パフォーマンスを最大化するための開発体制
ham0215
2
460
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
440
Kernel MemoryでAzure OpenAI Serviceとお手軽データソース連携
mitsuzono
1
260
.NET Profiler in 2024.
kkamegawa
1
100
Cypress or Playwright?
rainerhahnekamp
0
130
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
270
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
0
300
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
370
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
357
22k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
2
1.3k
Designing Experiences People Love
moore
136
23k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
What's new in Ruby 2.0
geeforr
337
31k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Automating Front-end Workflow
addyosmani
1356
200k
Raft: Consensus for Rubyists
vanstee
132
6.3k
Building an army of robots
kneath
300
41k
Transcript
隙間家具OSS開発で『自分の庭』をつくる 2023.12.04 カヤック・アンドパッド 合同 プロポーザル供養会 @fujiwara 藤原俊一郎
@fujiwara (X(Twitter), GitHub, Bluesky) 面白法人カヤック SREチーム ISUCON 優勝 4回 ISUCON
運営(出題) 4回 最近の趣味: OSS、ランニング (2023/11/05 フルマラソン 3:28:33)
隙間家具OSS 初出 吉祥寺.pm 16 (2018.11) AWS Dev Day 2019でも発表 ("隙間家具
speakerdeck"で検索)
隙間家具OSSとは マネージドサービス、コンポーネントの隙間を埋めて便利にするもの マネージドサービスが時間とともに成長して不要になったら取り外す(ことも念頭に)
Glueではなく隙間家具(単体のソフトウェア)にする理由 Glueなコードはプロジェクト固有の事情に密結合しがち あるプロジェクトのリポジトリの中に置かれる コードの責任分界点が曖昧 他のプロジェクトにコピペ(fork)されがち → 固有の事情(コピペ先の事情)によって改変されてだんだん別物に あるプロジェクトで行われたバグ修正が行き渡らない
単体ソフトウェア/ライブラリとしてOSSにする 各プロジェクトに依存するコードは入らない(入れられない) 一般的なユースケースに対応できるようにインタフェースが整理される プロジェクト固有の事情と一般的な事情を分離して設計と実装をするようになる bugfixはバージョンアップで適用できる ノウハウも統一できる 複数プロジェクトの運用が楽になる
「自分の庭」をつくる
作って使ってメンテしていくこと 「コードはできるだけ書かない方がよい」 それはそう 「できるだけ既存のツールの組み合わせでなんとかしたい」 それでよい運用ができるならもちろんOK 「このツールだけで全部完結させたい」 (趣味なら好きにすればいいけど仕事では)ひとつのツールに拘りすぎないほうがよい 適切な道具を適切に使う、必要なら道具も自分で作るのがプロフェッショナル
https://speakerdeck.com/twada/quality-and-speed-aws-dev-day-2023-tokyo-edition
自分で設計したシステムをメンテする経験 システムをシンプルに作ってシンプルに保つ力は経験で得るしかない ひとつのプロダクトを… 1. 設計して 2. 実装して 3. テストして 4.
リリースして 5. 導入して / 既存プロダクトと組み合わせて 6. issue対応やバグfixをして 7. (寿命を終えるところまで) 面倒を見る 大きなシステム、ビジネスのメインプロジェクトでこの経験を積むのは難しい
具体例 ecspresso v1 → v2 2020.10 v1 → 2022.12 v2
新機能を足したりPRを受け入れてコー ドを増やしていくと、どうしても設計/ 実装に歪みが溜まる 本来の責務ではないコードを github.com/fujiwara/ecsta に分離・リファクタ
隙間家具OSSは『自分の庭』 小さいのでいくつも作れる (練習になる) なくても何とかなるけどあると便利 (失敗したら使わなければよい) 成功してもいつか取り外すことも念頭に作る (そのための設計を考える) 使い始めたらメンテはしていく (要望の取捨選択も含めて) コードはできれば書かない方がいい
でも、鍛えておかないといざという時にうまく書けない