コード×AI本って?
2024/9/19に発売された、GitHub社 Yuki Hattori さんが書かれた本です!
年末から少しずつ読み進め、めっちゃ内容が良かったのでとりあえず今すぐ買ってください!
めっちゃ面白かったので、感想の整理も兼ねてダイマします!
いいなと感じたところBest3
AIとの適切な付き合い方が知れる!!!
言葉があいまいでアレなんですが、AIとの適切?な付き合い方が知れます!
一例ですが、本には「AIに100%の回答を求めてはならない」「プロンプティング→AIの回答を高速にイテレーションせよ」「60~80%の回答を期待し、人の手によって100%の成果物とせよ」といった、AI時代のエンジニアのマインドや態度へのアドバイスが書かれています!
私もこういった視点を持つことは大事だと考えており、この本を読んでさらにその整理ができました。
他にも、
- AIが読みやすいコード・ドキュメント・コメントを書くべし (+ 具体例)
- AIが活躍できるようなチーム・組織体制をとるべし (+ 具体例)
など、AIと協同することが当たり前な時代へ向けた(もうとっくに来てるけど)マインドセットと具体例がとても分かりやすく記載されています!!
効果的なプロンプトの例・テクニックが知れる!!!
AIモデルの質の向上により、プロンプトの内容の工夫は少しずつ不要になってきています(出典忘れた)。
しかし、依然プロンプトエンジニアリングが有用であることには変わりがないです。
この本では、そんなプロンプトエンジニアリングの基本や、実際にオープンソースのツールで使用されている効果的なプロンプトの紹介・解説が記載されています!!
よくある「あなたはプロの〇〇〇です」といったものから、「表現を変えて複数回命令する」「AIにプロンプトを生成させ、そのプロンプトを再度AIに投げる」など、知らなったテクニックを知ることができました!
また、プロンプトのテクニック的な工夫だけではなく、プロンプトに何を書くとよいか?というプロンプトエンジニアリングの本質的な部分への言及もあり、面白かったです。
情報アーキテクチャなどの概念を知らなかったので、その点も勉強になりました。
代表的な設計原則や指標・考え方を知れる!!
この本では、AIにこういう観点で考えさせるとよい・AIの書いたコードをこの観点で評価するとよい、という文脈で、エンジニアリングにおける代表的な設計原則や指標・考え方が紹介されています。
DRY原則(Don't repeat yourself | 重複禁止)やBig-O記法、SOLID原則などを広く知ることができます。
本書の本筋ではないためサッと紹介・解説される程度ですが、こういった、良いコードを書くための代表的な考え方を知れたのは嬉しいです。AIに聞いて詳しく解説してもらいました。
開発しよう!と思える!!
この本を読んでたおかげ?せい?で、正月や次の週の土日はずっとCopilot、Claudeと個人開発してました!
AIを駆使する知識はすぐに実践にうつせると思います。本を読み、知ったことをすぐに試せるので、楽しく読書しながら開発できると思います!!
本に書かれているテクニックや考え方をフルに開発で実践できていませんが、色々試してこそだと思うので、これからもちょこちょこ読み返しつつAIと協同できればなーと思います。
各章の簡単な紹介と感想
怒られたら消します。
1章 生成AIがエンジニアリングの常識を変える
AIとどう協同していくか?が書かれた章です。
エンジニアの仕事が完全になくなる日は未だ遠く、ただ、利用しない手はないので、上手く付き合っていこう!という気持ちになれます。
2章 プロンプトで生成AIを操る
ここから実際にどんなプロンプトを投げようか?という話題に入っていきます。テンション上がります。
主に、プロンプトエンジニアリングの本筋?のような部分と、Zero-shotやロールプレイなどの基本的なテクニックについて記載されています。
なんとなく雰囲気で投げていたプロンプトを再度整理でき、良い感じです。
3章 プロンプトの実例と分析
実例とある通り、オープンソースツールが内部で利用しているプロンプトから抽出したテクニックが記載されています。
高度なことをしたい場合は参考になるかなーといった感じでした!
4章 AIツールに合わせたプロンプト戦略
自動補完型、対話型、エージェント型のAIツールと協同するテクニックについて記載されています。
対話型を中心に使用し、自動補完型・エージェント型については知識不足だったので、細かいテクニックが知れて良かったです。
流行りまくってるClineとかも触ってみたいですね。
5章 AIと協働するためのコーディングテクニック
章の名前そのままの内容です!ただ、どれも初見のテクニックだったのでとてもおもしろかったです。
AIにソースを読ませる前提で、コードやソースの内容を上手く伝えるためのテクニックがたくさん載っています!!!
AIが理解・検索しやすい命名にする、コードを適切に分割し小さいコードを保つ、などなど、AIと協同するうえで大事なことを知れます。
6章 AIの力を引き出す開発アプローチ
プロンプトのテクニックというより、こういったことをAIに検査させると良い、ということを知れます!
上述したDRYやSOLID原則などです。LLMはその性質上、こういった原則の理解に強いため、確かに!と思いました。
知らない設計原則などもあり、勉強になりました。良いコード書けるようになりたいです。
7章 生成AIの力を組織で最大限に引き出す
AIの活用を、組織として推進するにはどうすれば良いのか?が書かれています。
自分の所属している組織とのdiffを考えつつ、5章の内容を振り返ることができる内容でした!!
8章 開発におけるAI活用Tips
コーディング以外でのAIの活用方法についてまとめられています。
Mermaid等を利用したデータの引き渡し方などが特に勉強になりました。Mermaid履修しないと・・・。
9章 AI時代をリードするために
最後の章です。1章の内容を再度整理しつつ、これからのAI時代を前向きに頑張っていこう的なことが記載されています。
がんばっていこう!!!
おわりに
再掲しますが、おもしろい本だったのでおすすめです!