2025年10月21日「テスト駆動とそこから見るRDBについて」
こんにちは、こんばんは。
どうも!あるごん怪獣のおがたでっす!
今日は朝に歩いたあと、帰ってきて、テスト駆動について考えておりました。
昨日、クリーンアーキテクチャという本の有名じゃないほうの新しい本をパラパラと本屋で見てたんですよね。
そうしたら、結構ドメインの話が書かれてて、とてもよくて、欲しい!!と思いましたが、Java特に、Jakartaつまり、Java EEのほうの話でした。
ウェブ系ですね。
だから、ちょっと違うんだけど……欲しいなあ。
と思って、今日また本屋に行ってきました。
百均へ寄るついでに。
百均では、電池とライトを買いました。
腕時計の電池ですね。今まで電池を買ってなくて、直せなかったんですよね。
それで、ライトは夜とか非常時とかに使えるなと思って買いました。
で、本屋に寄りました。
またパラパラと見てました。
DB設計の本もいいよな……とか。
それで、テスト駆動について学ぶのがいいのでは!?
と思いました。
あと、買うなら、アルゴリズムの鉄則本があって、それはめっちゃ良書だなと思いました。
めっちゃわかりやすいC++のアルゴリズムの本でした。
次買うならこれだなと思いました。しかし、まだいろいろ家にあって、それを読んでないので、やめておきました。
そして、テスト駆動については、何か調べるか……。
と、帰ってきました。
そうしたら、YouTubeに講座がありました!!
C++のテストの話ですね。
メルカリに洋書でCのテストの本も売ってました。
そこらへんがいいのかなと思いました。
それか、Kindleの洋書がいいのかなと思いました。
英語を学ぶ意義ってここにあって。
外資へ行くとかじゃなくて、英語での教材が単純に多いんですよね。
そりゃそうだ。
日本なんて、小さい国ですからね。
それよりも英語のほうが多いに決まっている。
だから、エンジニアは勉強を進めたい、もっと上へ行きたい、もっと知りたいという人は、英語を学ぶべきです。
ドメイン知識レベルでいいです。あと高校英語レベル。
そのふたつの英語がわかれば、読めます。
ぼくもKindleのやつをいくつか読んでます。
読めます。ぼく程度でも。
だから、いいと思います。読んでみましょう!
今回、節約として、テスト駆動というか、テストに関しては、YouTubeで見てやってみようかなと思いました。
それをワードにまとめて、テストを、プロダクトを作ったら、ワードのを見ながらやってみようかなと。
うんうん。
というわけで、本は新たに買わないということですね。
ただ、Software Designの総集編を買うかも。何ページもあると思うので。
本屋で買います!!
明日買ってきます!!
Software Designの何がいいのか?
細かいドメイン知識がつくかなと思いました。
毎日読んでいれば、かなりいいですよね。
60冊分くらいあるので、どんなにはやくても、二ヶ月くらいはかかると思います。
結構いい買い物ですよね。
高いという意味じゃなくて、良質な買い物という意味です。
それプラス、総集編の内容もあるし。
とてもいいかなと!!
12000Pもあるそうです。
す、すげえ……。
毎日50Pだと、240?日になりますね。これはお得すぎる!!
ダウンロードもできるみたいですが、CD-ROMがあるので、それでパソコンに入れて、携帯にも移して、それで読みたいと思います。
薄い知識ですが、とてもためになると思います。
毎日一冊分でも二ヶ月ですからね。
相当ですよね。
いいね!!
グッド!!
もしかしたら買わないかもしれませんが。笑
買わないでおくか。
今までのは何だったんだ……笑
すみません。なんか、別の本をメルカリで買ったほうがいい気がしました。
そうします!!
またいつか買おうと思います。
読むかな……と思ってしまったので。
C#を勉強して、C#のテスト駆動の勉強をするという遠回りをすれば、テスト駆動は、Kindle Unlimitedで読めるんですよね。
日本語ですけど。英語でも、C++のテストをちょろっと入ってる系があるので、それを読むのもありですね!
別の本を買うぜ!!!!
何だったんだ……笑
あとブックオフからも届きますからね!
Effective系を買ったので。
それと、Postgresをちゃんと勉強したいですね。MySQLとかも。
DBですね。特に、RDBですね。
リレーショナルデータベース。
行列になった、テーブルになっててレコード&アンドカラムのDBのことです。
NoSQLはjsonみたいなもんですね。
jsonデータベースとかのことをイメージするといいです。
jsonが何なの?という方は、ちょっとAIに聞いてみてください。
知らないのは結構あれなので。
言語間共通ドキュメントのことです。
答えを書いちゃうと。
言語に関係なく、扱えるドキュメントです。
jとついているから、JavaScriptなの?というわけではないです。
PythonでもJavaでも使います。xmlとかもこういうたぐいのものです。
envファイルは、環境ファイルで、ハードコーディングしてしまうものの値や名前、パスなどを格納しておくファイルです。超重要ファイルです。
ここを攻撃されて、抜き出されたら、終わりです。
ウェブアプリ程度なら、APIキーとかを入れておく程度でいいと思います。パスとか。
Pythonで使ったりします。OSモジュールとか使って。
ウェブアプリを作ったことのあるひとなら、わかる話ですね。
ぼくはDjangoとSupabaseで一個アプリを作ったことがあります。ウェブアプリを、ですね。
C++で何でテストをしたいのか?
うーん…………。
実務っぽいから?
わからんけど。せっかくだから、テストを通したうえで、パブリックにしたいというか。
Javaに書き換えて、JUnitでテストをするというのもありですけどね。笑
なんじゃそら。
すげえ遠回りじゃねえか。笑
C++は、Visual Studioで連携してテストを――というのがあるんですけど、本で勉強してみたいなと。
C++は、マイノリティの言語なのかなと思います。
マジョリティ言語ではないですね。今の日本において。
学習者は何でPythonを学ぶのか?
これは簡単だからですね。
それ以外にないと思います。
ぼくも一時期は、Pythonを推奨しておりました。
しかし、Pythonだけではだめだなと思いました。
結論、Pythonを学んだのちに、何か、別の言語を学ぶべきだと思います。
そして、今日のトピックへ行きたいと思います。
「Supabaseの魅力」
Supabaseは知ってますか?
BaaSという、バックエンドアズアサービスというサービスの、RDBのバックエンドサービスですね。
うしろにPostgresがくっついてます。MySQLじゃないんだ。
と思ったでしょう。
まず、Firebaseを説明しましょう。
これが、さっきの話に通じてくるんですよね。
Firebaseはたしか、Googleのプラットフォームで、うしろに、NoSQLがくっついています。
あ~
つまり、RDB版のDBのBaaS=FirebaseがSupabaseなのか!!
と。
そう聞くと、すごいですよね。
データベースを持ってくれているのがSupabaseです。
Supabaseにはデータベース以外の機能がたくさんあります。
ぼくもすべては使ったことないです。
リレーショナルDBなので、それを、検索書き換えが容易にアドミニストレータ権限でできます。
ハッシュ化されたものは、アドミニストレータでも見れません。
だからセキュリティ的にもいいです。
しかし、昨今のVibe Codingというもので、よく使われており、簡単に実装できるので、エンジニアじゃない界隈の人が、よく使って、キーをリークからの、情報だだもれが多発しております。
これもさっきの話に通じますね。
まず、パスワードとかメールアドレス、個人情報は、ハッシュ化をしてください。
ソルトというものもやってください。
ぼくの結論としては、ハッシュ化する、そのあと、HTMLのJavaScript組み込みでもう一度ハッシュ化する。
二度ハッシュ化するということですね。
これが最強ですが、ちょっとミスると、ぐちゃぐちゃになるので、いちばんいいのは、ワンタイムパスワードですね。
あと、自然言語系パスワード。
ここらへんでいいと思います。
ハードコーディングしている人結構いるんじゃないでしょうか。
ぼくの出した教材も、めんどくさくて、ハードコーディングしております。
それはただの教材だからいいんですけど、本番環境だったら、まずいですよね。
だからキーがリークするんだと思います。
あとは、SQLインジェクションに対する知識が薄いとか……?
うーん…………。
まあ、ハードコーディングが多いんだと思います。
AIも指摘してくれるので、そうしたら、envに入れて、堅牢に守りましょう。
Supabaseの魅力を語るとすると、バックエンドを任せられるところですね。
あと、かっきぃ!!
YouTubeのファンでして……笑
単純に。
YouTube見たことありますか? Supabaseの。
かっこいい動画ばっかりですよ!
ジョンさんとタイラーさんが主に出てます。
ジョンさんは、昔から出てて、昔のSupabaseとは?リアルタイム性とは?
みたいな動画がサーバとトークンでやるからリアルタイム性が出るとかそういう話ですね。
それがいちばん印象にある動画です。
あとAuthですね。
Authがわかんなくて、うーん……って思ってたら、この動画があとで出るのでチェック!という動画に、コメントを書いたら、ジョンさんが動画出たあとに、これでできるよーって教えてくれたので、Thanks!と返して、見てみたら、めっちゃわかりやすかった!!
Supabaseのひとたちみんな、優しいですね!!
優秀なんだと思います。ユーザーベースの働き方ですよね。
だからOSSというものなんだと思います。
そう。魅力のもうひとつ。
みんなでつくるOSSだからこそ、拡張していく感じですね。
ワンタイムパスワードという結論だったじゃないですか。
それも最近、動画が出てて、それでリフレッシュトークンでしたっけ、それが解説されてます。
めっちゃわかりやすいです。
無料枠で結構試せるので、やってみてください。
あとは、RLSですよね。ローレベルセキュリティ。
これはスキーマを作るときに、チェック入れるところがあって、そこを入れると、結構セキュリティ的にいいというものです。
初心者は、はずして試してみたほうがいいとは思いますけども。
実際の本番環境では、入れてください。
Supabaseを学びまくれば、ペタバイトにも対応したので、AI開発とかにもできるんですよね。
AIの個人開発ですね。
ぼくはのちのち使おうと思ってます。
LLM系のチャットAIを作るとしたら。
Supabaseファンとしては、まずYouTubeを見てみてください。わからないところは、コメントで書いてみてください。
きっと、返事があるはずです。
ぼくは前から結構見てて、え!?こんな機能が追加されたの!?というときがあります。
最近ではイベントで、Supabase Selectというものがありました。
そのアーカイブを見てます。
とても面白いです。Y コンビネーターの人も出てた気がします。
面白いですよ。
あとはAIの使い方とかもたまに出ますね。Supabaseとは関係なく。
それも見てます。
それも面白いです。
え~こんな使い方あるの!?とかありますので。
とにかく、DBとして使ってみて、そのあと、YouTubeを見てみてください。
とても面白いし、とてもためになると思います。
SupabaseにDBを置いて、HTMLなどをGitHub Pagesでデプロイすれば、簡単にウェブアプリが作れます。
ただ、キーは隠さないといけないので、確かGitHubでgitignoreかGit Secretsでできたはずです。
それで行きましょう!!
結構なファンですよね……w
割と、暇なときは、Supabaseの動画を流しています。
面白いので。
DBは重要です。
要となります。ウェブアプリの。
だからスタートアップで伸びてて、OSSで、Postgresで、すごいわけないわけないじゃん!!
って話なんですよ!!
いま、きてる。
そんな感じですね。
ぼくは今後も、教材系のブログも英語ですけど、書いていきたいと思ってますので、ぜひ、Twitterもチェックしてくれよな!!
というわけで、今回はここまで!!
いや。
いろいろ買うとか買わないとか、無駄な文が多かった気がしますが、ぜひ、Supabaseをさわってみてください。セキュリティがどうのこうのはいったん置いておいて。
では!!
ばいび。




