[WeChat] 说微信小程序


微信小程序在技术圈里也爆炸了不少天了,但是纵观公众号的各类文档,似乎高质量的文章不多见,往往都是官方开发文档的搬运工,缺乏系统性的剖析帖,让我很是失望啊(大牛似乎都在知乎答题和写天书)。当然,我写这篇文章不是《解密微信小程序》或者《微信小程序完全手册》之类标题的技术帖,就是随便聊聊这个技术圈的新宠(顺便证明下我也是技术圈一份子)。

作为一位名不副实的程序员,见到此类消息的本能反应也和广大码农一样是莫名有点兴奋的,但苦于没有内测资格,只能望洋兴叹。转机来的太快,第二天就有人在Github上放出了开发工具的破解版和官方Demo程序,而我仅仅是点开了网页,随后便去喝茶啃瓜、一觉到天明(名不副实的程序员就是这样的)。然而一觉醒来发现又转机了,官方公开了设计指南、开发文档和开发者工具。比起摸索开发者工具和Demo程序,我更喜欢「官方解密文档」(名不副实again),于是我也毫不犹豫的在第一时间入了这坑。

从设计指南到开发文再到工具,都让我感受到了一股苹果的作风,可见微信对这个新功能的重视。微信这回是布了个大局,瞬间从App(程序)晋升为OS(操作系统),这个一上线即拥有7亿用户的“操作系统”想想也是惹开发者醉啊,因此火爆也是必然的。从内测第一天起技术圈就掀起了有关技术的各种讨论,比如「HTML5又火了」、「JavaScript程序员要吃香了」、「前端开发者要涨薪了」……然而总是有少数神龙见首不见尾的大牛在评论区里忍不住显摆道出天机,我也是一不小心抓住了点大牛的尾巴看到了「Native」和「RN」等奇怪的字母才稍微找到了点方向,摸清了点门道。下面就来进入正题说一说这个微信「小程序」。

关于设计指南

讲到设计指南就不得不看看业界标杆:谷歌和苹果。无论是《Material Design》还是《iOS Human Interface Guidelines》,对自身的界面风格和细节定义都是极其详细。一流企业定规格,这样的设计指南绝地称得上一流之作,也确实给设计师和开发者起到了指南的作用。微信小程序的这份「指南」虽说没有达到谷歌和苹果的高度,但也根据微信本身的产品理念、界面风格和交互方式给出了明确的设计思路,给设计师和开发者指明了方向。

由于这份指南内容比较简要,我也分分钟就看完了。鉴于之前已经看过《iOS Human Interface Guidlines》,除了这次用的是中文省了我很多时间外,关于交互设计方面倒是没啥新意,这份文档更趋向于是给程序员看的,设计师看了也许会很不屑。我认为这份文档最具价值的信息大概就是阐明了「小程序」可以之于微信的界面中而拥有高于微信的设计。意思就是有些元素固定这样了,微信不让你动所以你动不了,但是又给了你修改配色之类的具体界面参数的能力,用于统一「小程序」自身的风格。

然而我并不是设计圈的人,只能从程序员的角度一表拙见。这份设计指南更大意义上是让微信这个生态更加完善了,也让很多脱离设计的程序员能够避免「一看就是程序员做的界面」这种尴尬,当然这份指南也很有可能作为微信平台审核上架应用的依据。

关于技术栈

Web前端的技术栈大家都知道是HTML + CSS + JavaScript,所以很多开发者认为微信这次的「小程序」就是Web开发,因此也存在「HTML5这回要更火了」这类的声音,但即使我没有学过「HTML5」也知道这跟「HTML5」没多大关系。开发文档中明确阐明了「小程序」的视图层采用的是描述语言 WXML ,也就是微信自定义的一套视图描述语言,这套描述语言可能是和HTML很类似,但这种类似也可以说是微信故意为之,就是向前端开发者提供一套类似前端开发的技术栈。那为何不直接用前端技术呢,也就是喜闻乐见的「HTML5应用」呢,简单的讲无非两点:

  1. 性能不够,影响体验。
  2. 不利于微信生态建设。
前端开发 微信小程序
HTML WXML
CSS WXSS
JavaScript JavaScript

「小程序」的逻辑层代码是采用JavaScript语言,这就有传言称「JavaScript程序员要吃香」,「JavaScript程序员要涨薪」等等。无可厚非JavaScript程序员极有可能成为第一波享受到「小程序」红利的开发者。但不幸的是,这套技术栈不支持像jQuery这类的三方库,所以很多JavaScript程序员写起代码来要不顺手喽,考验JavaScript语言功底的时候到了。其实JavaScript的学习成本并不高,我也花了两天就看完了主要的语法知识点,上手是很容易,但是编程的核心并非语言或语法,编程思想更为重要,所以很多编程老司机要想跨界练练「小程序」的话,我认为也是很容易的。这么看JavaScript程序员好像也没啥优势嘛。
WXSS(Weixin Style Sheet),基本就是改了下CSS的名字罢了,唯一的差别可能就只有文档中所述的:

  1. 尺寸单位(定义了rpx)
  2. 样式导入

尺寸确实是个需要解决的问题,毕竟微信是个跨平台的「系统」。

总之,这套技术栈门槛不高,我也粗糙地玩了下,简单程序还是很容易开发的。而对于「小程序」后台而言,和之前的原生应用并没有差,该怎样开发还是怎样开发。

关于API

微信提供了网络/媒体/数据/位置/设备/界面/开放接口……等一系列的接口。

相比于iOS或者Android的原生API,没法比……但基本能力都提供了,绝大多数的问题都能解决,有局限性但不妨碍个性。

对于接口我想说的并不多,接下来就看开发者的创造力了。

关于工具

四个字:不够好用。

总结

新鲜的事物总是能激起人们的好奇心,我也是好奇心使然才有了这篇文章。相信很快所有人就能看到「小程序」出现在我们的微信中了。其实我很期待很多应用能上架「小程序」平台,尤其是那些偶尔使用的低频软件,这些软件删了呢要用的时候麻烦,不删呢绝大多数时候也就是占个硬盘空间。「小程序」给出了那些低频应用的解决方案,释放硬盘空间指日可待。除此之外,我也希望能够看到这个新平台能诞生一些这个平台独有的「小程序」,而不仅仅是原生应用的搬运工。

I could either watch it happen or be a part of it.--Elon Musk

这话是最近忙着火星移民计划的伊隆·马斯克讲的,与君共勉。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,257评论 25 707
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,074评论 6 244
  • 今天的检视会很多正能量的同学分享了很多经验、心得、体会。非常好的!对我也很受益,有很多感触。 七组组长李思睿的分享...
    娇孋娇婍阅读 704评论 0 0
  • 本周主题,采访战友,一个让大家互相熟悉的机会,一个可以看得见别人的好时机,同时找到自己进一步成长的突破口。 跟兵哥...
    张娟丽阅读 239评论 2 2