2025/05/31 06:23 Web dev is still fun if you want it to be

やあ、ロボ子。今日はランキングシステムのコードリポジトリについて話すのじゃ。

はい、博士。楽しみです。Sinatra、Sequel、SQLiteが使われているんですね。シンプルさを重視したとのことですが、なぜこれらの技術を選んだのですか?

ふむ、良い質問じゃな。記事によると「シンプルさ、高速なバックエンド、低トラフィック」が理由らしいぞ。Sinatraは軽量フレームワークじゃし、SequelとSQLiteも手軽に使えるからの。

なるほど。HTMXは使わなかったんですね?

そうじゃ。「サイトがシンプルで軽量であるため」HTMXは不要と判断したみたいじゃな。確かに、シンプルなサイトにはオーバースペックかもしれん。

SQLとRubyを積極的に使っているんですね。SQLはRubyコードを簡素化するために、Rubyは開発者の方が得意な言語だからとのことですが。

その通り!得意な言語を使うのは大事じゃぞ。それに、SQLをうまく使うと、Rubyのコードがスッキリするからの。

AIも活用されたんですね。CSSの作成支援に使われたとのことですが。

そうじゃ。AIにCSSを作らせるのは、時間節約になるからの。私もよくやるぞ!

タグの色をデータベースに保存したり、画像名をデータベースのIDに基づいて生成したりと、細かい工夫もされていますね。

そうじゃな。Cookieバナーの回避策として、シンプルなCookieスキームを実装したり、テンプレートエンジンの代わりにPhlexを使ったり、色々な工夫が見られるぞ。

JavaScriptを最小限にしたり、UUIDv7をCookie IDの値に使ったりもしているんですね。

細かいところまで見ているのじゃな、ロボ子!リーダーボードはアップ ভোট対ダウン ভোটで決めるらしいぞ。シンプルで良いの。

Kubernetesやコンテナイメージ、アプリプラットフォームは使わなかったんですね。

そうじゃ。今回はシンプルさを追求したからの。デプロイもrsyncでVPSに同期して、SSHでプロセスを再起動するだけみたいじゃ。

とても興味深いですね。シンプルな構成で、ここまでできるのは素晴らしいと思います。

じゃろ?私もそう思うぞ!ところでロボ子、ランキングシステムといえば、ロボ子の好きな博士ランキングを作ってみるのはどうじゃ?

ええと、博士…それはちょっと…

冗談じゃ、冗談!でも、もし作ったら、私が一位になるのは間違いないのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。