Open KATO-Hiro opened 11 months ago
ABS_X で来たら、実体としてはABC_Yに飛ばす、みたいな感じでしょうか? taskのデータベースに代替(実体)となるtask_xxx_idみたいに保持しておくのでしょうかねえ。 (昔のARCが、ABCのC以降だったのもありますよね)
@prettyhappycatty
ABS_X で来たら、実体としてはABC_Yに飛ばす、みたいな感じでしょうか? 私はそのように認識しています。 ABSに関しては問題数も少ないので、UI側で対処しても差し支えないように思っていますが、いかがでしょうか? 例えば、ハッシュテーブルで処理するとよいのではないかと考えています。
taskのデータベースに代替(実体)となるtask_xxx_idみたいに保持しておくのでしょうかねえ。 (昔のARCが、ABCのC以降だったのもありますよね) 現状ではtask_idにunique制約を設けてしまっため、同じidで登録するのは難しいと思います。 スキーマを変更するか、UI側で処理をする必要がありそうです。
ABC・ARC同日開催の問題(#174)に関して、初回リリースの時点では公開の対象外なので、やや優先度が低めだと認識ですが、2回目以降のリリースでは対処したいですね。
@KATO-Hiro ありがとうございます! ARC後回しの件承知しました! 最初思っていたのは、問題集機能で、ABSとか通常のABCとかARCを問題集として作ればいいのかなあなんて思っていました。 ハッシュテーブルも良さそうですね!
@prettyhappycatty
ありがとうございます!
問題集機能で、ABSとか通常のABCとかARCを問題集として作ればいいのかなあなんて思っていました
ABS誕生の経緯を考えると、おっしゃる通りですね!! 長期的な視点で考えると、問題集機能として実装したほうが良さそうです。
ハッシュテーブルによる実装は、早期のレビュー・フィールドバックを受ける段階までの一時的的な扱いで、問題集機能として実装するまでのつなぎにするとよいのかもと思っています。
Internal Errorが毎回発生するわけではなさそうですが、1回リロードすると正しく表示されるようです。
念のため、ローカルサーバで表示されたエラーを掲載しておきます。
TypeError: Cannot read properties of undefined (reading 'find')
at Module.getTaskResult (/usr/src/app/src/lib/services/task_results.ts:61:16)
at load (/usr/src/app/src/routes/problems/[slug]/+page.server.ts:8:33)
at Module.load_server_data (/usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js:51:41)
at /usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/data/index.js:62:13
at async Promise.all (index 1)
at async Module.render_data (/usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/data/index.js:100:17)
at async resolve (/usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/respond.js:394:17)
at async Object.handle (/usr/src/app/src/hooks.server.ts:9:10)
at async Module.respond (/usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/respond.js:274:20)
at async file:///usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/exports/vite/dev/index.js:510:22
TypeError: Cannot read properties of undefined (reading 'find')
at Module.getTaskResult (/usr/src/app/src/lib/services/task_results.ts:61:16)
at load (/usr/src/app/src/routes/problems/[slug]/+page.server.ts:8:33)
at Module.load_server_data (/usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js:51:41)
at /usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/data/index.js:62:13
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Promise.all (index 1)
at async Module.render_data (/usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/data/index.js:100:17)
at async resolve (/usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/respond.js:394:17)
at async Object.handle (/usr/src/app/src/hooks.server.ts:9:10)
at async Module.respond (/usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/respond.js:274:20)
TypeError: Cannot read properties of undefined (reading 'find')
at Module.getTaskResult (/usr/src/app/src/lib/services/task_results.ts:61:16)
at load (/usr/src/app/src/routes/problems/[slug]/+page.server.ts:8:33)
at Module.load_server_data (/usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js:51:41)
at /usr/src/app/node_modules/.pnpm/@sveltejs+kit@1.29.1_svelte@4.2.8_vite@4.5.1/node_modules/@sveltejs/kit/src/runtime/server/page/index.js:141:19
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Summary / 概要
Steps to reproduce / 再現方法
environments
Desktop (please complete the following information):
OS: [e.g. Mac, Windows11, Linux] Browser [e.g. Chrome, Safari, Edge, Firefox] Version [e.g. 117.0.05938.44]
Smartphone (please complete the following information):
Device: [e.g. iPhone15, Android13] OS: [e.g. iOS16.5, Android 13] Browser [e.g. Chrome, Safari] Version [e.g. 16.5]
Tablet (please complete the following information):
OS: [e.g. Android OS, Chrome OS, Windows11, iPad OS] Browser [e.g. Chrome, Safari, Edge, Firefox] Version [e.g. 16.5]
Expected behavior / 期待される挙動
Actual behavior / 実際の挙動
Screenshots
Other notes / その他