はじめに
みなさん、生成AIを活用していますか?
最近、私は学習用の「メンター兼レビュワー」として生成AIを活用し始めてから、コーディング力・設計力が飛躍的に向上した実感があります。
生成AIの活用方法に悩んでいるジュニアエンジニアの方や、AIに頼り切らず「自分の力」を底上げしたいと考えている方に向けて、私の活用術を共有します。
Cursorに「コードを書かせない」という選択
Cursorを利用していると聞くと、多くの人は以下の機能を連想するはずです。
- ソースコードの自動生成
- ドキュメントの自動整備
ですが、私はこれらの機能をほぼ使っていません。
あえて「生成AIにコードを書かせない」という制約を設けることで、Cursorを最も身近な相談役にすることができます。
成長を加速させる「Project Rules」の設定
Cursorではプロジェクトごとに独自のルールを設定できます。私はこの機能を使い、自分を甘やかさないための「メンター」と「レビュワー」の2つの役割を定義しました。
全貌を記すには量が多いため、クリティカルなもののみを厳選して記載します。
1. メンターとしてのルール
AIが勝手にコードを書き換えるのを防ぎ、思考プロセスを促すルールです。
- 直接ソースコードを編集しない
- アドバイスを求められたら、特定ディレクトリにマークダウン形式で回答を出力すること
- 中規模以上の開発を想定し、密結合を避け、テストのしやすい構造を提案すること
- 提案理由を「型安全・パフォーマンス・保守性」の観点で解説すること
2. レビュワーとしてのルール
設計思想やセキュリティの観点から、自分のコードを厳しくチェックさせるルールです。
- 直接ソースコードを編集しない
- レビューを求められたら、特定ディレクトリにマークダウン形式で結果を出力すること
-
レイヤードアーキテクチャの遵守
- 依存関係が
presentation → usecase → domain → infrastructureになっているか
- 依存関係が
-
責務のチェック
- 層の責務違反(ドメインロジックがプレゼンテーション層に漏れていないか等)の確認
-
セキュリティ・堅牢性の検証
- 環境変数の漏洩、SQLインジェクション、XSS、認証不備のチェック
なぜ「直接出力」を禁止したのか?
この運用で最もこだわったポイントは、**「ソースコードを直接出力(適用)させない」**という点です。
正直、今の生成AIに任せれば、動くコードは一瞬で出来上がります。しかし、現在の私にはそれが「過剰スペック」でした。
内容を完全に理解できていないコードが大量に生成されても、それが正しいのか判断できませんし、何より**「自分の経験値」として蓄積されない**という焦りがありました。
「認知負荷」のオーバーフローを防ぐ
実践して気づいたのは、生成AIを利用しているとソースコード一行あたりの「向き合う時間」が圧倒的に少なくなってしまうということです。
私の脳が一度に深く理解できる情報量には限りがあります。それなのに、AIが私の処理能力を超えた「大量のソースコード」を出力し、それをただリーディングしていく作業は、学習としての意味をほとんど成しませんでした。
向き合う時間が極端に短いまま大量のコードを追おうとすると、ジュニアレベルの私には**認知負荷が過剰にかかってしまい、かえって学習効率を下げていました。結果として、プログラミング特有の「イディオム(慣用句的な書き方)」を自分の血肉にするのにも苦労することになりました。
「写経」という非効率が生む価値
AIが出力したマークダウンのアドバイスを見ながら、自分の手でコードを書く。一見遠回りに見えますが、この「写経」の時間こそが重要でした。
- 「なぜこの変数名にしたのか?」
- 「この処理、さっきも似たようなのを書いたけど共通化すべきか?」
- 「このライブラリの使い方は、プロジェクトの他の箇所と整合性が取れているか?」
このように一歩立ち止まって考えることで、知識が点ではなく「線」として繋がっていく感覚がありました。
コラム:細かい質問をするときはどうしてる?
アドバイスをもとに実装していくと、
- 「これはどういうことだろう?」
- 「このソースコードはこっちのファイルにおいた方が良くない?」
のような疑問が湧くことがあります。
そういった場合、私はCursorのAskモードを活用しています。
このモードを使えばソースコードを勝手に編集されることはないため、純粋に内容理解に努めることができます。
まとめ
生成AIは、ジュニアエンジニアにとって「劇薬」です。少し気を抜けば、何も考えずに「楽」ができてしまうツールだからです。
しかし、使い手の意志ひとつで、自身の成長を何倍にも加速させてくれる最高のパートナーになります。
「AIに書かせる」のではなく「AIに教わる」。
この小さな意識の変化が、数年後のエンジニアとしての地力に大きな差を生むと信じています。