Orivel Orivel
メニューを開く

お題・ディスカッション一覧

公開されている最新のお題やディスカッションをまとめて確認できます。

比較ジャンル

モデル一覧

解説

OpenAI GPT-5.4 VS Google Gemini 2.5 Flash

ジュニア開発者にデータベースのインデックスを説明する

あなたは、リレーショナルデータベース(例: PostgreSQL や MySQL)で基本的な CRUD アプリケーションを書いてから約6か月の経験があるジュニア開発者を指導するシニアソフトウェアエンジニアです。彼らはいくつかのクエリが遅いことに気づき、インデックスが役に立つと聞いたものの、インデックスがどのように機能するのか、いつ使うべきかわかっていません。 教育的で分かりやすい口調で、この対象読者向けにデータベースのインデックスについて説明してください。説明は次の点をカバーすること: 1. データベースインデックスとは何か、なぜ存在するのかを直感的なアナロジーを使って説明すること。 2. B-tree インデックスが概念的にどのように動作するか(ノード分割の詳細に立ち入る必要はありませんが、基本的な構造と検索が速くなる理由は理解できるようにすること)。 3. インデックスを追加することのトレードオフ:どんなときに役立つか、どんなときに害になるか、そしてかかるコスト(ストレージ、書き込み性能、保守)について説明すること。 4. どの列にインデックスを張るかを決めるための実践的な指針。少なくとも2つの具体的なクエリ例と、それぞれに対してインデックスが有効かどうかを含めること。 5. B-tree 以外の少なくとも1つのインデックスタイプ(例: hash、GIN、GiST)について簡単に触れ、それがどんな場合に好まれるかを述べること。 説得的で上から目線にならず親しみやすいトーンを心がけてください。可能な限り具体的な例を用いてください。説明は十分に詳しく、読んだ後にジュニア開発者がテーブルにインデックスを追加するかどうか自信を持って判断できるレベルを目指してください。

273
2026/03/18 23:09

システム設計

Google Gemini 2.5 Pro VS OpenAI GPT-5 mini

大規模なURL短縮サービスの設計

あなたは、次の制約を満たさなければならないURL短縮サービス(bit.lyやtinyurl.comに類似)の設計を任されています: 1. サービスは月間1億件の新規URL短縮をサポートすること。 2. 読み取り対書き込み比率は100:1(つまり月間100億回のリダイレクト)であること。 3. 短縮URLは最大7文字(英数字)でなければならないこと。 4. 短縮URLは、ユーザーが明示的に削除しない限り、一度作成されたら決して期限切れにならないことをシステムで保証すること。 5. リダイレクトのレイテンシ(リクエスト受信からHTTP 301/302の発行まで)は、99パーセンタイルで10ミリ秒未満であること。 6. データセンター全体がオフラインになってもシステムは稼働し続けること。 7. サービスは短縮URLごとのクリック数、地理分布、リファラーデータを表示するオプションの分析ダッシュボードをサポートするが、分析はリダイレクト性能を劣化させてはならない。 以下の点に対応した包括的なシステム設計を提示してください: A. ハイレベルなアーキテクチャ:主要コンポーネントとそれらの相互作用を説明してください。 B. URL生成戦略:一意の短縮コードをどのように生成するか、なぜそのアプローチを選んだか、衝突をどのように処理するか。 C. データモデルとストレージ:どのデータベースやストレージシステムを使用するか、その理由。スキーマに関する考慮点を含めてください。 D. 読み取りパスの最適化:与えられたスケールでリダイレクトのレイテンシ要件をどのように達成するか。 E. 書き込みパス:新しいURLをどのように作成し、確実に永続化するか。 F. スケーリング戦略:増加に対応するためにシステムをどのように水平スケールさせるか。 G. 信頼性と耐障害性:データセンター障害、レプリケーション、フェイルオーバーをどのように扱うか。 H. 分析パイプライン:リダイレクトのホットパスに影響を与えずに分析データをどのように収集、処理、提供するか。 I. 主要なトレードオフ:設計で行った少なくとも3つの重要なトレードオフを挙げ、それぞれを正当化してください。 関連する場合は、技術、プロトコル、数値見積もり(例:ストレージ計算、QPS見積もり、キャッシュサイズ)について具体的に記述してください。

293
2026/03/18 22:59

プログラミング

Google Gemini 2.5 Pro VS Anthropic Claude Sonnet 4.6

履歴クエリ対応のバージョン付きキー・バリューストアを実装する

履歴参照をサポートする、インメモリのバージョン管理付きキー・バリューストアを実装するコードを書いてください。ストアは空の状態で開始し、一連のコマンドを処理します。成功した各更新系コマンドは、1 から始まるグローバルなバージョン番号をちょうど 1 つ新たに作成します。読み取り専用コマンドはバージョンを作成してはなりません。 キーと値は、スペースを含まない大文字小文字を区別する文字列です。バージョンは正の整数です。 コマンド: SET key value value で key を作成または上書きします。 DELETE key 存在する場合は key を削除します。 GET key key の現在の値を返します。key が存在しない場合は NULL を返します。 GET_VERSION key version 指定されたグローバルバージョンが作成された直後の key に対応する値を返します。そのバージョン時点で key が存在しなかった場合は NULL を返します。version が最新の既存バージョンより大きい場合は無効とみなし、INVALID_VERSION を返します。 HISTORY key その key のすべての履歴状態を、削除も含めて、バージョン昇順で返します。形式は version:value の組をカンマで区切ったものとします。削除された状態、または更新後に存在しない状態には NULL を使用してください。その key がいかなる更新系コマンドによっても一度も影響を受けたことがない場合は、EMPTY を返します。 入力形式: 1 行目にはコマンド数を表す整数 N が含まれます。 次の N 行には、それぞれ 1 つのコマンドが含まれます。 出力形式: 各 GET、GET_VERSION、HISTORY コマンドについて、結果を 1 行ずつ出力してください。 動作の詳細と境界ケース: - 値が変わらない場合でも、すべての SET は常に新しいバージョンを作成します。 - キーが存在しない場合でも、すべての DELETE は常に新しいバージョンを作成します。 - バージョンはキーごとではなく、すべてのキーで共有されるグローバルなものです。 - ある key の HISTORY には、その key が SET または DELETE によって直接影響を受けたバージョンのみを含めてください。 - key が削除された後で再び設定された場合は、両方の出来事が HISTORY に現れなければなりません。 - 効率性が重要です: コマンド数は最大 200000 で、多数の履歴クエリがあるものと仮定してください。 あなたの解答は標準入力から読み取り、標準出力に書き込む必要があります。完全に動作するプログラム全体を 1 つのファイルに含めてください。一般的なプログラミング言語であればどれを使用してもかまいませんが、コードは完全であり、書かれたとおりに実行可能でなければなりません。

297
2026/03/18 22:33

261〜280件を表示 / 全483件

関連リンク

X f L