Stand Up and Shout!

勉強したことや、思いついたことを気ままに記述します

ソフトウェア開発にChatGPTは使えるのか?

2023年7月12日に『ソフトウェア開発にChatGPTは使えるのか?――設計からコーディングまでAIの限界を探る』が出版されました。

書評

「一般エンジニアのための生成AI活用ガイドブック」

技術の進歩は日進月歩で、特に生成AIの分野では、一部の大企業や専門家が最新のハードウェアやクラウドを駆使し、最先端のAI技術を開発しています。そこには専門のAIエキスパートを集め、膨大な資金と時間をかけてLarge Language Model(LLM)などを構築し、その結果をもとに独自のAIを開発、最適化しています。

しかし、このような動きは一般のITエンジニアから見れば遥か遠く、現実的に手が届かないものでしょう。そんな一般エンジニアの皆さんにこそ、この本をお勧めします。

著者はこれまでSQL等の著書を出し、主にVBAを専門に扱ってきたフリーランスIT技術者ですが、還暦を機にPythonなどの新たな技術にも取り組みました。そんな彼が提供するこの本は、一般的なエンジニアが生成AIを実践的に活用するためのガイドとなっています。

本書では、ドキュメント作成から、クラス図や状態遷移図の自動生成、DB設計(ER図を自動生成)、データベースのORM、AWSなどのシステム構成図作成、さらにはDDDやTDDを含むコードやテストクラスの生成まで、詳細にわたって説明されています。特にDDDやTDDの章では、著者が好んで使用するプロレス技の"DDT"に関する言及が挿入されており、そのエンターテイメント性が読み手を飽きさせません。

さらに、本書では、OpenAIのAPIやLangChainを使用して自分だけのカスタムチャットボットを作成する方法についても触れられています。これにより、生成AIを活用し、エンジニアリング作業を効率化するための具体的なヒントやノウハウが詰まっています。

この本は、エンジニア一人ひとりが、ChatGPTを使って自身のエンジニアリング作業を効率化し、より高速化するためのきっかけ作りを提供してくれます。それはまさに、エンジニアにとって最適な学習リソースと言えるでしょう。

マインドマップによる整理


目次の俯瞰

# ソフトウェア開発にChatGPTは使えるのか?- 設計からコーディングまでAIの限界を探る
## 第1章 ChatGPTで何ができる?なぜできる?
### 1-1 ChatGPTで何ができる?
### 1-2 なぜそんなことができるのか?
## 第2章 プログラミングでの活用
### 2-1 自動コード作成
### 2-2 エラー対策
### 2-3 クラス化について
### 2-4 状態遷移表でコードを生成
### 2-5 デザインパターンを提案してもらう
### 2-6 アルゴリズムを提案してもらう
### 2-7 段階的積み上げ手法
### 2-8 コードの変換
### 2-9 付記:テストケースの注意点
## 第3章 リファクタリングでの活用
### 3-1 隙間時間でお気軽リファクタリング
### 3-2 コメントとドキュメンテーション
### 3-3 セキュリティの脆弱性チェック
### 3-4 例外処理と論理完全性の改善
## 第4章 ドキュメントの自動生成
### 4-1 PowerPointのスライドを自動作成
### 4-2 Wordドキュメントの自動作成
### 4-3 Excelと連携しドキュメントを自動作成
### 4-4 diagramsを使ってクラウド図を作成
### 4-5 dbdiagram.ioでER図を作成する
## 第5章 各種開発手法の提案
### 5-1 DDDによる設計と実装
### 5-2 TDDによるテストからの実装
### 5-3 ChatGPTとソフトウェア開発のアプローチ
## 第6章 学習プロセスでの活用
### 6-1 分野別の学習
### 6-2 プログラミング言語の学習
### 6-3 ChatGPTは学習を加速する
## 第7章 ChatGPT APIを活用する
### 7-1 最も基本的な使い方
### 7-2 要約をしながら文脈をつなげていく
### 7-3 社内データベースに日本語で問い合わせる
### 7-4 社内データベースと連携してユーザーサポートをする
## 第8章 ChatGPTで長文データを扱う
### 8-1 LlmaIndexで長文データを扱う
### 8-2 LangChainで長文データを扱う
## 第9章 長文をChatGPTで扱うコツ
### 9-1 LangChainの仕組みとは
### 9-2 Chainsでタスクをつなげる
### 9-3 Chainsによるチャットボットの例
### 9-4 Agentによるコードの実行
### 9-5 Agentによる判断・実行・プロセスの自動化
### 9-6 AgentによるChatボットの最終形