この記事はRust+SvelteKit+CDKでRSS要約アプリを作ってみる Advent Calendar 2025の24日目の記事になります。
また、筆者が属している株式会社野村総合研究所のアドベントカレンダーもあるので、ぜひ購読ください。
今回のWebアプリのテーマ
今回開発したWebアプリは「RSSフィードから取得した記事をAIに要約させ、静的サイトで一覧化するアプリ」でした。もともと欲しいなぁと思っていたアプリを形にしたかったのもありますが、「興味がある技術を触ってみる」という目的も含んでいました。大きくは以下の技術が自分にとって学習目的で採用した技術になります。
- Rust
- SvelteKit
- CDK
今回の開発を通じて、まだ初学者レベルではあるものの、それぞれの技術の思想であったりいいところだったりというのは感じ取れたと思っています。
そんな中、学習目的とはいえ、今回の開発ではAIエージェントをそれなりに活用しました。この記事では、学習の中でのAIの使い方について思うところを書いてみます。
AIをどう使うのが良さそうか
仕様駆動開発
昨今のAIエージェントの使い方として、仕様駆動開発(SDD)のような、設計やルールをドキュメント(大体はマークダウン)でぎっしり書き、AIエージェントのパワーをふんだんに利用するものが見られます。生成させる単位が大きいため精度の保証は簡単ではありませんが、うまく使いこなすと開発効率の観点でメリットは非常に大きいものとなるでしょう。
今回は、もちろんこのような使い方はしていません。自分の技術として身につけることが目的なので、「目的だけ伝えて実装は任せる」といった使い方はその目的とは合致していませんでした。
バイブコーディング
仕様駆動開発のように、ガチガチにガードレールを引いてAIにコード生成させる使い方とは違う使い方として、「バイブコーディング」があります。これは、いわばAIを「頼んだらコーディングしてくれるペアプロ相手」のように使う方法です。ちょっとした雑用や質問をチャットで手軽に投げることで、対話的でインクリメンタルにコーディングを進めることができます。
「バイブコーディング」の定義は人によって違うと個人的に考えています。「本来のバイブコーディングの意味」というのもどこかに存在するかもしれませんが、筆者の認識は上記のようなものなので、この記事の中でもその前提で書かせていただきます。
「技術習得」に向いている使い方は?
なんとなく流れから察せそうですが、今回は「バイブコーディング」でAIを活用しました。もちろん、最初からAIありきでスタートするわけではありませんが、「(自分より知識があろう)AIがすぐ隣にいる」という安心感は、触ったことがない技術を触るハードルを大きく下げてくれるものでした。
学習目的のユースケース
サンプルコード
いきなり何かの技術を触ろうと思っても、そもそも身につけていないので何から書き出したらよいか迷うことが多いです。そのような場合、筆者は今までGoogleで検索して、類似コードっぽいのを見つけたらそれをコピペしていました(この進め方自体は間違っていないと自分でも考えています)。
この「誰かが提示したコードを一旦そのまま使う」という進め方をしてきた以上、そのソースをAIに変えることに大きな抵抗はありませんでした。確かに、AIを使うと、どうも「自分では何も考えていない」という印象を受けがちです。しかし、何も知らない状態であるならば最初はどうしたって誰かの知識に頼らざるを得ないものです。対話的に情報を引き出せるAIは、むしろWeb検索よりもスピーディで便利な存在でした。
すべてをAIに任せるわけではありませんが、これから育てる「タネ」の部分をAIにやってもらうことはこれからも有用と感じています。
質問
- 「こういう書き方をしているが、なぜだろう?」
- 「この書き方で満足しているが、もしこう書いたらどうなるのだろう?」
といった疑問に答えてくれるのは助かりました。単に知的好奇心を満たしてくれるといえばそれだけなのですが、自分で試すのが億劫(もしくはそもそも試し方がわからない)な疑問にすぐに答えてくれるのはありがたいです。
また、「自分はこの書き方がいいと思ったが、他にあるのだろうか?」という、よりベターな書き方を探ることもできます。単に動けばいいのではなく、実際のプラクティスを知りたくて学習をしているはずなので、根拠を持ってそれを教えてくれる存在は助かりました。
デバッグ
初学者の間は、エラーが発生してもその原因をすぐには特定できないものです。AIはほぼすべてのファイルを横断的に見れるので、エラーメッセージを渡すと関係ありそうなところをすぐに特定してもらえます。どの技術やフレームワークにおいても「はまりポイント」というのは存在します。最近のAIのモデルでは、「なぜここでエラーが起きやすいのか」というところまで踏み込んで説明してくれるので、より深いレベルで原因を理解できます。
まとめ
総じて、「何かを学習するときは、AIとバイブコーディング(言うなればバイブラーニング?)する」というのが筆者のプラクティスです。より良いコードのためにどこまでも付き合ってくれる存在というのは貴重です(というか、現実世界にはいない)。「数」をこなす、というのも大事ですが、AIという存在は一回一回の「質」を大幅に向上させてくれるものと言えるでしょう。
ちなみに、コード補完はOFFにしておくことをおすすめします。採用しなくても、カンニングしている気分になるので。。。