$30 off During Our Annual Pro Sale. View Details »
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
90
TPI NEXTを読みました
masatoshiitoh
0
230
非同期ツールキット「Vert.x」のご紹介
masatoshiitoh
0
380
コードを書いたら負けなのか?
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
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
120
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
170
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
410
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
220
sbt 2
xuwei_k
0
290
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
160
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
170
認証・認可の基本を学ぼう後編
kouyuume
0
190
20 years of Symfony, what's next?
fabpot
2
350
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
2.5k
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
170
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
4 Signs Your Business is Dying
shpigford
186
22k
Building Applications with DynamoDB
mza
96
6.8k
For a Future-Friendly Web
brad_frost
180
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Embracing the Ebb and Flow
colly
88
4.9k
Documentation Writing (for coders)
carmenintech
76
5.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
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! • 「セガ札幌スタジオ 中途採用」で検索!