
世の中いろんなところで
生成AIですよね。
絵を描くのも、
プログラミングをするのも、
文章から、仕事のあれこれなんやかんやみたいなことまで。
今時
ChatGPTを使って毎日のタスクをこなしていないと、もはや世の中についていけていけないかもしれません。
AIを味方に付けて、プログラミングのコーディングをやっちゃおうと言う、「コードAI」という書籍が、Amazonで光り輝いていたので、
冷やかし半分、
今時のAI書籍って何が書いてあるんだろうと言う好奇心半分の気持ちで、購入してみました。
レビュー
★★★★☆
基本的にプログラマー向けのAI活用法が書かれている書籍で、概ね参考になることも多く、
プロンプトの書き方など、コーディングでの返答を求める方法が数多く書かれています。
また、各種AI対応ができるツールなどが紹介されていて、実際に仕事でも生かせる内容でしたね。
特に開発業務にいけるテスト設計やテストコーディングについてのAI活用をものすごく推奨してあり、
確かに、実際のコーディングで時間がかかるし、精度を求められるこの領域はAIを活用することでの効率化は大きいと言うことが改めて理解できた。
個人的には、もう一歩踏み込んだ内容を期待していたので、きっとこの書籍AIで書いているんじゃなかろうかという思いも少し考えてしまいましたね。(それは多分ないと思うけど)
内容紹介
生成AIにおける「ハルシネーション」の問題
ハルシネーションという言葉は、AIが実際に知らない言葉を、知っているかのように答えてくる事で、要するに
AIの知ったかぶりです。
英語では、"Hallucination"(幻覚)という事で、ChatGPTもよくさも本当かのような言い方をして、「違うだろ!」と突っ込むと「ごめんなさい」と返答することもあります。
でも、そうしたハル氏ネーションを信用してしまい、実際に仕事などで使ってしまうととんでもない失敗につながるかもしれないので、AIの返答は100%鵜呑みにせずに、
必ず疑念を持つことも必要という事が書籍に至る所に書かれていました。
なんか、嘘つき友達みたいな感じで対応しないといけないんだな・・・という印象。
AI駆動の知識獲得
コーディングにおいて、ツールで使えるAIを活用すると、まるで経験豊富なメンターが隣で指導してくれているかのような錯覚になるようです。
確かにコレは熟練Webエンジニアである自分でも感じていました。
先日も、Stripeの後払い課金の方法をChatGPTに質問したら、Webのフロントからバックエンドにおけるコーディングまで全て指示してくれました。
そのまんまのコピペで使えると言うワケではなかったですが、自分でリファレンスを読んで仕様を理解して、テストコードを書くまでの処理を一気にすっ飛ばして、
ステップバイステップの解説もしてくれたので、作業効率は半端なく高かったですね。
開発支援AIツールの使い分け
この書籍では、ChatGPTだけじゃなく、他のツール(特にCopilot)を使って、プログラミングを効率化すべしという内容が終始書かれていて、
仕事でプログラミングしている人なら、課金なんて屁でもないだろ・・・的な内容で書かれています。
Github Copilotは、プログラミングの定番で、コード補完をしてくれる様は自分の中のITスキルが爆上げされたような錯覚に陥るのはよくわかります。
でも、お試して使ってみたんですが、あらゆるコード入力で、自分の意図していないコードを保管しようとしてくるAIに少し不満を感じて、機能を閉じてしまいました。
個人的には必要な時に聞いて、その時に答えてくれるChatGPTで十分だと感じましたね。
でも、書籍で言っている便利さもわからなくも無いので、この辺はその人のプログラミングスタイルによるのかも・・・とも感じましたね。
代表的なツール紹介
知っている人も使っている人も多いと思いますが、主要なAIツールはこんなにあって、今後どんどん増えていくでしょうね。
OpenAIの
ChatGPT :
https://chatgpt.com/
Microsoftの
Copilot :
https://copilot.microsoft.com/
Googleの
Gemini :
https://gemini.google.com/app
Anthropicの
Claud :
https://claude.ai/
Github Copilot :
https://docs.github.com/en/copilot/github-copilot-chat/about-github-copilot-chat
企業がAIを活用して競争力を高める方法
企業での思考として、次の3つの方法があると書かれていました。
1. コストカット
必要な労力や資源を減らすこと。
2. 生産性向上
同じ労力で、より多くの成果を生み出すこと。
3. 価値創出
全く新しい製品やサービスを生み出すこと。
ただ、AIを導入して、エンジニアの人数を減らす・・・みたいな思考にはならないで欲しいとも書かれていました。
ITが苦手な経営者が錯覚しがちなのは、AIを導入したら、あらゆる人員削減をして、人員のコストカットをする方向で考えがちですが、
おそらくどの会社でも、人が想定上の作業をして残業につながっているところを、AIを活用して、残業しなくてもいいとか、
よりクオリティアップできるような前向きなコストカットをしてもらいたいですね。
AIで測りきれない、人のストレス値などは、働きやすい会社の定義として、人間がちゃんと設計するしかないんですよね。
AIを活用した品質向上
プログラミング作業における、テスト検証は、AIの最も得意としている領域です。
次の手順を活用してみましょう。
1. 発散 : テストパターンのケースを生成してもらう。
2. 整理 : パターンの整理をAIにして、人間がレビューする。
3. 収斂(しゅうれん) : 網羅されたテストケースを絞り込む。
4. 選択 : テストケースを選別する。
5. 実装 : AIにテストコードを実装させる。
いいですね。これでこそAIの仕事と言うべき内容です。
人間がこうしたことをするのは精度が問われる上、かなりのストレスで、
なかなかこれらが得意とか、やりたいというエンジニアはこれまでみた事がありません。
書籍には、これらの事例をサンプルを踏まえて書かれていて、実際に仕事で使えるイメージができました。
可視化について
プログラミングで重要なもう一つの要素に、「ドキュメント作成」があります。
これも、AIが得意としているジャンルですね。
DBのER図や、フロー図などの、これまで画像で一生懸命作ってきたような作業も、
Mermaidや、PlantURMというツールを用いて、簡単にテキストベースで図が作成できるやり方なども解説してくれています。
Mermaid :
https://mermaid.js.org/
PlantURM :
https://plantuml.com/ja/
コードレビューはAIにやらせとけ
アジャイルの重要ポイントとして、コードレビューを運用しているチームも多いと思いますが、
基本的に、抜け漏れの無いレビューとしてAIを活用しましょう。
きっとプログラマーであれば、別の書か方でさんこうになって 勉強になるケースもあれば、
思いもよらない、セキュリティホールや脆弱性などを指摘してくれて、高品位なレビューが受けられるはずです。
悪い評価をしずらいコードレビューであっても、AIが言っている理路整然とした内容に誰もが納得する事でしょう。
あとがき
プログラミング作業のあらゆる箇所でAIを活用する事がサンプルを交えて書かれていて、いろいろと参考になると同時に、
自分の仕事改善をせねばいかんな・・・と思い知らされた書籍でしたね。
今時のプログラミング方法と言ってもいいかもしれませんね。
自分は一人で開発しているから手軽にこうした改善変更もできてしまいますが、チーム開発などを組織で行っている場合は、
チームメンバーの同意も含め色々な意識改善も行う必要があるので、どうしたらスムーズに進めるかAIに聞いてみるといいでしょう。
きっと、適切な提案をしてくれますよ。
0 件のコメント:
コメントを投稿