订阅软件研发RSS CSDN首页> 软件研发

专访独立开发者盛保善:我为什么开发微信应用框架?

发表于2014-07-30 14:07| 次阅读| 来源CSDN| 0 条评论| 作者夏梦竹

摘要:2014微信开发者大会召开在即(8月23日.北京),通过和CSDN研发频道微博互动,记者联系到了这款框架的开发者盛保善,请他给我们分享2周是如何打造出这款开源产品的,以及开发微信产品的一些经验之道。

【编者按】2014微信开发者大会召开在即(8月23日.北京),作为一线微信开发商云集、专注在开发实践方面的顶级技术活动,演讲话题极为丰富,涵盖了微信开发不同维度的多个层内容(首批议程发布),包括:企业服务号开发和高级应用、企业号开发、如何与业务系统对接、各种高级接口功能、智能客服与LBS、HTML5社交应用、微信支付、微信电商开发等多方面(查看参加微信开发者大会的八大理由),帮助开发者更深层次地解答微信开发方面疑惑。

在大会临近召开之际,有微博网友通过和CSDN研发频道微博互动,让记者联系到了这款框架的开发者盛保善,请他给我们分享如何在2周内打造出这款开源产品的,以及开发微信产品的一些经验之道。

以下是采访内容:

CSDN:请您先自我介绍下。

盛保善: 作为一名独立开发者,我担任的角色比较多,包括应用层电子工程师(Atmel MC、RF/Bluetooth、Arduino)、RDBMS的DBA(T-SQL)、应用开发者(CoffeeScript、Ruby、C#)、UX设计师、UI设计师(Sketch)及框架设计师。获得清华大学电子工程系工学学士学位、清华大学软件学院软件工程硕士学位。

CSDN:“微信应用框架”这款项目是由几个人负责的?你们是如何分工的?

盛保善:微信应用框架由我设计并完成npm模组,做演示网站时另有4名同事参与了界面、内容等重要工作。

CSDN:当初是如何想到要开发这款微信框架?期间有没有遇到一些难点?又是如何解决的?

盛保善:4月底,我的同学说了个创意,觉得能够吸引很多用户,但我对微信(和一切泛Social的东西)没兴趣。我不信,后来证明我错了。我做了个仅有一个按钮的微信服务号,不推广、无分享,现在有北京6万多的实名注册医生用户,这是一个奇迹。

微信应用框架属于游戏级别的项目,属于1个人1周的工作量,所遇到的难点都是对自己的质疑:设计是否达到极简主义的标准?哪样暴露接口,更能向应用级工程师的业务语言靠拢,达到文学化编程的最终境地?话说回来,最大的难点在以后。我想到了几个很棒的设计改进点,可惜没有时间完善了。


CSDN:“微信应用框架”是款什么样的产品?最吸引用户的地方是什么?

盛保善:“微信应用框架”是极简设计的微信(公共平台)应用参考级框架,而并非微信接口在node.js下的幂等映射。幂等映射的微信SDK是指将微信的每个HTTP接口(不是REST接口),在对应的运行时下起个名字,将HTTP接口的参数映射成函数签名参数。

遗憾的是,流行的几个微信SDK不少是这样的。诊断标准是:腾讯的API怎么分类,它的SDK接口就怎么分类;腾讯API有几个,它的SDK就有几个。在我看来,好的产品具备以下几个特点:

  • 好产品服务好客户,好的产品经理从不跟用户斗争,在大多数技术落伍的传统领域,假象一个十分配合的用户,能服务好他们的产品经理,就是一个90分的产品经理了;
  • 好产品有其局限性,记得爱因斯坦说过:The difference between genius and stupidity is that genius has its limits;
  • 好产品是件艺术品,有人说设计不是艺术,他们说对了一半:坏设计不是艺术,好设计是。

有工程师分不清Framework与Library/Toolkit。一个比较简单、直观的检验标准是:Framework shapes applications:如果最终应用的顶层设计可以按照该组件叙述,该组件可被称之为Framework,如Express、Backbone;如果最终应用的顶层设计无法按照该组件叙述,该组件仅能被称为Library/Toolkit,如jQuery、D3。

一个Framework可以被当作Library被微观地使用,一个Library比较难被当作Framework上位成宏观架构。

CSDN:与同类产品相比,它的优势在哪?

盛保善:我觉得有两种产品跟微信应用框架相关,但并非同类产品:某个运行时下的微信API接口,如PHP、Node.JS版,但我不认为与微信应用框架是同类产品。多数这样的SDK跟微信API是一个一一对应的关系,HTTP本来就是标准协议,这类产品想像空间实在有限。

我认为微信API也是微信应用框架的同类产品。有相同的用户:应用程序开发者。但是微信的API没有把开发者的痛点当作自己的痛点,也没有了解不同生态的开发者习惯,作为接口,设计得也不太美(对比GitHub的接口)。所以,说Mongoose是MongoDB Node.js Driver的同类产品也可以。

微信应用框架是按照标准产品的设计步骤进行的,用户与Scenario分析界面(对于Framework或Library来说,界面就是架构与接口)设计。而有些同类产品好像是重构的产物,重构并非不能产生好的Framework或Library,但是半生不熟的重构不可以,好的重构过程是Bottom-Up与Top-Down的综合结果,仅仅关注微观的重构,让我想起了“人类一思考,上帝就发笑”。

具体说,举3个例子:

点击文字是“天气预报”的按钮,向用户发送当日的天气,用微信应用框架来实现,是:

wx.click '天气预报', (req, res) ->
  res.text '晴'

 一个昵称“蒋涛”的用户发送“你好”,回复“蒋涛,么么哒”,用微信应用框架来实现,是:

wx.text /你好/, (req, res) ->
  res.text "#{req.user.nickname},么么哒"
在网页显示商品(或文章)二维码,用微信应用框架来实现,是:

<img id='樱桃二维码' src="/wx/qrcode?product=樱桃" />
在页面响应这个二维码被扫描的事件是:


 $('#樱桃二维码').scan -> # 樱桃二维码被扫描

上面这3个例子,用同类产品来实现,加起来恐要近百行程序了。更多的例子在weixinjs.org上面都有,请花几分钟用手机边体验边了解。所以,真正的区别是品味。那些有更多功能的、更早开始的、更多工程师参与的同类产品,缺少的是品味。品味是伟大作品、伟大的创意工作者培养出来的。品味促使设计者:

  • 基于歇斯底里地自省,一定有什么地方做的不够好,是否真的非此不可?
  • 这个叙事的最短路径是什么,哪几个包袱抖出来,这个故事就活了,少了一个也不行。

CSDN:“微信应用框架”的运行状态如何?

盛保善:就框架本身而言:很遗憾,这个作品远远未臻完美,而我又可耻地投身于下一个事业,很希望有人能理解微信应用框架和同类产品的近百个细微差异,作为开源项目继续完善。

设计师需要鉴赏力,鉴赏力成就杰作。

“微信应用框架”是一个高中知识即可以完成的作品,同类产品的若干小小的缺憾,令我感叹国内原创性思维和品味的缺失,更可以理解产品经理与工程师之间的断档。可能最优秀的工程师都不在做application-level的设计吧,但是application-level很需要设计能量,需要很优秀的工程师、设计师;亦或许有些闭源的项目做的更好!

CSDN:对本次2014微信开发者大会,您最关心哪些内容,有什么建议?

盛保善:没能做一个Keynote有些遗憾。“微信开发大会”与“微信应用框架”是如此贴切,有了“微信应用框架”之后,每个实际场景最少1到3行程序就可以完成,开发者也不需要理解过多的微信的Jargon。鼓励文学化编程,是“微信应用框架”提供的全部,希望对需要公共账号研发的伙伴们有所帮助。

我对微信产品运营知之甚少,但希望2014微信开发者大会之后,希望相关的微信公共号产品能够更加善良,更加真诚,关注内容,提升品位,真心地爱用户,而不是为了满足某些人像爆米花一样的膨胀的欲望。用户数只是一个乘数,用户对你真诚健康的爱,是被乘数。

盛保善简介:

  • 2008至9年,联合创立了国际古典音乐数据库,在美国哥伦比亚特区注册,开展音乐学研究和小规模的古典音乐编目活动;
  • 2010年,作为惠斯康健康科技(北京)有限公司的Entrepreneur-in-Residence,设计企业移动互联网战略;
  • 2011年,共同发明了利用射频对等网络作为异构传输层,扩展手机蓝牙距离的智能家居系统方案(发明专利CN102221830B);
  • 2012年,作为创新顾问,设计国内首家医疗卫生评估企业核心业务,服务中南大学湘雅医院等多家医院; 
  • 2013年,为专业医疗机构瀚思维康设计基于Mongoose的文档式医疗数据标准,内部交付了8个高度现代化的专业医疗Windows商店应用;
  • 2014年8月起,我将全时投入在一个古典音乐应用的设计与工程上。GitHub账号@baoshan


 

8月6日之前报名并完成购票流程的同学,都将免费获赠微信开发技术图书一本以及全套讲师讲义。3人以上团购即可享受折扣价,机不可失!目前购票火爆,抢票参见 。 

关注@CSDN研发频道,了解更多研发资讯,参与互动讨论;当然您可以向我们推荐更多有趣、有质量的文章。

0
0