2023/03/16に行われた、 中国地区高専コンピューターフェスティバル 情報交換会で発表した内容です。
Po2ron Network / MCT-JOKENPromiseTatsuto Yamamoto
View Slide
自己紹介Po2ron Network / MCT-JOKEN
自己紹介やまもと たつと松江高専 情報科学研究部 部長/情報工学科3年(新4年)言語とか: TypeScript/Go(メイン) Python/Ruby などエディタとか: WebStorm, GoLand / Visual Studio Codeたまにnanoとneovim趣味: 音楽聞いたり絵描いたりフォントで遊んだりPo2ron Network / MCT-JOKEN
Po2ron Network / MCT-JOKENオンラインジャッジを作っている話Tatsuto Yamamoto
オンラインジャッジって何?Po2ron Network / MCT-JOKEN
オンラインジャッジとは「プログラミング問題のオンライン採点システム」Po2ron Network / MCT-JOKEN
オンラインジャッジとはプログラムが正しくコンパイルできるかプログラムが正しく終了するかプログラムが制限の範囲内で停止するかプログラムが正しく出力をしているか..を判定するシステムのことPo2ron Network / MCT-JOKEN
有名なジャッジの例Po2ron Network / MCT-JOKENAtCoder: https://atcoder.jp
なんで作るのか?自分たちで建てられるものがほしいPo2ron Network / MCT-JOKEN
KOJS: 松江高専用のオンラインジャッジロゴはv4Po2ron Network / MCT-JOKEN
KOJS(KOJS-v3) 概要使った言語:HTML + Pure TypeScript with tsc (フロントエンド)テストが無い TypeScript (バックエンド)Golang (それ以外)使った技術: DockerPo2ron Network / MCT-JOKEN
もともと…去年のコンフェスに出すつもりだった(laminne/kojs3)Po2ron Network / MCT-JOKEN
もともと…みんなびっくりのクソ実装Po2ron Network / MCT-JOKEN
もともと…みんなびっくりのクソ実装API HandlersLogicsOR/M etc…Po2ron Network / MCT-JOKEN
ソースコードの変更が大変Po2ron Network / MCT-JOKEN
実装できなかった機能- コードテスト(dry-run)- ワーカーの並列化- コンパイルエラーの表示Po2ron Network / MCT-JOKENKOJSで
“J” “K” Online Judge System (KOJSv5)by MCT-JokenPo2ron Network / MCT-JOKEN
そこでまともなアーキテクチャ(レイヤード with DIPInterfaces(HandlersUsecases(LogicInfrastructure(OR/MDomain (Domain LogicPo2ron Network / MCT-JOKEN
JK-OJS(KOJS-v5) 概要使った言語:TypeScript + React with Vite (フロントエンド)TypeScript with Vitest (バックエンド)Golang (それ以外)使った技術: Docker†バリバリモダンな構成† (Ruby 0使用Po2ron Network / MCT-JOKEN
概要ユーザー(フロントエンド)スコアサーバー(バックエンド)エージェントワーカーワーカーワーカーコードの提出 コード実行命令コード実行命令実行結果結果の返却 結果の返却Po2ron Network / MCT-JOKEN
Po2ron Network / MCT-JOKEN(KOJSで実装できなかったもののうち)実装できた機能など- テストコード実行(dry-run)- (ソフトウェア)自動テスト,CI- 使える言語を簡単に増やせるように
Po2ron Network / MCT-JOKEN(JK-OJSでも結局)実装できなかった機能など- ワーカーの並列化- コンパイラエラーの表示- 問題作成- コンテストへの参加登録
総括- 最終結果: 失敗- 全然機能実装出来てないやんけ!!!(実装率 47%)- 敗因: 仕様の明文化が弱かった-> 計画性の無い実装はやめましょう👊- タスクの分配に失敗した- 開発の見通しが悪くタスクを起票しにくかったその他いろいろ…Po2ron Network / MCT-JOKEN
今後の展望- もっとUI/UXを良くしたい- (開発,ユーザー)ドキュメントを増やしたい- プロジェクトに参加する人を増やしたい- ゆくゆくは学外にも開放したいPo2ron Network / MCT-JOKEN
おしまいKOJSv3 Projectlaminne/kojs3 (C) 2021-2022 Tatsuto YAMAMOTO (MIT)JK-OJS Project(s):Backend: (C) 2021-2023 Tatsuto Yamamoto (MIT)Front: (C) 2022-2023 Mct-Joken (MIT)Slide:Copyright (C) 2022-2023 Tatsuto YAMAMOTO/MCT-Joken all rights reserved.Po2ron Network / MCT-JOKEN