【编者按】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就有几个。在我看来,好的产品具备以下几个特点:
有工程师分不清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个例子:
点击文字是“天气预报”的按钮,向用户发送当日的天气,用微信应用框架来实现,是:
一个昵称“蒋涛”的用户发送“你好”,回复“蒋涛,么么哒”,用微信应用框架来实现,是:
上面这3个例子,用同类产品来实现,加起来恐要近百行程序了。更多的例子在weixinjs.org上面都有,请花几分钟用手机边体验边了解。所以,真正的区别是品味。那些有更多功能的、更早开始的、更多工程师参与的同类产品,缺少的是品味。品味是伟大作品、伟大的创意工作者培养出来的。品味促使设计者:
CSDN:“微信应用框架”的运行状态如何?
盛保善:就框架本身而言:很遗憾,这个作品远远未臻完美,而我又可耻地投身于下一个事业,很希望有人能理解微信应用框架和同类产品的近百个细微差异,作为开源项目继续完善。
设计师需要鉴赏力,鉴赏力成就杰作。
“微信应用框架”是一个高中知识即可以完成的作品,同类产品的若干小小的缺憾,令我感叹国内原创性思维和品味的缺失,更可以理解产品经理与工程师之间的断档。可能最优秀的工程师都不在做application-level的设计吧,但是application-level很需要设计能量,需要很优秀的工程师、设计师;亦或许有些闭源的项目做的更好!
CSDN:对本次2014微信开发者大会,您最关心哪些内容,有什么建议?
盛保善:没能做一个Keynote有些遗憾。“微信开发大会”与“微信应用框架”是如此贴切,有了“微信应用框架”之后,每个实际场景最少1到3行程序就可以完成,开发者也不需要理解过多的微信的Jargon。鼓励文学化编程,是“微信应用框架”提供的全部,希望对需要公共账号研发的伙伴们有所帮助。
我对微信产品运营知之甚少,但希望2014微信开发者大会之后,希望相关的微信公共号产品能够更加善良,更加真诚,关注内容,提升品位,真心地爱用户,而不是为了满足某些人像爆米花一样的膨胀的欲望。用户数只是一个乘数,用户对你真诚健康的爱,是被乘数。
盛保善简介:
8月6日之前报名并完成购票流程的同学,都将免费获赠微信开发技术图书一本以及全套讲师讲义。3人以上团购即可享受折扣价,机不可失!目前购票火爆,抢票参见 。
关注@CSDN研发频道,了解更多研发资讯,参与互动讨论;当然您可以向我们推荐更多有趣、有质量的文章。