重做Online Judge

來源:互聯網
上載者:User

今年十月做的Online Judge不是很好,有幾處硬傷。首先是程式邏輯和頁面沒有實現完全的分離,改換外觀很不方便;其次是後台管理功能有些混亂,模組化做的不是很好,不方便添加新的功能,例如要添加一種新的程式設計語言就要修改原始碼;最要命的是,評測模組有一些安全方面的漏洞,一但被人利用了,伺服器就會有滅頂之災。

這次重做打算採用現成的PHP架構來協助,初步想法是採用FleaPHP,原因之一是我現在只是對它比較熟悉而已。打算完全採用MVC模式,我想這樣會方便日後的維護。設計上打算做一些調整:

  • 要在Linux和Windows下都能運行,這意味著要開發兩套不同的測試模組,因為測試模組會使用作業系統的API,必須針對不同的平台做不同的處理。
  • 不再整合編譯器,而由Online Judge的管理員自行安裝。後台要有一個配置編譯、運行、測試環境的模組,這樣管理員就可以方便地添加支援各種語言了。如果需要支援Python的話,也只需把Python解譯器的路徑指定一下,然後這個Online Judge就可以測試Python程式了。
  • 添加一個簡單的討論群組。具體來說,就是每個問題的下方都有一個Discuss連結,點它就可以來到一個針對當前問題的討論頁面。
  • 加入編程比賽的功能。比賽一般是有時間限制的,和普通的練習不一樣,所以要把這部分單獨提出來。
  • 允許使用者和站內的其他使用者交流,比如查看別人的排名,給別人發送站內訊息。

現在就想到這些,可能還會有其他的。看樣子最重要的就是要留下可擴充有餘地。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.