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
個人開発発表 LT - Shinjuku.rb #97
Search
Koji NAKAMURA
January 29, 2025
Technology
560
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
個人開発発表 LT - Shinjuku.rb #97
Koji NAKAMURA
January 29, 2025
More Decks by Koji NAKAMURA
See All by Koji NAKAMURA
Lightning近況報告
kozy4324
0
260
龍昌餃子で理解するWebサーバーの並行処理モデル - 東葛.dev #9
kozy4324
1
310
Rubyで作る論理回路シミュレータの設計の話 - Kashiwa.rb #12
kozy4324
1
600
Rubyで作る論理回路シミュレータ - Shinjuku.rb #99
kozy4324
0
120
Steep導入したいRTA - Kashiwa.rb #11
kozy4324
0
220
これまで細々と作成したGemの紹介をします - Kashiwa.rb #9
kozy4324
0
300
東京Ruby会議12のお手伝いしてきた話
kozy4324
0
140
Ruby界隈を中心に2024をふりかえる - Kashiwa.rb #6
kozy4324
0
240
「今までで一番学びになった瞬間」発表 LT - Shinjuku.rb #96
kozy4324
0
440
Other Decks in Technology
See All in Technology
Data + AI Summit 2026 イベントレポート: 「AIがビジネスで意思決定するデータ基盤」へ
nek0128
0
260
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
2
790
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
880
タスクの複雑さでモデルを選ぶ ── Thompson Samplingで動かす“トークン/コスト最適化
satohy0323
0
550
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
230
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
1
5k
SREとQA 二人三脚で進めるSLO運用/sre-qa-slo
sugitak
0
830
AIが実装を自走する時代の認知負債との戦い
lycorptech_jp
PRO
0
150
公式ドキュメントの歩き方etc
coco_se
1
120
SRE Next 2026 何でも屋からの脱却
bto
0
920
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
160
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
Featured
See All Featured
Bash Introduction
62gerente
615
220k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
230
A designer walks into a library…
pauljervisheath
211
24k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
We Are The Robots
honzajavorek
0
280
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
610
Transcript
Add-on を作って学ぶ Ruby LSP 2025.01.30 Shinjuku.rb #97 個人開発発表 LT Koji
NAKAMURA (@kozy4324)
自己紹介 こーじ (Koji NAKAMURA) • 𝕏: @kozy4324 • GitHub:@kozy4324 •
Classi株式会社所属 • Kashiwa.rb主催
前置き
https://regional.rubykaigi.org/tokyo12/
楽しかった! (当日スタッフ)
プロポーザルも 出していた
None
None
None
そらプロポーザル 通らんよ...
というわけで、
Ruby LSP の Add-on を 個人開発して来ました
ruby-lsp-rake
https://github.com/kozy4324/ruby-lsp-rake
Rake の DSL を いい感じにする君
その前に、Ruby LSP とは...
Ruby LSP • Ruby 言語のための Language Server Protocol 実装の一つ •
https://shopify.github.io/ruby-lsp/ • コード補完、構文エラー検出、ドキュメント参照、リファクタリング支援、etc… • 開発体験の向上に寄与してくれる
みなさんに質問 🙋 普段の Ruby プログラミングで利用している Language Server は? • Ruby
LSP • Solargraph • Steep • 上記以外の Language Server • RubyMine のコード支援機能を使っている
ruby-lsp-rake で出来る事 • 依存タスク部分にマウスオーバーでそのタ スク定義元リンクと desc を表示 (hover feature) •
依存タスクで Command + click することで タスク定義元にジャンプ (Go-to-Definition) • タスク定義直上の [▶ Run in Terminal ] ク リックでタスク実行 (Code Lens)
ruby-lsp-rake を作ったモチベーション • Ruby LSP と仲良くなりたかった • ドキュメント読んだら「Rake 用の Add-on
作れそうだな」って思った ◦ https://shopify.github.io/ruby-lsp/add-ons.html • まだ全体的に Ruby LSP の Add-on 事例が少なそうって思った ◦ Add-on を作る側からのコントリビューションチャンスでは!?という思惑
ruby-lsp-rake を作り出して分かったこと • Ruby LSP における Add-on の位置付け ◦ フレームワークやライブラリごとにある
DSL を解決するための仕組み ◦ Rails の DSL を解決してくれるのは ruby-lsp-rails ◦ ruby-lsp-rspec というやつもある • Ruby LSP はパフォーマンスを最優先にしている ◦ Add-on ドキュメントに「Performance over features.」とあり、開発者体験を損なわないこと ◦ Ruby 言語の Language Server 実装は古くからは Solargraph があるが、大規模なコードベースに おいてはパフォーマンス的な課題があるとかないとか。 Ruby LSP は大規模なコードベースにおいて も快適に使えるようにという意図が見える • Add-on の機構も含めて、Ruby LSP は絶賛開発中 ◦ > The Ruby LSP add-on system is currently experimental and subject to changes in the API ◦ Ruby LSP の Issues もいつ見ても常に 100 件以上ある ◦ コントリビューションチャンスがいっぱい!
Add-on 開発のススメ • 「一つのことをうまくやる」でプロダクトとして成立する ◦ Unix哲学ですね • 小さく始められる ◦ ruby-lsp-rake
は 2024/11/29 に Initial commit 、2024/11/30 に v0.1.0 をリリース • 小さくてもちゃんとフルサイクル開発になる ◦ 次に実装する機能を考えて、 ◦ 実装して、 ◦ テストして、 ◦ リリースして、 ◦ 運用して、 ◦ フィードバックもらって、 ◦ また次に実装する機能を考える ◦ プロダクト開発のサイクルを一人で 1周経験することはとてもいいことだと思う
Ruby LSP Add-on の作り方 • ぶっちゃけまだよく分からん • 基本 ruby-lsp-rails の実装をパクる
• テストの書き方など、何もドキュメント化されていないので仕方がない
まとめ
まとめ • ちゃんと個人開発をしてからプロポーザルを書こう • Add-on 開発、フルサイクル開発は楽しい • Ruby LSP コントリビューションチャンスがあるのでやっていこう!
ありがとうございました!