【非エンジニアが挑む】本番SaaSのコピーからFirebase依存を剥がしてみた

「非エンジニアが挑む 本番SaaSのコピーからFirebase依存を剥がしてみた」のテキスト

前回の記事はこちらから

土台となるシステム基盤は、企画編で決めた通り、ScriptSpeakのコピーを活用する方針で進めていきます。

Tomoya

ということで今回は、機能を「削る」作業が中心の内容になります。

あとがき

以前自分自身で作り上げたWebアプリ(SaaS)なので、正直そこまで大変ではないだろうと思っていました。ところが、実際に向き合ってみると、想像していたよりずっと複雑さがあり、そこにしっかり向き合うことになりました。

もちろん自分の手を動かしてコードを書く場面はほとんどありませんが、何をVPSに残し、何を削除するのかという方針を決めるのは自分自身です。

ここは、よく考えながら選択していく必要がありました


目次

まず調査だけをCursorに依頼した理由

最初に行ったのは、今のコピーの中身がどうなっているかを、Cursorに調査・報告してもらうことでした。

Tomoya

これは自分の中でも、かなり有効な進め方だったと感じています!!

なぜなら、最初に現状をきちんと把握しておくことで、後から前後を比較できたり、何が不要かを早い段階で大まかに見極められたりして、無駄な手間や混乱を防げるからです。


調査結果を見て驚いたこと

①調査依頼のプロンプトと②VPS移行調査レポートの現状一覧表を左右で比較した構成
Firebase構成のプロジェクトをVPSへ移行するために行った、調査依頼内容と報告レポートの対比図です。
Tomoya

調査結果を見て、想像していた以上にFirebase/GCPに大きく依存した作りになっていたことに驚きました。

同時に、それだけFirebaseという仕組みが便利で、扱いやすいサービスなのだということも実感しました。課金処理についても、FirebaseのExtensionsという仕組みを使ってStripeと連携させることで、大幅に手間を減らせるようになっていて、この点にもFirebaseのすごさを感じました。

そのすごさを感じつつも、今回のテーマにはそこまで高度な機能は必要ないと判断し、思い切って削除していく方針を決めました。

ここは少し悩ましいポイントでしたが、「今回のテーマに照らして本当に必要かどうか」を基準に、1つずつ判断していくことにしました。


[PR]以下のリンクから月額プランを契約すると、初月は半額で利用できます。コストが心配な方でも、最初の1か月は最低10ドルから試せるので、気軽に始めやすいと思います(解約も簡単にできます)。


決めなければならなかったこと

「決めなければならなかったこと」として認証・履歴・UIの決定事項と理由を並べた図
開発時に判断が必要だった「認証」「音声・チャット履歴」「UI/UX」の方針と決定理由の一覧です。
Tomoya

大きく3つ、決断が必要な場面がありました。

①:「認証」について

基本的に自分しか使わないツールなので、思い切って削除することにしました。

もし将来的に製品として世に出すタイミングが来たら、その時にあらためて機能を足せばいいと考えています。

②:「作成した音声データやチャット履歴」
Tomoya

次に「作成した音声データやチャット履歴」をどう扱うかは、少し迷いました。

履歴を残さないとなると、一度きりのやり取りになり、同じ出力を後から振り返ることはほぼできなくなります。かといって履歴を残すとなると、データベースを用意する必要が出てきて、コストや手間も増えていきます。

悩んだ末、「必要であれば残せる仕組み」があれば十分で、すべてを自動的に残しておきたいわけではない、という結論に至りました。

そこで、生成した音声はその場でダウンロードできるようにし、それ以外はその場限りで使う形にすることにしました。これによって、履歴管理用のデータベースが不要になり、保守・運用の手間も減らせます。

③:「UI/UX」について
Tomoya

最後に「UI/UX」については、画面をゼロから作り直すか、既存のものを流用するかで悩みました。

結果的には、「デザインは活かしつつ、機能だけを削ぎ落とす」という方針で進めることにしました。

せっかく土台としてコピーを使っているのに、根本から作り直してしまっては意味がありません。VPSでやりたいテーマにフォーカスして、不要な部分だけを削る方が、手間が少なくて済むと考えたからです。もしゼロから作るのであれば、そもそもコピーを使う必要はありませんし、逆に既存のものをそのまま使おうとすると複雑さが残ってしまいます。

既存を改良し、自分のテーマに寄せていくのが、今回は一番バランスの良いやり方だと判断しました。


7ステップに分けて、段階的に消していく

実際の作業自体はComposer 2.5に任せますが、指示を出すのは自分です。なので、一気に進めるのではなく、段階的に1つずつ機能を削除し、その都度確認する、というルールで指示を出していきました。

プロジェクト簡略化のため認証やDB廃止など方針を指示した開発プロンプト画面
プロジェクト簡略化に向けて、ログイン廃止やFirebase不使用などの詳細方針を指示している画面です。
ステップビルド備考
Step 1課金削除
Step 2認証削除
Step 3Firestore 削除
Step 4VOICEVOX 一本化
Step 5エディタ簡略化
Step 6Firebase 設定削除
Step 7パッケージ整理 + 単体テスト 32/32
ステップごとに行うメリットについての思った事

こうすることで、もしエラーが出たとしても、どこで詰まったのかが明確になり、原因を探す手間やトークンの消費も抑えられると考えています。

これはどんな仕事や研究にも通じることだと思いますが、各ステップでその都度確認することで、エラーや失敗が起きても、原因を調べる範囲が狭くなり、集中して考えやすく、仮説も立てやすくなります。

AI駆動の開発であっても、この基本は変わらないと思っています。ユーザー側からすれば、ただ見守っているだけなので、トークンの消費量までは意識しづらいかもしれませんが、長く・多く使い続けるためには、地味に重要なポイントだと感じています。


数字で見る「軽くなった」実感

最終的に、エディタは約1,900行から約280行になりました。npmのパッケージも215個減り、単体テストは32件すべて成功しています。

Tomoya

これだけ削減できたことで、メモリの消費量も抑えられるはずなので、素直に良かったと感じています。

こうして目に見える数字として「そぎ落とせた」ことが確認できたのは、軽くなった証拠でもあり、大きなリファクタリングをやり遂げられたことに、自分でも少し驚きました。

「数字で見る軽くなった実感」として1,900行から280行へのコード削減や215パッケージ削除等の成果を示す画面
コード行数や削除パッケージ数、テスト成功結果など、軽量化の具体的成果を数値で確認できます。

感じたこと・気づき

今回、AIを使って調査からそぎ落としの作業までを一通り行ってみて、改めてAIのすごさを実感しました。

正直、コピーを改良するために費やした作業量を振り返ると、下手をすると最初から作り直した方が速かったのでは、とすら思う場面もありました。それでも、今回「既存を改良する」という選択肢を取れたのは、AIがあったからこそだと思っています。

そして、段階を分けて進めたことで、終始安心してAIに作業を任せられました。

今後、コピーを土台にして既存システムを改良していく機会があれば、同じやり方が再現できるという手応えも得られました。

「調査をして、選択をして、段階的に任せていく」

このプロセスは、いろんな場面で応用できると強く感じています。ただ真似をするのではなく、自分がやりたいテーマや方向性に向けて既存のシステムを活用することで、時間を短縮しつつ、より多くのプロダクトを作り、より集中すべきところに力を注げるのだと思います。

Tomoya

これが元になっているサービスです!

※自分が運営しているサービスです


まとめ・次回予告

Tomoya

こうしてそぎ落とされたシステムを、次はいよいよ自分のテーマに沿って改良していきます。

前回の記事にあった通り、「入力→頭(AI)→音声生成→出力」という流れに沿って組み込んでいく予定です。

次回予告「Gemini 実装編」のテキストとサーバーやタブレットをあしらったデザイン

GeminiというAIをVPSに実装するのは初めての経験なので、とても楽しみにしています。VOICEVOXがVPS上でどう動くのかも、実際に見てみるのが楽しみです。

以下のリンクから月額プランを契約すると、初月は半額で利用できます。コストが心配な方でも、最初の1か月は最低10ドルから試せるので、気軽に始めやすいと思います(解約も簡単にできます)。

他のVPSは「さくらインターネットから!」

前回のおすすめ記事はこちらから

VPSを使った24時間稼働システムを作成した記事はこちら

「非エンジニアが挑む 本番SaaSのコピーからFirebase依存を剥がしてみた」のテキスト

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

始めまして。このブログを運営するTomoyaです。
未経験個人開発者。AI×個人開発(Vibe Cording)で学習して参入してくれる人が増えて広がっていくと良いなと思って始めました。

実際に作成→デプロイ(公開)→運営を行ってそれについての問題や疑問を記録していきます。
また行っていく上で内容(セキュリティ・制限など)にもこだわっていきたいなと思っています。

コメント

コメント一覧 (1件)

コメントする


目次