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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Koji NAKAMURA
January 29, 2025
Technology
620
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
270
龍昌餃子で理解するWebサーバーの並行処理モデル - 東葛.dev #9
kozy4324
1
320
Rubyで作る論理回路シミュレータの設計の話 - Kashiwa.rb #12
kozy4324
1
610
Rubyで作る論理回路シミュレータ - Shinjuku.rb #99
kozy4324
0
120
Steep導入したいRTA - Kashiwa.rb #11
kozy4324
0
230
これまで細々と作成したGemの紹介をします - Kashiwa.rb #9
kozy4324
0
310
東京Ruby会議12のお手伝いしてきた話
kozy4324
0
140
Ruby界隈を中心に2024をふりかえる - Kashiwa.rb #6
kozy4324
0
250
「今までで一番学びになった瞬間」発表 LT - Shinjuku.rb #96
kozy4324
0
450
Other Decks in Technology
See All in Technology
A Bag-of-Documents Model for Query Specificity
dtunkelang
0
200
現場で使える AWS DevOps Agent 活用ノウハウ - Release Management 機能の検証結果を添えて / AWS DevOps Agent Release Management and Know-How
kinunori
5
880
PLaMoを毎日の開発で使い育てていく
pfn
PRO
0
180
plamo-3-translateの開発
pfn
PRO
0
250
データ組織の転換期 一足飛びしない段階的戦略
leveragestech
PRO
0
140
PLaMo 3.0 Primeの事後学習
pfn
PRO
0
260
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
740
論語・武士道・産業革命から見る かわるもの、かわらないもの
ichimichi
8
2.2k
NYC Summit 2026 におけるAmazon Bedrock AgentCore のアップデート
ren8k
3
310
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
410
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
0
110
テックカンファレンス三大ステークホルダーの文化人類学 ─ 違いを認め合う関係性作り
bash0c7
5
1.6k
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
The Cult of Friendly URLs
andyhume
79
7k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
From π to Pie charts
rasagy
0
240
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
The Curious Case for Waylosing
cassininazir
1
440
Done Done
chrislema
186
16k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
360
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Optimizing for Happiness
mojombo
378
71k
Believing is Seeing
oripsolob
1
180
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 コントリビューションチャンスがあるのでやっていこう!
ありがとうございました!