个人开发者基于可编程Web的产品尝试:QCon会前采访FaWave作者李华煜

QLeelulu(李华煜,微博@qleelulu,下面简称lulu)是Chrome著名微博插件FaWave的开发者之一,曾供职于动易网络和金山软件,目前在广州舜飞公司做数据分析系统的开发。QLeelulu热衷于与Web开发相关的技术,对于.NET、Python、Node.js一定的了解,在四年的web后端开发过程中一直插足于web前端JavaScript相关的开发中。本次QCon大会Lulu会做关于FaWave的演讲。在大会举办之前,InfoQ对lulu以及FaWave的另一位作者袁锋(网名MK2,微博@Python发烧友)做了一次采访。

能否讲讲“发微”的团队与创作背景?

mk2:关于我们做浏览器插件的历史,其实我们最在是在firefox上做浏览器插件的。我们的第一个插件,叫 s8fox,http://www.apprcn.com/s8fox.html 。代码在:http://code.google.com/p/s8hk-api/downloads/detail?name=s8fox.7z#makechanges 是我们做的一个缩短网址网站:s8.hk,目前已经消失了。

我们是嘀咕(digu.com) 最早的一批用户,在看到嘀咕的firefox客户端“狐嘀” (http://www.digufox.com/) 出来后,我们就萌生了做一个嘀咕chrome插件客户端的想法。

于是,FaWave的前身 "iDi" 诞生了 https://chrome.google.com/webstore/detail/ncjgjhcbpfeealhmagbonjhiggipglfh?utm_source=chrome-ntp-icon。

2010年,看到新浪微博等各大微博都蜂拥而至,于是我们就想到做一个多微博的应用。FaWave就是这样诞生的。

至于为什么会选择了Chrome,当时原因大概就这样两个:

  1. firefox的客户端已经有人做了。
  2. firefox相对于Chrome来说,是在太慢了!也就是说,是chrome的极速性能吸引了我们。
FaWave一开始叫 “FaLang”,后来因为太敏感了,于是就改名了 FaWave了。

lulu:FaWave开发主要是我和我的同学@Python发烧友 两人完成的,因为都有正职工作,所以都是利用业余时间在开发,这就导致FaWave的开发进度一直都是比较缓慢的。另外因为我们都是开发人员,UI设计能力实在是糟糕,所以FaWave的界面都是比较普通的。至于为什么要做这个产品,其实很简单,刚开始的时候只是很单纯的想要了解与学习HTML5和CSS3相关的技术。

为什么选择Chrome平台做这款插件?

lulu:上面说了刚开始做FaWave的时候,是为了学习HTML5相关的知识,而chrome的插件是可以直接用HTML与JS来写的,并且chrome对于HTML5的支持算是比较好的,还有一点就是在chrome上开发插件你不用考虑兼容其他浏览器,这对于前端开发来说是一件很幸福的事来的。

能否说一下“发微”的技术架构演进过程?

lulu:其实架构谈不上,刚开始的时候没有考虑太多,都是用最直接的JS来写,导致现在代码有些混乱。目前正在考虑用seajs和一些简单的前端MVC框架来对代码进行重构,并提供插件的支持,不过进度缓慢。

FaWave还需要一些后端的数据支持,刚开始是用Python在提供服务的,不过后来改用node.js了,因为都是一些简单的数据接口,node.js比较适合并且实现起来很快速,并且在我们一台普通的VPS上可以占用更少的资源。

对于“发微”这样一款应用,最大的难点在于哪里?是如何解决的?

lulu:因为FaWave是一款可以将内容同时发布到多个微博平台的产品,对于某些平台来说,它认为这样的产品损坏了它自身平台的利益,把内容与其他平台共享了,所以一些“开放”平台会限制我们的接口,这就要我们和开放平台之间积极沟通,甚至需要我们作出一些让步。 在技术方面的,因为是在浏览器端的,浏览器端的JS处理能力有限,特别是在字节流和文件的处理上,我们遇到最难搞的问题就是在浏览器端截图并且发送到微博开放平台提供的接口上。在经过长达半年的探索与尝试,最终才在 @Python发烧友 的努力下把问题解决了。其实主要是利用Uint8Array和BlobBuilder来解决的。

“发微”以后的规划如何?

lulu:首先肯定是继续完善现在版本,提供更好的体验。而桌面版的开发我们一直都在寻找一种可以直接用HTML和JS来开发的途径,这样就可以直接将现有的代码稍作修改就可以了,可惜目前这方面的实现都不完善。另外一个是移动客户端的开发,我们最想开发的就是Iphone版的,不过鉴于时间和在移动端开发经验的缺少,这个进度也是非常缓慢。

mk2:我们想尝试业余开发,通过appstore或者google play的模式,通过直接收费尝试盈利。不过按照我们目前两人的空闲时间来评估,这估计遥遥无期。 无论如何,我们达到了最初的目的,学习了HTML5和CSS3,还意外地学到了许多Javascript高级用法和Chrome的插件机制。 也让我们清楚地认识到,基于目前的各种开放平台,实在是不靠谱。

在本次大会上lulu和mk2还会针对此话题做深入讨论。会前会后更有机会与二人当面交流。目前大会报名已接近尾声,票量有限,欲购从速。大会网址:http://www.qconhangzhou.com。报名页面请点击这里。

你可能感兴趣的:(个人开发者基于可编程Web的产品尝试:QCon会前采访FaWave作者李华煜)