個人的なAI活用方法
概要
こんにちは。
今回は、私が普段の開発業務で、どのようにAIを活用しているかをまとめました。
コードの実装だけでなく、調査や設計、日常的なコミュニケーションなど、さまざまな場面でAIを活用しています。
皆さんのチームでも、有意義な活用方法などがあれば、ぜひコメントいただけるとありがたいです。
1. コードレビュー・修正依頼
GitHub Copilot Reviewを利用すると、周辺コードとの整合性や考慮漏れなどを指摘してくれます。
その指摘内容をCopilotに渡し、修正を依頼するという活用方法です。
修正後は再度Copilot Reviewを実行し、追加の指摘があれば修正する、という流れを繰り返します。
こうすることで、チームによるコードレビューの前に、ある程度の問題を洗い出すことができます。
ただし、Copilot Reviewの指摘が必ずしも正しいとは限りません。仕様上問題がないものや、修正することで別の箇所に影響が出るものもあるため、指摘内容を確認した上で、修正が必要かどうかを判断することが重要です。
2. 不具合調査・チェックエラーの修正
AIに必要な情報を渡すことで、不具合の原因調査や修正を依頼できます。
例えば、DBのレコード情報や不具合の発生条件を伝え、「このレコードの場合に、このような事象が発生する」と説明することで、関連するコードを調査し、原因を推測してくれます。
また、自分なりの考えや追加で調査してほしい内容を伝えることで、より精度の高い調査・修正につながります。
Unit TestやLintなどのチェックエラーについても、エラー内容を提示することで、原因の特定から修正まで対応してもらえます。
さらに、既存のコード規則や実装方針に合わせるために、参考となるファイルを指定すると、より意図に沿った修正が期待できます。
3. チャット文章の作成・校正
業務上のチャットでは、伝えたいことを文章に整理するのに時間がかかることがあります。
また、頭の中で考えたことをそのまま伝えると、相手に意図が伝わりにくくなることもあります。
そのため、考えた内容をChatGPTなどにそのまま入力し、文章を構成してもらうという活用方法です。
ただし、日本語として不自然な表現や、必要以上に堅い文章になることもあるため、最終的には自分で微調整する必要があります。
具体例
例えば、以下のように伝えたい内容をそのまま入力します。
「修正が完了したと思っていたけど、確認したらまだ反映されていなかった。もう一度確認してほしい。構成して」
このように依頼することで、相手に伝わりやすい文章に整理してくれます。
4. 設計の相談
実現したい要件や現在抱えている問題をAIに伝え、解決方法や実装方針を相談する活用方法です。
例えば、「こういう要件があり、現在こういった問題が発生している。この問題を解決するには、どのような方法があるか」といった形で相談します。
自分だけでは思いつかなかった実装方法や、別のアプローチを提案してくれることもあります。
ただし、回答の正確性が十分でない場合もあるため、最終的には公式ドキュメントなどで確認することが重要です。
具体例
例えば、ファイルアップロード機能を実装する場合、
「最大12GBのファイルをアップロードできるようにしたいです。現在はWebアプリケーションを経由してアップロードしていますが、ファイルサイズが大きいため、タイムアウトなどの問題が懸念されます。GCSを利用している場合、どのような構成が考えられますか?それぞれのメリット・デメリットも教えてください。」
このように要件や懸念点を伝えることで、複数の実装方法や構成を提案してもらえます。
5. 型定義・Domainの作成など
バックエンドで定義されているDomainの配列をフロントエンド側でも定義してほしい、といった依頼をすると、かなり正確に型定義を作成してくれます。
また、ModelのDomainなどについても、migrationファイルをもとに生成することができるため、こういった単純作業の削減にも役立ちます。
具体例
例えば、バックエンド側で以下のようなDomainが定義されている場合、
[
'id' => 1,
'name' => 'sample',
'is_active' => true,
]
これをフロントエンド側で利用できるTypeScriptの型に変換してもらいます。
type User = {
id: number;
name: string;
is_active: boolean;
};
「上記のバックエンドのDomainを参考に、フロントエンドで利用するTypeScriptの型定義を作成してください。」
と依頼するだけで、型定義の作成を効率化できます。
注意点
AIに依頼する際は、仕様や要件を正確に伝えないと、意図と異なる修正が行われる可能性があります。
最初から細かく指示する方法もありますが、まずは大まかな内容を伝えて修正させ、その結果を確認した上で、追加の条件や詳細な仕様を伝えていく方法も有効だと思います。
また、AIが生成したコードであっても、コードの理解や動作確認、テストは必須だと考えています。
現状のAIは、それらしいコードを書くことはできますが、最適な実装であることや、不具合がないことまで保証してくれるわけではありません。
チームのコードレビューで指摘を受けた際にも、なぜその実装にしたのかを自分で説明できるよう、コードの理解を深めておくことが重要だと思います。



