B-2 GitHubアーキテクトが語るGitHub Copilotが生み出すAIネイティブ開発の実践と次世代エンジニアに求められる新たなスキルとは

デブサミでメモしたことをつらつら書いていきます。

AIネイティブ開発とは
 Copilotなどを活用し、ペアプロやコードレビューなどの人間×人間でやっていたことを代替していく

生成AIのエンジニアへの普及

AIを使いこなしたエンジニアリングが生産性を高めるカギとなる
AI-Nativeなエンジニアとは?

今後「AI Nativeなエンジニア」と「非AI Nativeなエンジニア」での格差は開いていく

Copilotの役割・機能
 最初はコメントアウトに記述して補完してくれるだけだったが、Chat機能やプルリクなど開発のライフサイクルにも食い込み始めてきた

「あたかもな振る舞い(ハルシネーション)」をするので、彼らの発言や情報の信頼性を高めていかなければならない

GitHub Copilotを活用したAIネイティブ開発プラクティス
 GitHub codespaceのデモ
  インラインチャットがかなり強力だった
 
GitHub Copilot エンタープライズ
  プルリクを書いてくれる
  ファイル差分を確認する画面でもGitHub Copilot Chatが使える

AIを使いこなすコツ
 ツールの違うを知ることが大事
 その上で自分たちが何を期待しているのか
 VScodeのCopilotは、レスポンスをいかに早く返すかを重きに置いてるので、500トークンくらいで切ってしまう

Copilotの特徴を理解

プロンプトのコツ

RAGはノイズが多いと精度が下がる
 一概にソース全部読めばいいってものじゃない
 どこのスコープで何をやりたいかが大事
 無限に情報を渡して過度な期待を持たない

AIフレンドリーな開発実践
 Copilotデザインパターン
  一貫性
   ・AIが理解可能な命名規則
   ・一貫性のあるコーディングスタイル
  アーキテクチャ
   ・ハイレベルアーキテクチャを先に
   ・コンテキストレス・アーキテクチャ
   ・小さなコードチャンクで作業する
  再利用可能性
   ・微細なOSS依存関係の排除
   ・インナーソース
  あくまでもPilot
  小さなチャンクに区切って、AIが変えるところ、変えないところを取捨選択
  詳細設計、ドキュメント、デザインドック
   ・AIが読みやすいドキュメントってなんだろうを考えていくべき
  プロンプトの引き出し方
   ・チーム内でも共有会をしてテクニックの標準化が大事

テスト&リファクタ
 テスト
  ・テストコードの生成方法を指定
  ・出力ケース数を数で指定
  ・自然言語からテストケースの記載を始める
 リファクタリング
  ・オープンクエスチョンで尋ねる
  ・ロジックの分離で、生成時の不可侵領域を作る
 いかに
  AIに理解してもらいやすいコードを書けるか
  AIに最高なアウトプットをしてもらうか

AIは発散は得意、修練は苦手

これからのエンジニアに求められるスキルとは
 人×人→人×AIになっていくと感じている
 いいコードを書かせる術を身につけている必要がある
 最強の学習ツール
 プロンプトクラフティング
  慣れていくとなんとなくハンドリングがわかるようになる

この記事が気に入ったらサポートをしてみませんか?