こんにちは、グロービスで「GLOBIS 学び放題」のフロントエンドエンジニアをしているAgataです。
今回は、フロントエンドエンジニアの私がAIを活用してRuby on Railsでバックエンド開発に挑戦した経験について共有したいと思います。
はじめに:自分のスキルセット
フロントエンドエンジニアとして6~7年間働いて、何か物足りないと感じるようになりました。
過去にバックエンド技術に触れる機会はありました:
- 最初のアルバイトではデータベースあたりの作業
- 大学ではJava、C言語、アセンブラなどで複数プログラムの実装
- 遊びでNode.jsでアプリ開発
が、実務経験は特になかったんです。
職場で「チャレンジしたい!」と発言して、プロダクション環境で動くRailsアプリケーションの開発機会を待っていました。
転機:AI開発ツールの導入
そんな中、チームにAIツール(Claude Code)が導入されました。
導入後の変化は劇的で、開発速度が体感で50%以上に向上。この効率化により、エンジニアが新しいスキルを身につけるための時間を作れました。
そして私にも、バックエンド開発に挑戦するチャンスが訪れました。
実際の開発プロセス
先輩エンジニアのサポートを受けながら、以下のプロセスで開発を進めました:
1. 毎日の集中セッション
先輩エンジニアと毎日数時間のペアプロセッション。じっくりと一つ一つタスクを進めました。
2. AIと一緒に実装計画作成
タスクごとにAIツールを使って実装計画を作成。具体的な手順とコードの方針をやってもらって、マークダウンファイルに落とし込む。
なぜマークダウンにするのか?
AIが提案した実装計画をそのまま使うのではなく、一度マークダウン形式で整理することで:
- 実装前に全体像を把握でき、間違った方向で実装を進めて時間を無駄にすることを防げる
- 計画段階で修正や調整がしやすい
- 他の開発者が理解しやすく、実装よりの前段階でレビューをもらえる
- プロジェクトのドキュメントとしても活用できる
このステップがあることで、最初から間違っているかもしれない詳細な実装に深入りする前に、他の開発者と計画された解決策について話し合える機会が生まれます。
3. レビューと修正
作成した計画を先輩エンジニアとレビュー。分かりにくい部分の説明を受け、必要に応じて計画を修正。
4. 実装
AIツールに実装を依頼。生成されたコードはベースとしてさらにレビュー。
5. 動作確認とデバッグ
実際に動かしてみて、必要に応じてAIまたは手動で修正。
6. テストの追加
テストコードもAIに生成してもらい、失敗したテストは追加のコンテキストを与えて修正。時には手動での調整も必要でした。
7. コードレビュー
最後に他のエンジニアにレビューをお願いし、フィードバックを反映。
効率化のコツ: AIが計画作成や実装をしている間に、次のタスクのプロンプトを準備。この並行作業により、待ち時間をゼロにして効率を最大化しました。
振り返り
良かったこと
1. 心理的ハードルの解消
最大の効果は「最初の一歩」を踏み出しやすくなったこと。プロジェクトの締切を守りながら新しい技術領域に挑戦するのは難しいですが、AIのサポートにより開発速度を維持しながら学習できました。
2. 高速な学習サイクル
分からない部分があれば、AIに質問:
- 特定のコードの詳細な説明
- プロジェクト全体の構造
- データベース設計
- マイグレーションの実行方法
などなど。これらの疑問をリアルタイムで解決できることで、学習速度が大幅に向上しました。
注意した方がいいこと
1. 経験の重要さ
AIの助けで「動くコード」は書けますが、「なぜそう書くのか」という深い理解には時間が必要です。真の理解は経験を通じてしか得られません。これは飛ばすことのできないプロセスです。
2. 人間の指導の重要さ
数週間毎日長い時間先輩の指導で実装を進めることで、デバグ方法やよく使われているコマンドなどを知ることを拝見できました。自動的に動いているAIを見ても、そこまで勉強にならなかったと思います。
Claude Codeについて感想
今回の開発では、Claude Code Max $100プランを使って、下記の通り感想です:
良かったこと
- プロジェクト全体のコンテキストを理解:複数のファイルにまたがる変更も、プロジェクト構造を把握した上で提案してくれる
- ターミナルでプロンプトを書くだけ:AIがファイルを直接変更してくれるので、実装が速い、手動作業が減る
注意した方がいいこと
- コンテキストを絞るのは重要です:大きなプロジェクトでは、具体的なファイルパスを指定してコンテキストを絞ることが重要です。コンテキストが広すぎると、AIの処理時間が長くなってしまいます
-
シンプルなコマンドは直接実行した方が速いケースもあります:Claude Codeを通すよりもターミナルで直接実行した方が速いケースがあります(具体的な例:
rubocop -A
)。AIツールと従来の方法を使い分けることで、より効率的に開発を進められます
おまけ:漢字検定が役に立った話
外国人の私ですが、実装計画が日本語で書かれていたので、漢字検定の勉強をしていて良かったです...!技術用語の漢字もスラスラ読めました!
まとめ
AI強力なツールと、先輩エンジニアのサポートにより、実務経験ゼロからRailsバックエンド開発に挑戦できました。
AIは新しい挑戦へのハードルを大きく下げてくれますが、それでも人間の理解と経験は不可欠です。AIと人間、それぞれの強みを活かした開発スタイルが、すでにスタンダードになっているのではないでしょうか。
プログラミングに興味がある方、ぜひAIツールを活用して新しい領域に挑戦してみてください。最初の一歩が、思っているより簡単に踏み出せるかもしれません。