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
サーバーサイド開発にありがたい GitHub Copilot / ChatGPT
Search
Masatoshi Itoh
May 20, 2023
Programming
1
1k
サーバーサイド開発にありがたい GitHub Copilot / ChatGPT
サーバーサイド開発にありがたいGitHub Copilot / ChatGPT
というタイトルで、2023/5/20にJavaDoでしょう#22札幌で話した際の資料です。
Masatoshi Itoh
May 20, 2023
Tweet
Share
More Decks by Masatoshi Itoh
See All by Masatoshi Itoh
Hello - 本を書く- World !!
masatoshiitoh
0
83
TPI NEXTを読みました
masatoshiitoh
0
210
非同期ツールキット「Vert.x」のご紹介
masatoshiitoh
0
370
コードを書いたら負けなのか?
masatoshiitoh
0
460
1999年 最新バックアップ事情
masatoshiitoh
0
210
Google I/O 報告 (Google Assistant)
masatoshiitoh
0
490
GDC報告会資料 海外に見る「生産性改善」動向
masatoshiitoh
0
1.3k
イケメンシリーズでのORMとスロークエリ対策について
masatoshiitoh
0
2.7k
Erlangご紹介 websocket編
masatoshiitoh
0
2.9k
Other Decks in Programming
See All in Programming
ソフトウェア設計の実践的な考え方
masuda220
PRO
4
620
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
240
Cursorハンズオン実践!
eltociear
2
1.2k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
490
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
170
Six and a half ridiculous things to do with Quarkus
hollycummins
0
190
bootcamp2025_バックエンド研修_WebAPIサーバ作成.pdf
geniee_inc
0
120
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
190
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
590
Leading Effective Engineering Teams in the AI Era
addyosmani
7
510
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
3.4k
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
440
Featured
See All Featured
Scaling GitHub
holman
463
140k
How to Think Like a Performance Engineer
csswizardry
27
2.1k
Done Done
chrislema
185
16k
Six Lessons from altMBA
skipperchong
29
4k
A Tale of Four Properties
chriscoyier
161
23k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
RailsConf 2023
tenderlove
30
1.3k
The Cost Of JavaScript in 2023
addyosmani
55
9k
The Pragmatic Product Professional
lauravandoore
36
7k
How GitHub (no longer) Works
holman
315
140k
Transcript
サーバーサイド開発にありがたい GitHub Copilot / ChatGPT 2023/5/20 JavaDoでしょう#22札幌 いとうまさとし Twitter:@masatoshiitoh
自己紹介 • いとうまさとし(Twitter: @masatoshiitoh) • 株式会社セガ札幌スタジオ • 今回の発表はセガサミーグループの技術スタックや開発・運営 中のタイトルとは全く関係ありません(為念 •
過去作品 • Speed.rbbtoday.com(IRI-CT、現イード在籍当時に開発) • 最近のGist • Camel から Camel Vert.x component 経由でVert.xクラスタのイベントバスを読み書きする • とにかくApache Camelを動かしてみるための最初の手順
今日の発表 • 自己紹介 • ChatGPTのプログラミングへの応用 • プログラマの体験が変わる点 • プログラマの体験が変わらない点 •
まとめ
もちろん • この目次はChatGPTさんに考えてもらいました! → 今日の n番煎じ
もちろん • この目次はChatGPTさんに考えてもらいました! → 今日の n番煎じ さて、まじめにやりましょう
今日の発表 1. 発表の目的 2. LLM活用サービスのプログラミングへのインパクトについて 1. GitHub CoPilot 2. ChatGPT
3. まとめ ※プロンプトで遊んでないので、そちらの情報はありません
発表の目的 • 未体験の方への「驚き」の共有 • 期待していいポイントと、そうじゃないポイントのご紹介 ※期待しすぎると、反動も大きいので... サーバープログラマ視点です
1)GitHub CoPilot • コード作成を加速してくれる • 0 → 1 ではなく、 50
→ 100、の道具という感じ • 「50→100」は、手慣れてる人を加速させる、というキモチ • 良くも悪くも「続きを提案してくれる」ツール
CoPilotは「定番の書き方知ってる」と有能 この例ではStarterプロジェクトを開いて、 1. 新しいファイルに"ProductListApiVerticle.java"という名前を付けた 2. クラス名の行を書いた ここで提案が来た。クラスの中身全部を提案してくれている!! ※クラス名がDatagramServerVerticleだとUDPサーバーを提案 賢い!
CoPilotはコメント駆動開発もできる! • 「HTTPサーバーを起動する」
CoPilotはコメント駆動開発もできる! • 「websocketサーバーを起動する」
CoPilotはコメント駆動開発もできる! • 「TCPサーバーを起動する」
知らないフレームワークだとCoPilot厳しい • この例では、Initializrのプロジェクトを開いたものの、どこをどう書 けば処理を書き始められるか分からず、書き換えを始められない状態 何もしないと提案もされない
エディタ内のCoPilot支援ツール • 「続きを書く」都合上、エディタとの連動が重要 • IntelliJ IDEA • JetBrains純正プラグインが提供されている • Visual
Studio Code • GitHub純正プラグインが提供されている ※ 話題のサービス関連なだけに、ベンダー製プラグインがおすすめ
GitHub CoPilot の感想 • CoPilot=「副操縦士」 • 主導権はあくまで機長である「あなた」 • 「プログラムの続きを書いてくれる」というスタイル •
提案のための情報(最初の呼び水)が必要 • どんなものを作ろうとしているか、プログラムまたはコメントの形で書き始める必要がある • CoPilotは、各種定番コードを「いい感じに埋める」役割 • 戻り値処理の分岐やコメントも起こしてくれるのは超ありがたい • この点では、ChatGPTのほうが「ふわっと」依頼しやすい(後述) • CoPilotの提案を受け入れた箇所が次の呼び水になるので、書き始めたらどんどん進 む
2)ChatGPT • 0 → 1 ツールとして最強 • (対人と違って)ふわっと質問し始められる • 回答に対して修正依頼することもできる
• 相談相手であり、アシスタントでもある
ChatGPTに「ふわっと依頼」とは? • 「〜〜するプログラムを書いて」と依頼すればOK • このとき、指示する粒度はある程度具体的に • 特に、HOWにあたる部分を明記するとよさそう
いきなり動くコードが出てくる衝撃 • 「vert.x で、 UDPパケットを受信してそのまま送り返すecho バーティ クルのサンプルを書いてください」 • Starterプロジェクト内に貼り付けてパッケージ名を追記したら動いた •
「gcc 用のUDPパケットを送るプログラムを書いてください」 • そのまま動いた • 「このプログラムを拡張して、送信後、UDPパケットを待ち受けて表示 する機能を追加してください。受信後はプログラムが終了するようにして ください。」 • そのまま動いた
ChatGPTにお願いしてみた(1) • 「springbootで HTTPでhello worldを返すサーバープログラ ムのサンプルを書いてください」
ChatGPTにお願いしてみた(2) • 「gcc用のUDPパケットを送るプログラムを書いてください」
動かし方も教えてくれる
自然言語でも対話可能 • 自然言語(日本語)で、相談や文書の作成依頼をすることも可能 • いとうの観測範囲では、どちらかというとTwitterとかで話題になりやす いのはこちらの印象
最初の依頼
方向性の修正
分からないところを確認
ChatGPT の感想 • 0 → 1 ツールとして最強 と書いたが... • まるっきりゼロでは無理だが、0.1とかぼんやり段階からOK
• 出てくるものは1どころじゃなく10とか100なこともよくある • 質問や指示をすると、答えが得られる • 答えに対して、質問や修正依頼が可能 → 対話し続けることが大事 • 答えには「プログラムコード」も「自然言語の文章」もOK
まとめ:CopilotとChatGPTどっちがいい? • どっちもいい • 両方使えばいい • 最初の勉強のハードルを下げてくれるのはChatGPT • スターターとして使えるコードを解説付きで生成してくれるのすごい •
「それっぽいけど動かない」こともあるが、とっかかりには十分 • 公式ドキュメントを読むときも、ChatGPTが翻訳・要約してくれる • ある程度書けるようになってからの手伝いはGitHub CoPilot
ご清聴ありがとうございました • We are Hiring! • 「セガ札幌スタジオ 中途採用」で検索!