【編者按】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研發頻道,了解更多研發資訊,參與互動討論;當然您可以向我們推薦更多有趣、有質量的文章。