Go Conference 2024で登壇したので、書いたプロポーザル&メイキングの流れを晒す
Go Conference 2024にて登壇しました。
このスクラップでは、未来のGo Conferenceのプロポーザル応募にチャレンジしたい方に向けて、自分が書いたプロポーザルとメイキングの流れを、推敲前のラフ段階の状態も含めて晒します。参考になるかどうかわからないですが、情報はないよりあった方がいいと思って。ブラッシュアップした過程も載せようと思います。
プロポーザル(完成Ver)
Title
GoのLanguage Server Protocol実装、「gopls」の自動補完の仕組みを学ぶ
Description
Language Server Protocol(以下、LSP)は、型やシンボルの自動補完、定義参照、修正案の提示といったコーディング支援機能をエディタやIDEに提供するプロトコルです。
Go言語では、公式にサポートされているLSPの実装として「gopls」があります。goplsは、成長するGoのエコシステムに対応し、大規模なコードベースでも高速かつリソース効率的に開発者を支援するよう進化してきました。
その結果、goplsは現在、多くのエディタやIDEのデフォルトのLSPバックエンドとなっています。参加者の皆さんも、気づかないうちにgoplsを使用している可能性があります。
しかし、多くの開発者がgoplsを使用しているにもかかわらず、goplsの内部メカニズムを詳しく解説した記事は少ないです。私自身も、「敷居が高い」という印象を持っていました。
このセッションでは、goplsが提供する多くの機能の中から、自動補完に焦点を絞り、その仕組みを紹介します。
goplsの自動補完機能は、スマートに、かつ適切な候補を提案してくれます。その裏側で動く、泥臭く堅実な処理について学ぶことで、goplsをより身近なツールとして捉えることができるでしょう。
まず、LSPの基本的な仕様と、goplsのアーキテクチャの概要を紹介します。これにより、参加者ご自身でgoplsの仕組みを調査する際の基礎知識を提供します。
その後、主題である自動補完の仕組みについて詳しく説明します。あるGoのコードに変更を加えた場合、どのように適切な補完候補が提案されるのか、簡単な具体的な例を用いて説明します。
本セッションを通じて、参加者の皆さんがgoplsの自動補完の仕組みを理解し、その他の機能についても興味を持って学ぶきっかけとなることを期待しています。
プロポーザル Ver 0.0.1
とりあえず何も推敲していないし削ってないv0.0.1
Title
AIコーディング全盛の今だからこそ学びたい、GoのLanguage Server実装 「gopls」の仕組みと進化
Description
Language Serverとは言語の型やシンボルの自動補完、定義参照、エラー分析や修正案の提示といった開発者のコーディングを支援する機能を提供するサービスです。
Go言語では、goplsというGoが公式サポートしているLanguage Serverの実装が存在します。
goplsは成長するGoのエコシステムに合わせ、大規模なコードベースでも高速かつ小リソースで開発者の支援ができるように進化し続けてきました。
AI支援のコーディングは、確率的にコードの続きを生成するものですが、goplsはコードを解析し、型チェックし、分析した結果を提供します。
その結果、goplsは現在多くのエディタのデフォルトのバックエンドとなりました。みなさんも気づかないうちにエディタでgoplsを使用しているかもしれません。
しかし、多くの開発者が普段のコーディングでgoplsを使用しているのにも関わらず、goplsの内部的な仕組みを解説した記事はあまりありません。
このセッションでは、goplsの〇〇(主要コンポーネントのどれか)の仕組みを学ぶことで、普段どのようにして〇〇(例:定義参照や自動補完)が行われているのかを理解することを目指します。
まず簡単なLanguage Serverの仕様とgoplsのアーキテクチャ外観について知ることから始めます。これにより今後ご自身でgoplsの〇〇(例:定義参照や自動補完)以外の仕組みを調べたいときに一人で情報収集ができるようになります。
その後主題でもある〇〇(例:定義参照や自動補完)について発表します。一つのファイルに小さな変更を加えた場合に、どのようにして高速に参照や依存関係を更新しているのかについて、Goの公式からでているgoplsの記事を元に見ていきます。
本セッションを通して視聴者の方はgoplsの仕組みはもちろんのこと、Goのソースコードそのものへの一歩踏み込んだ理解ができるようになります。
指摘点
-
AIコーディング全盛の今
->GoのLanguage Server実装を学びたい
のつながりがよくわからん -
AIコーディング全盛の今
みたいな煽り文句が今まで通っていない感じがある
プロポーザル Ver 0.1.0
ちょっと推敲した
title
AIコーディング全盛の今だからこそ学びたい、GoのLanguage Server Protocol実装 「gopls」の自動補完の仕組み
Description
Language Server Protocol(以下、LSP)とは、言語の型やシンボルの自動補完、定義参照や修正案の提示といったコーディング支援の機能をエディタやIDEへ提供するプロトコルです。
Go言語では、「gopls」というGoが公式サポートしているLSPの実装が存在します。
goplsは成長するGoのエコシステムに合わせ、大規模なコードベースでも高速かつ小リソースで開発者の支援ができるように進化し続けてきました。
その結果、goplsは現在多くのエディタのデフォルトのバックエンドとなりました。みなさんも気づかないうちにエディタでgoplsを使用しているかもしれません。
しかし、多くの開発者が普段goplsを使用しているのにも関わらず、goplsの内部的な仕組みを解説した記事はあまりありません。
このセッションでは、goplsが提供す多くの機能のうちのひとつの自動補完の仕組みを学ぶことで、どのようにして自動補完が行われているのかを理解することを目指します。
まず簡単なLSPの仕様とgoplsのアーキテクチャの外観を知ることから始めます。これにより今後ご自身でgoplsの仕組みを調べたいときに、一人で情報収集ができることを目指します。
その後、主題でもある自動補完機能について発表します。一つのファイルに小さな変更を加えた場合に、どのようにして適切な補完を提案しているのかについて簡単な例を交えて解説します。
本セッションを通して視聴者の方はgoplsの仕組みはもちろんのこと、Goのソースコードそのものへの一歩踏み込んだ理解ができるようになります。
プロポーザル Ver 0.2.0
トンマナや、用語を適切にした
title
GoのLanguage Server Protocol実装、「gopls」の自動補完の仕組みを学ぶ
Description
Language Server Protocol(以下、LSP)は、型やシンボルの自動補完、定義参照、修正案の提示などのコーディング支援機能をエディタやIDEに提供するプロトコルです。
Go言語では、公式にサポートされているLSPの実装として「gopls」が存在します。goplsは、成長するGoのエコシステムに対応し、大規模なコードベースでも高速かつリソース効率的に開発者を支援するように進化してきました。
その結果、goplsは現在、多くのエディタやIDEのデフォルトのLSPバックエンドとなっています。みなさんも、気づかないうちにgoplsを使用しているかもしれません。
しかし、多くの開発者がgoplsを使用しているにもかかわらず、goplsの内部的な仕組みを解説した記事は少ないです。
このセッションでは、goplsが提供する多くの機能の一つである自動補完の仕組みを学び、自動補完がどのように行われているのかを理解することを目指します。
まず、LSPの基本的な仕様とgoplsのアーキテクチャの概要を紹介します。これにより、参加者ご自身でgoplsの仕組みを調査する際の基礎知識を提供します。
その後、主題でもある自動補完機能の仕組みについて紹介します。一つのファイルに変更を加えた場合、どのように適切な補完が提案されるのかを具体的な例を用いて説明します。
本セッションを通じて、参加者の方はgoplsの仕組みはもちろんのこと、Goのソースコードに対して一歩踏み込んだ深い理解ができるようになります。
どうやってプロポーザルを練っていたのかは別に記事を書いているのでそちらを参考にしてもらえると。
プロポーザルを書く上で参考にした情報
ネタ探しの心得的な
過去のGo Conferenceのプロポーザル一覧
ネタをgo.dev/blogから探す
ネタのまとめ方の参考
ネタ探しの心得的な2
なんらかの参考になれば幸いです。