概要
VB.NETのWindowsFormsでGitHub Copilotを使えるか検証してみました。
今回はUI部品のプロパティについてレビューできるか検証してみます。
背景と課題
現状、レビューアが人力でプロパティをチェックしています。
この作業がレビューの工数を圧迫している状況です。
開発環境
| 名称 | バージョン | 説明 |
|---|---|---|
| Windows | 10 | OS |
| VisualStudio | Community 2022 | IDE |
| .Net FrameWork | 4.8 | WindowsFormのフレームワーク |
導入手順
カスタム指示文を作成
.gitフォルダと同じ仮想に.githubフォルダを作成し
以下ファイルを作成。
あなたはVB.NET Winformsの熟練プログラマです。
以下の項目についてレビューお願いいたします。
# UI Propety
## テキストボックス TextBox
フォント MS ゴシック
背景色 Yellow
文字色 Red
高さ 20pix
## DateTimePicker
日付の表示形式 yyyy-MM-dd
高さ 20pix
背景色 Yellow
文字色 Red
# 結果の連絡について
以下のフォーマットで出力すること マークダウンの表形式で
``md
プロパティ名|プロパティ項目|結果|現状の値|期待する値|修正方法
------------|--------------|----|--------|----------|--------
`
# 修正方法について
開発者がデザイナーで修正することを想定する
修正の際に プロパティの項目と プロパティの値を教えてください
レビューを試してみた
レビューする画面
テキストボックス、カレンダーのコントロールの2つです。
フォント、背景色の色、高さがカスタム命令の規定とは異なっています。
Github Copilotチャットでレビューしてもらう
#file:'instructionsSample/Form1.Designer.vb' をカスタム命令でレビューしてくれ
結果
レビューできてますね。プロパティがカスタム命令の値と異なることを確認できています。
修正
開発者がデザイナーを使って修正する
(Winformはこれが面倒なんだよな、、、)
注意点
DateTimePickerの見た目が変わらないのはなぜでしょうか?
また、コントロールの高さは仕様上変更できなかったため、そのままにしました。
そのため、レビュー結果は未達となることが予想されます。
再度レビューしてもらう
#file:'instructionsSample/Form1.Designer.vb' をカスタム命令でレビューしてくれ
結果
サイズ以外変更されていることを確認しました。
効果
実装の容易性
- 実装コストは低いと感じました。自然言語で指示を書けばよいので、指示文の作成も容易です
- 一度作成すればメンテナンスコストもほとんど発生しないため、導入する価値は十分にあります
実装工数
初回のみ:4時間
コストは低く、一度実装すれば継続して使い回せるのが利点です。
既存のコーディングルールをマークダウンに転記すればよいため、実装コストは低く抑えられます。
削減工数
1レビューあたり:30分
- プロパティチェックのレビューにかかる時間を削減できます
- レビューアーの負担を軽減できます
- レビューアーはベテランであることが多いため、単純チェックではなくより価値の高い業務にリソースを振り向けられます
今後の課題
VS Codeでの検証
VS Codeで開いてカスタム指示に基づいてレビューしてくれるか検証すること。
実際の開発環境ではVisual Studioのバージョンが古すぎてプラグインが利用できないため...
以下の記事と組み合わせる予定です。
https://qiita.com/RYA234/items/16729d6cf5510a970e87
参考
github commit分
https://github.com/RYA234/WindowsForm_sample/commit/6d582f0b15749be0731500a5dc372182bc54ebe4
参考記事
- GitHub Copilotを使っている人は全員"copilot-instructions.md"を作成してください
-
テストコードで実装した場合
※実装量は多いですが、理論的にはこちらの方が正確だと思います




