見出し画像

組み込み開発(C)でもGithub_Copilotを使ってみた

こんにちは、カシオの組み込みエンジニアの黛(まゆずみ)です。
昨年6月ごろから、C言語での組み込み開発にGithub_Copilotを利用しています。

Github_Copilotは公式ページにて、

GitHub Copilot にはさまざまな言語に関する提案が用意されていますが、特に Python、JavaScript、TypeScript、Ruby、Go、C#、C++ に適しています。

https://learn.microsoft.com/ja-jp/visualstudio/ide/visual-studio-github-copilot-extension?view=vs-2022

とありますが、使用した感じ、C言語の開発も十分に有用だと感じました。
今回は組み込み開発での、Github_Copilotの便利Point & 残念Pointをまとめてみました。

なお、エディタはVisual Studio Codeを使用しています。
→ VSCodeへのGithub_Copilot導入方法はこちら


便利Point1.コードの自動生成

Github_Copilotで最も有用な機能は、コード生成といえます。

例えばswitch文なら、1case書けば、以降に推測されるコードを薄灰色で提案してくれます。

コード内にCase用の変数を定義しておけば、予測して勝手に補完してくれます

Github_Copilotの良いところは、コーディング中にストレスなく使える点です。
生成コードは[Tab]キーを押していくだけで、サクサク実体化していきますし、生成コードの推測精度も高く、見当違いのコードが出ることも少ない印象です。

コード生成自体は、ChatGPTのような対話スタイルのAIでもできますが、作業効率は完全にこちらに軍配が上がりますね😊

以下、いくつかの実施例です。

変数名からコメントを生成
関数の説明文だけ書いて、コードを生成させる
markdownの生成もできます


plantumlを生成して、UML図を書きましょう

markdown、plantumlの生成は初期設定で無効なため、有効化が必要です。

VSCodeの設定から、"copilot"を検索し、項目を追加します


便利Point2.コードレビュー

copilotにコードレビューしてもらうことで、細かなバグを減らしましょう。

レビューの方法は2通りあります。

レビューの方法①

レビューしてもらいたい箇所をすべて選択して、右クリック -> Copilot -> レビューとコメント をクリックする
("レビューとコメント"が無い場合、VSCodeを最新に更新してください)

インデントのずれの指摘
関数名の提案

・インデントのずれ、誤字の修正
・関数、変数名の提案
などの細かい点を指摘してくれます。
GitHub copilotは、GitHub上のコードを学習したLLMですので、提案される変数名は、多くの開発者が書いている = 多くの人が理解しやすい名前 であると期待できます。


レビューの方法②

レビューしてもらいたい箇所をすべて選択して、右クリック -> Copilot -> 選択内容をチャットに追加 をクリックする。

1つ目よりも、全体を見てコメントをしてくるように感じます。
関数単位でのレビューなどに向いています。(選択範囲は100行以内がベスト)


残念Point1.長いコードや文章は、すべて理解できない

100行以上のコードのレビューや修正を求めると、抽象的な回答になります。質問したい場合は、分割して与える必要があります。

そのため、長文のドキュメント(例えばデータシートや、開発チーム内でのコーディングルール)を読み込ませて、その内容に準拠したコードを生成させる、という利用は現状難しいようです。

ここは、今後RAG(Retrieval-Augmented Generation) 機能として、更新されることに期待ですね。

残念Point2.コメントがたまに英語になる

原因不明。情報ありましたらコメントお願いいたします。


最後に

Github_Copilotは、組み込み開発においても、優秀な開発補助ツールでした。
組み込み業界での生成AI利用例は、サーバー・WEB系に比べると、情報量が少ない傾向にありますので、今後も情報発信を継続していきたいと思います。


【前回のテックブログはコチラ】
辞書アプリの設計担当が、当社が提供している辞書サービスで発生していた「一部の端末で文字が読みづらい」という問題を解決した時の内容です。
どのように解決していったか、ぜひ理解を深めるのに役立てて貰えたら幸いです。

【カシオのソフトウェア採用についてはこちら】


この記事が参加している募集