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
530
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
43
龍昌餃子で理解するWebサーバーの並行処理モデル - 東葛.dev #9
kozy4324
1
300
Rubyで作る論理回路シミュレータの設計の話 - Kashiwa.rb #12
kozy4324
1
590
Rubyで作る論理回路シミュレータ - Shinjuku.rb #99
kozy4324
0
120
Steep導入したいRTA - Kashiwa.rb #11
kozy4324
0
210
これまで細々と作成したGemの紹介をします - Kashiwa.rb #9
kozy4324
0
290
東京Ruby会議12のお手伝いしてきた話
kozy4324
0
130
Ruby界隈を中心に2024をふりかえる - Kashiwa.rb #6
kozy4324
0
240
「今までで一番学びになった瞬間」発表 LT - Shinjuku.rb #96
kozy4324
0
430
Other Decks in Technology
See All in Technology
新しいVibe Codingと”自走”について
watany
6
330
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
手塩にかけりゃいいってもんじゃない
ming_ayami
0
590
やさしいA2A入門
minorun365
PRO
12
1.9k
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
180
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
160
フィジカル版Github Onshapeの紹介
shiba_8ro
0
260
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
670
20260619 私の日常業務での生成 AI 活用
masaruogura
1
220
200個のGitHubリポジトリを横断調査したかった
icck
0
130
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
21
7k
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
360
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Rails Girls Zürich Keynote
gr2m
96
14k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
390
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Embracing the Ebb and Flow
colly
88
5.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
840
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
Practical Orchestrator
shlominoach
191
11k
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 コントリビューションチャンスがあるのでやっていこう!
ありがとうございました!