现在底层的主要是user,因为各个模块都基于对用户数据的访问。。。然后是resource
limiter,用于根据管理员配置,按照用户组、IP等各种东西限制用户对资源的访问。。。然后是problem和record。resource
limiter,problem,record这三者大约可以独立开发,订好借口就好;再之上是contest。。当然problem和record也要兼顾contest,必须隐藏与比赛有关的信息。。其它如讨论、站内信神马的就完全可以独立开发的。。。
然後我的一些設想和補充:
Online Judge表達的最核心的含義所對應的那些功能就直接單內核式的開發,因爲是一切的基礎。
其他的不止在OJ上可以有,其他地方也能見到的應用就該判斷爲是一個pluggable的module(etc.
站內信,討論組,代碼查看權限,積分獎勵系統,甚至好友模塊)。
(感覺有點像linux, user && limiter && problem && record 是構成內核的東西,mail &&
discuss && code_view && rating && friend 就是各種可以load的modules)
如果覺得靠譜的話,就討論user,resource limiter, problem和record的接口標準
以及抽象的程度。
討論好雛形以後,就可以先根據這個寫個core部分的document,按照這個document
開始設計。
然後view和外掛module部分再自頂向下設計。
或者有更好的觀點,在這裏提出討論吧。
--
--- This information is automatically generated ---
The *attached* file named 'signature.asc' is used for
*verification* of the content above. If you haven't
got a public key, please contact me to acquire one.
ted.sybil aka. ymfoi aka. Ted Yin
orz....T神终于开始动了。。。
--
贾开
清华大学计算机系 计14班
Kai Jia
Department of Computer Science & Technology
Tsinghua University
插件部分可以單獨用一個目錄比如modules或者叫plugins來放各種包,制定好一個標準。
這部分都可以先不設計,不影響主體架構。
這回用Python可能比PHP那會兒好很多了吧,開哥怎麼想的呢,好不好弄?
不好弄。。这是写oj而不是oj
lib,要把最终结果呈现给用户的。。。加各种插件的话排版、请求、url什么的都不好处理。。。设计一个灵活的可扩展的构架就好,而不奢求支持插件了。。
我的意思是pluggable modules,並不是類似wordpress那種portable plugin。
就是還是自己弄,只不過可以遵循標準來交給不同人自己搞。方面開發。
那個裏面就不含任何與用戶界面有關的東西了,只是功能模塊。
要取消订阅此网上论坛,请发送电子邮件至 pynojo-discus...@googlegroups.com。
哦。。。明白了。
是这样的。。现在能快速写一个结构优美易于维护的就好。。。
--
贾开
清华大学计算机系 计14班
Kai Jia
ok。。求分別討論基本架構之user, limiter, configurator
邮件讨论好困难。。还是一个人写了其他人再去吐槽还是怎么弄。。。?目前在纠结user的细节问题。。。tim可以去研究problem,record之类的model。。。
--
贾开
清华大学计算机系 计14班
Kai Jia
我也觉得。。。。
= =
要取消订阅此网上论坛,请发送电子邮件至 pynojo-discus...@googlegroups.com。