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
1
990
隙間家具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
「隙間家具OSS」に至る道/Fujiwara Tech Conference 2025
fujiwara3
7
6.9k
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
520
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
9
1.2k
「最高のチューニング」をしないために / hack@delta 24.10
fujiwara3
21
4.1k
AWS Lambdaで実現するスケーラブルで低コストなWebサービス構築/YAPC::Hakodate2024
fujiwara3
10
4.9k
CEL(Common Expression Language)で書いた条件にマッチしたIAM Policyを見つける / iam-policy-finder
fujiwara3
2
1.6k
awslim - Goで実装された高速なAWS CLIの代替品を作った/layerx.go#1
fujiwara3
6
790
AWS CLIの起動が重くてつらいので aws-sdk-client-go を書いた / kamakura.go#6
fujiwara3
7
10k
コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地
fujiwara3
31
7.2k
Other Decks in Technology
See All in Technology
Copilotの力を実感!3ヶ月間の生成AI研修の試行錯誤&成功事例をご紹介。果たして得たものとは・・?
ktc_shiori
0
390
LLM活用の現在とこれから:LayerXにおける事例とともに 2025/1 ver. / layerx-llm-202501
yuya4
3
200
第27回クラウド女子会 ~re:Invent 振り返りLT会~ 私の周辺で反響のあった re:Invent 2024 アップデートつれづれ/reinvent-2024-update-reverberated-around-me
emiki
1
430
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
220
東京Ruby会議12 Ruby と Rust と私 / Tokyo RubyKaigi 12 Ruby, Rust and me
eagletmt
3
1.2k
AWS re:Invent 2024 re:Cap Taipei (for Developer): New Launches that facilitate Developer Workflow and Continuous Innovation
dwchiang
0
180
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
260
[JSAC 2025 LT] Introduction to MITRE ATT&CK utilization tools by multiple LLM agents and RAG
4su_para
1
130
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
2
750
TSのコードをRustで書き直した話
askua
4
640
SREKaigi.pdf
_awache
1
110
My small contributions - Fujiwara Tech Conference 2025
ijin
0
1.5k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
50
11k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Unsuck your backbone
ammeep
669
57k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
3k
Speed Design
sergeychernyshev
25
740
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
360
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Making Projects Easy
brettharned
116
6k
Code Review Best Practice
trishagee
65
17k
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は『自分の庭』 小さいのでいくつも作れる (練習になる) なくても何とかなるけどあると便利 (失敗したら使わなければよい) 成功してもいつか取り外すことも念頭に作る (そのための設計を考える) 使い始めたらメンテはしていく (要望の取捨選択も含めて) コードはできれば書かない方がいい
でも、鍛えておかないといざという時にうまく書けない