Bambook开发比赛简记

最近参加了 盛大的Bambook开发比赛,记录一下这次比赛的经历。

因为一直是在做web应用,所以我参加比赛的创意自然和web脱离不了关系:开发一个浏览器插件,用户安装好这个插件以后,就能够通过网页管理、分享Bambook上的书籍。

最终完成的作品: http://bambook.cnprog.com/
浏览器插件源码: https://github.com/quake/BambookPlugin
服务器端源码:   https://github.com/quake/bambook


在开发过程中遇到了几个问题:
1. 跨平台,跨浏览器的兼容性问题,我设想这个插件要能够支持IE,Firefox, Chrome,而且还能够支持Linux下的Firefox,MacOS下的Safari。经过一番对比,最终选择了 Firebreath这个跨平台支持的浏览器插件体系架构进行开发。它在NPAPI和ActiveX上做了封装,然后用模板生成编译脚本和平台独有代码解决了不同操作系统下的编译问题。

2. 服务器端当然选择了我熟悉的Ruby On Rails,最终统计了一下代码行数,完成上传,下载,分享功能只用了50行左右的ruby代码就搞定了。对于这种web项目,RoR的生产力还是一如既往地给力。

3. 因为不会做UI,所以找了一个现成的web css framework,然后写了300行左右的js来和浏览器交互,所有的操作都是基于ajax。和其他一些界面很好的作品比起来,我这个作品只能寄希望在创意上取胜了。

4. Bambook PC端API其实挺难用的,特别是现在流行采用开放协议基础上做的api,而Bambook却采用了私有协议做API,这样不仅导致SDK也要出各种版本(Windows, Ubuntu, Macos),而且开发人员受限颇多。如果能够直接将Bambook变成一个Http Server,然后将书籍做为Restful Resource,这样Bambook的PC端和机器端api都可以统一。


最后是广告时间:如果你有Bambook,请下载我的作品,给我打个分吧: http://bbsdk.sdo.com/opus_detail.do?sid=ff68269aab1b673622afa33107877dee

你可能感兴趣的:(浏览器,chrome,ubuntu,Ruby,firefox)