Ubuntu的黑客马拉松

黑客马拉松概念源自美国,随着智能手机风行,“黑客马拉松”逐渐成为插件开发的主要形式:一群高手云集一堂,几十个小时里开发出一款插件,累了或坐或卧,现场休息,做完当场交作品,是“世界上最酷的开发者狂欢”

几日前的一个周末,约了两个大学时代的好友,一起参加了Ubuntu的hackthon,其实就是一个线下活动,在36小时之内,可以使用Ubuntu原生或者跨平台的语言开发出一款Ubuntu的APP。

苦熬36小时后,最终我们没有选择演示demo,并不是我们什么都没有做,而是我们自认为那是一个不好的产品,不会给人眼前一亮的感觉。当然,这其中也有我们自己的问题。

当时赛完,就总结出了失败的原因。

问题一:产品方向

起初意向有两款APP,一款是团购类APP,另一款是一个背单词的APP。先不说这两个项目哪个听起来B格高(其实在我们看来,都不是很有创意的),两类项目我们都有在其他平台的开发经验,而且已经成功上线,虽然都不是什么大应用,但是都是在大学时代做的,可以说是很熟悉了。移植到其他平台认为都应该没有问题。但是,在有分歧的时候,我们并没有分析这两个产品到底有什么不同。后来,从技术上的一些实现才发现一些问题。两者最重要的区别是在于交互。团购类的项目显然是展示居多,交互较少,而背单词的项目,显然交互比较多,在36小时内开发出一款交互比较多的项目,显然风险太大,bug肯定比较多,而且我们需要开发前端和后端的主要逻辑。所以,对应这样的比赛,选择展示类的项目,是在项目开始之前就可以规避一些风险的。

问题二:技术手段

在主要实现上,我们选择了跨平台的H5。(在大二的时候,我们用同样的方法开发了黑莓平台的APP)使用Cordova来打包跨平台。

  • 前端:JQuery Mobile,HTML,JS;
  • 后端:搭载PHP开发平台的新浪云,PHP;
  • 第三方接口:有道翻译,金山词霸每一句,(团购项目使用大众点评的开放平台);
    jQuery Mobile是我们现场学的,或者说之前有那么一点点开发功底,但是许多API和开发环境都是现场搞的。新浪云和PHP就不必多说。现在说一些主要的问题出在了哪。

JQuery Mobile 和 Cordova

先说一些对JQuery Mobile的感受。其实也就是对大多数第三方框架的感受:

优点:1:使用方便;2:快速搭建;3:迅速成型;

缺点:出了问题,无法快速定位,迅速修复更是难。

优点总结起来就是一个字:快! 武侠小说中的一句话:天下武功为快不破!但是,我相信这个“快”也是在你了解实现原理的基础之上实现的,或者说是对一种已知事物的快速打磨。我们在比赛的后半程,基本就输在了这个地方。之前使用过JQuery Mobile的1.3.2,或许对它略有好感,我们选择了再次使用,那天晚上我们使用了JQuery Mobile的1.4.5,后半程bug如梦魇一般缠绕着我们,确实很不顺,遇见了该遇见的一切问题。并不是说JQuery Mobile不是一个好的第三方框架,而是我们在限定的环境下,无法成为一个好的使用者。

收获

  • 学习了JQuery Mobile,算是入门
  • 复习了PHP,和mysql数据库知识
  • 感受到台湾人真的很有礼貌。(主办方派来两个台湾的技术支持工程师)
  • 一段“大神”的插曲。比赛的最后,我们在等待演示demo的时候,听到了一位参赛选手与他人侃侃而谈,各种编程语言信手拈来,数据结构算法更是如数家珍,比较经典的一些语句:“你知道Ruby吗,Ruby每一行都不是它表面上要表达的意思,每一行都是黑魔法”,“最后最牛B的还是C++”。且不说“大神语句”是否正确,这偷听的一系列谈话,让我听到了一个人:王垠,上网一查,果然很有深度。最近正在看他的一些文章;

最后想说,当一段时间窝在自己的世界里默默的撸代码,在感觉到枯燥的时候出去参加一些技术沙龙还是很有收获的。