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
1
Share
サーバーサイド開発にありがたい GitHub Copilot / ChatGPT
サーバーサイド開発にありがたいGitHub Copilot / ChatGPT
というタイトルで、2023/5/20にJavaDoでしょう#22札幌で話した際の資料です。
Masatoshi Itoh
May 20, 2023
More Decks by Masatoshi Itoh
See All by Masatoshi Itoh
Hello - 本を書く- World !!
masatoshiitoh
0
100
TPI NEXTを読みました
masatoshiitoh
0
250
非同期ツールキット「Vert.x」のご紹介
masatoshiitoh
0
410
コードを書いたら負けなのか?
masatoshiitoh
0
490
1999年 最新バックアップ事情
masatoshiitoh
0
220
Google I/O 報告 (Google Assistant)
masatoshiitoh
0
500
GDC報告会資料 海外に見る「生産性改善」動向
masatoshiitoh
0
1.3k
イケメンシリーズでのORMとスロークエリ対策について
masatoshiitoh
0
2.7k
Erlangご紹介 websocket編
masatoshiitoh
0
2.9k
Other Decks in Programming
See All in Programming
Agentic AI & UI: Arcitecture, HITL, Emerging Standards
manfredsteyer
PRO
0
110
Agent Skills を社内で育てる仕組み作り
jackchuka
1
2.1k
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
420
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
160
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
150
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
150
HTML-Aware ERB: The Path to Reactive Rendering @ RubyKaigi 2026, Hakodate, Japan
marcoroth
0
720
色即是空、空即是色、データサイエンス
kamoneggi
1
110
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
520
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
3
570
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
0
200
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
850
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
820
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.6k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Agile that works and the tools we love
rasmusluckow
331
21k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
GitHub's CSS Performance
jonrohan
1033
470k
4 Signs Your Business is Dying
shpigford
187
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
230
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! • 「セガ札幌スタジオ 中途採用」で検索!