ついに「生成AIコーディング」の本が出た!
今週9/17(木)、技術評論社より以下の書籍が発売予定です。
コード×AI
ーソフトウェア開発者のための生成AI実践入門
服部佑樹 著
大変ありがたいことに、こちらの書籍を発売前にご恵贈(献本)いただきましたので、簡単ですが宇宙最速で書評をアウトプットさせていただきます!
この本について
最近はGitHub Copilotをはじめ、プログラミングを支援する生成AIサービスが普及してきました。
本書はGitHub JapanにてCustomer Success Architectとして活躍されている服部さんが執筆された書籍ということで、発売前から話題になっています。
本書の紹介文(公式サイトより):
GitHub CopilotやChatGPTなど生成AIによるコード生成やコードリーデイング支援が流行っています。これらは破壊的なイノベーションで,いずれはすべての開発者や企業が導入するものです。
ただ,現状では生成AI×コードを推進・導入している企業は多くはなく,さらに活用法については手探りの状況です。
本書では生成AI×コードでなにができるか,どうすればよりよく活用できるかを解説します。しっかりと活用していくための知識と,現場で活用できる実践が身に付く必携の一冊です。
本書の特徴
GitHubの方が書かれた書籍ではありますが、本書のポイントはGitHub Copilotの具体的な使い方などに終始した本ではないというところです。
「はじめに」にも書かれているのですが、表面的なテクニックではなく「ソフトウェア開発者がAIと協働するうえで身につけておくべき本質的なスキル」に重きを置いています。
製品がアップデートされても廃れにくい「アプローチ」の解説と、具体的な「テクニック」の紹介がバランスよく記載されています。また、後者は目次でラベル付けされており、多くがGitHub Copilotに限らない複数の製品で活用できる汎用的なテクニックとなっているのも嬉しいポイントです。
誰が読むべき?
メインターゲットは「プログラマー」だと考えます。ただしアプリケーション開発者に限らず、IaCをはじめとしたコーディングを活用するインフラエンジニアも含みます。
また、コーディングだけではなくドキュメンテーション、要件定義、設計、レビューにおいても生成AIを活用するコツが紹介されているため、ソフトウェア開発に携わる多くの人が手に取る価値があるでしょう。
私が興味深かった点を紹介
プロンプトエンジニアリングは重要なのか?
本書では「(狭義の)プロンプトエンジニアリングの具体的なテクニック自体はあまり重要ではない」旨が繰り返し述べられています。
巷では様々な手法が紹介され話題になりがちですが、これらを頑張ってたくさん覚えても、期待するほどAIの出力が劇的に改善されることはなかったり、そもそも開発タスクは「一点もの」の対応が多い傾向にあります。
AIの出力をみながらプロンプトを調整したり、そもそもプロンプト自体をAIに書かせたりといった柔軟な対応スキルのほうが重要ということですね。
生成AIでエンジニアの仕事はなくなる?
最近のAIブームでgkbrしているエンジニアの皆さんも多いのではないでしょうか?
本書では「エンジニアの仕事は消えない」と語られています。生成AIがいい感じのコードやアプリケーションを生成できても、じゃあそれをノールックでそのまま商用稼働できるか?中身を正しく理解し、運用し、改善するためには結局人間の高度なスキルが必要ですよね。
例えばクラウドの出現で「インフラエンジニア不要論」が囁かれましたが、今や「クラウドエンジニア」をはじめとする新たなスキルを持った人々が活躍しています。このように新技術を柔軟に取り込み、新しいスキルを獲得して環境に適応していける人こそ、どんな時代でも仕事に困らないエンジニアと言えそうです。
内製化すればAIを最大限に活用できる
AIを活用したコーディングでは、自社のコードリポジトリなどをAIに読み込ませることで、より的確なコード生成が可能になることがあります。
この観点で「内製開発」にメリットがあります。他社とのしがらみのあるコードと異なり、内製開発を行なっていればコードベースをAIに参照させてコード提案の質を向上させることができます。また、組織の中でコードを共有する「インナーソース」を進めればこのメリットがさらに最大化します。
本書では AI活用の価値は決してコストカットだけではない ことが指摘されています。上記の取り組みによって社内の技術資産を共有することで、中長期的に組織がイノベーションを起こす能力の醸成に繋がります。
AIにやさしいコードを書くコツ
本書では具体的なテクニックとして「AIとの協働に適したコーディングテクニック」も紹介されているのですが、例えばコードを適切に分割する、一貫性のある命名を行う等、結果的に「これって人間にとっても読みやすいコードなのでは?」といった内容になっていたのが印象的でした。
普段から横着せず、可読性の高い綺麗なコードを書くクセをつけていれば、結果的に人間もAIも理解しやすく、トータルの開発速度が上がるということではないでしょうか。
おまけ
実は、弊社KAGでもインナーソースに取り組んでおり、社内でコード資産の共有を行うだけでは飽き足らず、テーマソングまで作ってしまうメンバーが現れました。
共創未来インナーソースマン feat. InnerSource Commonsコミュニティ
もしご興味あれば上記YouTubeチャンネルを覗いてみてください。
「音KAG(/)部」(おんがくぶ)では、他にも愉快な楽曲をいくつも制作しております。メンバーの中島が下記noteにて取り組みを紹介しています。