「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 生成AIに主にプログラミング・コードを生成させる。
- ChatGPTの登場に合わせて、このユースケースが増えていった。
- ただし、この程度のことは実はGPT-2(2019)でもできていた。
- 以下のようなインストラクションにも対応
- 「AAA, BBB, CCC, DDD...をアルファベット順で並び替えるプログラムを JavaScriptで書いてください。」など。
- 「簡単なゲームを作成する例」もあるが暗記物件を提示しているダケに見える(指示詳細がないので当然と言えば当然)。
- プログラミングだけでなく、フレームワーク導入の際の導入手順なども出力できるのが良い。
- このため、開発ツールも生成AIと親和性が高いGUIからCUIにシフトしているという話がある。
- (Visual Studio や、他のIDEの新規作成→プロジェクトが、VSCなどのエディタ+CLI化)
- リバース・エンジニアリング、リファクタリング、コンバージョンなどの用途でも使える。
- トラブルシューティングでは、現象の説明(エラー・ログなど)を入力し問題を特定
- お陰で「stackoverflow.com」のPV激減に繋がった。
- 開発者コミュニティ依存から、GitHub上での公式と開発者のやり取りへのシフトが進んでいる可能性。
詳細 †
ツール類 †
GitHubにもCopilotと言うスニペット生成機能がある(若しくはCursor、Claude Codeなど)。
- コード補完(オートコンプリート)中で使うコーダー向け機能で、昨今のIDE・エディタ事情でCLIとして提供されている。
- コード補完のスニペットではスコープの広いフレームワーク導入などの分野は苦手(アーキテクトはChatUIがメイン)
- 特殊なPE(Context Injection)に加え、コマンドやChatUIも用意されている。
Vibe Coding †
自然言語のプロンプトを用い、コード生成のすべてをAIに委ねる開発スタイル
- 「書く」から「対話する」、「理解」より「反復」など。
- 思想としては「手抜き」ではなく人間は「クリエイティブな意思決定に集中」する。
- 顧客エキスパート自身がVibe Codingでプロトタイピングすることは非常に有効。
- 無限ループ課金やセキュリティ事故が発生しているので生成物はレビューが必要。
※ ただし、Proから見るとEUC向けの認識に落ち着いている。
EUC or Pro †
EUC向け †
作業の自動化やプロトタイピング
- 表計算ソフトの関数記述、マクロ、VBAなどに利用できる。
- 各種著名なBIツールにおけるクエリ作成、ダッシュボード構築
- テキスト処理とデータクレンジング(スクレイピング・コード、正規表現)
Pro向け †
各種実務支援
- フレームワーク導入
- テンプレート開発
- リファクタリング
- 職業プログラマ向け入力支援
- デバッグ、トラブルシュート
事例 †
フロントエンド開発 †
ML/DL Pythonプログラミング †
考察 †
一般的なプログラミング †
- 「プログラミング言語、やりたいことや仕様」をプロンプトとして伝えてプログラムを生成できる。
- 「生成した、作成した」プログラムのワーニング、コンパイル・エラー、実行エラーなどを修正できる。
- 昨今は、開発環境多用化で、開発環境準備段階にも適用できる(エディタ化に加えAI対応でCLI化が加速)
- 粒度の大きいタスクはChatUIから、粒度の細かいコード補完(オートコンプリート)はタスクはIDE、エディタ上から利用。
- 人間があまり得意ではないマークアップ言語(HTML、◯ML、JSON)や非手続き言語(SQL、正規表現)などにも強い。
...については生成AIを活用したシステム開発で。
Vibe Coding †
予定
主にフレームワーク導入、テンプレート開発、リファクタリングについてChat上で実施。
- 段階を経て利用
- 開発環境の準備
- プロジェクトの準備
- フレームワーク導入とテンプレート化
- ワーニング、コンパイル・エラー、実行エラーなどを修正
- 機能の実装(やりたいことや仕様を入力)
- リファクタリング(共通化、フォルダ構成見直し、パッケージ導入)
フロントエンド開発 †
ML/DL Pythonプログラミング †
職業プログラマ向け入力支援 †
デバッグ、トラブルシュート †
品質やセキュリティに関する考慮点 †
- コレは、プログラミングに限らず、生成AIが騒がれ出したときから「ググった結果の利用と同じ」と言っている通り。
- 生成されたコードを使用する際は、「ググった結果の利用と同じ」で、以下のようにすると良い。
- 使用するコードがどのようなものか?を一通り読む(生成AIにクロスチェックさせても良い)。
- 生成されたプログラムを実行した際にシステム上でどの様に振る舞うか?を理解している必要がある。
- 生成されたプログラムはコメントが少ないので、コメント比率を上げる(コード補完(オートコンプリート)を使用しても良い)。
参考 †
Vibe Coding †