ChatGPTの登場以来、あらゆる分野において変革が起きているかと思いますが、開発分野は特にその影響が色濃く出ているのではないでしょうか?個人的にも開発と生成AIはとても相性が良く、活用のしようが無限にあると感じています。
ChatGPTのサービス開始以来、私も開発に活用しまくっていますが、このサービスを使い始めてから格段に開発効率が上がっています。みなさんそれぞれのシーンで活用していることとは思いますが、今回は私がどんな風に開発内でChatGPTを使用しているのか紹介しようと思います。
実装したい機能についての指示をあらかじめChatGPTに投げておき、私がマークアップやCSSのコーディングをしている間に、ロジック面をChatGPTに実装してもらいます。もちろん完璧な答えが出てこないことも多いですし、品質チェックも必要なので最後に自分で見直しや調整はしますが、実質二人で同時に作業できているのと同じ状態なので、開発効率は格段に上がります。
なぜビューではなくロジックを任せるのか?という理由ですが、ビューについてはやはりデザインデータを見ながら実装していきますし、デザインデータをAIに投げてしまうのは機密情報的にも色々アウトだったりするためです。もちろんロジック面での開発仕様を投げる際も、情報管理セキュリティ面は気にしています。
開発効率や保守性を向上させるためには、ファイルやコードを適切に分割して管理する必要があります。しかしそうした設計的な面を考えるのもそれなりに時間がかかりますよね。
そこで私は最近、始めに一つのファイル(functions.phpなど)にガッと殴り書きをして、それをChatGPTに投げ、適切なファイルやディレクトリ、関数やクラスなどに分割してもらっています。これだけでも開発スピードは格段に上がります。
他の開発者が見たときに内容がパッと伝わるようにするために、コードに適切なコメントを添えることはとても重要です。しかしコメントの内容や、コメントを付けるべき箇所を考えることもまあまあ手間です。コメントまみれのコードは逆に可読性を損なうため、このバランスというのはしっかりと考慮しなければなりません。
なので私はこの作業もChatGPTに任せることにしました。初めはほとんどコメントがないコードを書き、それをまるっとChatGPTに渡してコメントを付けてもらいます。若干意味がよくわからない謎コメントが付けられることもそれなりにあるので、最後は自分で調整しますが、これもやはり開発スピードを格段に上げてくれます。
開発全体の効率や保守性を高めるために重要なものとして、リファクタリングも挙げられます。コードを適切な姿にしてあげることによって、各コンポーネントは汎用性を帯び、改修の際には触れるべき箇所も減り、予期せぬ事故の発生も防げます。
しかし人力でやろうとすると中々難しく、時間がかかるのがこのリファクタリング。リファクタリングの前後で本当に振る舞いは変わらないのか?リファクタリングした結果新たなエラーが出たりしては元も子もありません。
色々と負担が大きいがやっておきたいリファクタリング、ChatGPTに任せてしまいました。自分でやるとあんなに時間がかかっていたこの作業も、ChatGPTの手にかかれば一瞬です。
ただ気を付けるべきことは、適切なプロンプトでもってきちんと指示を与えなければ、機能が削られてしまったり、予期せぬ振る舞いをしてしまうことです。この注意事項についてはリファクタリングに限らず、AIを扱う際全般に言えることですが、この作業を任せる際はなおのこと気を付けましょう。もちろん最後の見直しは自分でやります。何か問題が発生した際、「その箇所はChatGPTが書いたので私は悪くないです」なんて言い訳は通用しませんからね。
今回は私が開発の中でどのようにChatGPTを活用しているかの紹介でした。
各章で「最後は自分で見直しをする」ということを書いていますが、ChatGPTの出力を見直すことは結構学びにもなります。自分では思いつかないような新たな視点を獲得するために、ChatGPTを使用することは大変良い手段です。仕事が効率化され、新たな学びも得られる。至れり尽くせりですね。皆さんもぜひChatGPTを活用してみてください。