百度App应用创新大赛参赛作品:国民教育委员会

来源:互联网 发布:带英语的网络流行语 编辑:程序博客网 时间:2024/05/08 16:30
5月左右,看到baidu举办了一个web app 创新大赛。打算写个应用参加比赛,准备着手写的时候,突然发现《应用审核标准》里面竟然有如下几条大禁令:
“平台不接受的几种类型的APP
    电子商务相关,包括商品的展示、介绍或消费引导;
    网址、网站导航或信息的垂直搜索;
    医药销售及咨询;
    完全由用户实时生成内容的应用,比如在线聊天、论坛;
    只展示文字或数据,无任何交互浏览型应用,或者内容丰富度比百度搜索引擎中的同类内容的普通搜索结果差;
    ……”
想着也是,如今发个帖子都需要“领导批示”的情况下,做信息发布和信息讨论的应用实在是没有生存空间。

写什么呢!一直运量到了7月初。想起自己原先写过一个知识问答的flash应用,如果将它修改一下,模仿小时候的一款街机游戏“国民教育委员会”,在创意和时间上应该都可行。

于是一直加班加点上周六提交完成,今天下午4点左右审核通过。
对于百度的api我的感受就两个字:麻烦。
1. 修改了hosts文件,想映射到本地进行调试,但是所有的尝试在访问API接口后全部失败。目前还没有找到本地调试api接口的方法。 想一想,找一个bug,必须部署到生产环境下进行,这是怎样的一种工作心情。
2. BaiduAPI采用了https进行验证登陆,这个东西老是time out。得多连几次才能登陆成功。
3. Baidu官方提供的SDK有些小bug。主要是OAuth1.0升级到OAuth2.0后引起的问题。我给百度工作人员写了一大堆问题描述,最后得到的回复:开发者您好,经过我们的核实,您的这个问题建议您全面查看一下这个文档 http://tieba.baidu.com/p/1153048779

这个应用,不是很复杂,有几个地方我做了特别处理:
1. 这个应用,对问题的分类,采用了类似blog 标签系统的分类方式。后台使用sphinx进行查询解析。例如:世界历史地理知识考试,是属于 标签:中国历史+外国历史+中国地理+外国地理 下的题目。
2. 排名使用了redis 的 SortedSet。它的优势是取得排名的时间成本只有log(N)。如果只用数据库来确定用户的名次的话,那么效率太差了。
3. swf进行了加密,要不很容易反编译。


以后如果这个应用能存活下去,计划完成:
1. 更精致的界面
2. 每个用户给出具体的排名 和 他前一名用户的信息。例如:哇,tom以23分的成绩 排在你的前面,朝着你蔑视的一笑!
3. 用户自定义考试。即,用户可以自己维护自己的题库,发布自己的考试。


应用地址:http://app.baidu.com/exambox