文档章节

程序员|聊聊「小程序」的幕后、现在和未来

SXTkaifa
 SXTkaifa
发布于 2016/10/27 15:15
字数 2421
阅读 25
收藏 0

程序员|聊聊「小程序」的幕后、现在和未来

编辑删除转载2016-10-27 13:32:48

标签:itjava北京尚学堂编程程序员

版权声明:本文为北京尚学堂原创文章,未经允许不得转载。​

小程序生态是原生生态的下一代替代品,是时代的进化产物。windows原生应用当然也不会消失,但大部分服务都在互联网上了。小程序看中的也是这块,邮件客户端什么的就不要在小程序里用了,但你目前在PC浏览器里使用的各种服务,全部会纳入小程序的生态范围。

对「小程序」不仅了如指掌,还有很多想法想和大家分享。在 Mind 现场的直播里,揭秘了「小程序」不为人知的一面。​​

满满的干货你还要错过吗?快扫描下方二维码获得更多!!!

以下是分享内容:

在小程序这个消息出来之后,相信很多人会问:为什么会有小程序呢?

我想这个问题最佳的答案,当然是来自于微信的掌舵人张小龙先生。在小程序发布后,他第一时间在朋友圈里分享了一段话:​

那些与小程序类似的应用,今何在​

说到小程序,不得不提及那些与它有不少共同点,或者说有同一目标的应用。首先登场的是,由世界上最大的 404 站点 Facebook,在 2010 年的 6 月 8 号发布的一款名为 FBML 的编程语言。

今年,世界上另一个巨大的 404 站点 Google,也在 Google news 发起了一个叫 AMP 的项目,领导一众媒体,聚焦在怎么使移动互联网的浏览体验变得更加的顺畅的问题上。

在国内,人人网也曾模仿 Facebook 制作了 Subset 定制化语言,推出了相应的工具,但没有几个人听说过人人曾经做过这样的事。​

无论这些项目现在的状态存亡与否,我们都能清楚地看到这些不同的项目,都在尝试解决同样的问题。

比如 Google,它想解决互联网的尴尬处境,让网速赶上越来越丰富的应用体验、交互模式发展的速度,落实变革。所以今年微信也从它的角度提出了对这一问题的解决方案。

一场关于小程序实现方式的赌局,争论多​

在小程序发布后不久,华南地区的技术人员拉了个几百人的群,在群里面对小程序的实现机制进行了各种猜想和讨论。

慢慢,讨论又变成争论,最后演变成一场关系到很多杯咖啡的赌局,这个赌局的双方分别是 Native 和 Web。更多精彩内容关注微信公众号:北京尚学堂。​

在小程序发布后不久,华南地区的技术人员拉了个几百人的群,在群里面对小程序的实现机制进行了各种猜想和讨论。​

微信在 Web View 的基础上,用 Native 对地图等四类块级元素进行绘制和交互。​

我想有开发经验的人都知道,当你在一个布局里,实现一些网页元素和原生组件的绘制时,是会存在一些问题的。小程序为了解决这些问题,把 Native 和 Web 混合,替换部分块级元素,使稳定性提升到生产水平,是一种进阶式的发展策略。​

剖析小程序的技术框架,干货多

微信小程序的技术架构我们可以把它拆解成三层。

上层 Native 是用于平衡性能;下层的 JSSDK,为微信的 Web view 提供 Native 功能,实现上传文件、获取设备、定位等功能,是微信已经布局了将近三年的技术框架。

值得一提的是,中层 Web view 解决主要的渲染工作,微信在 Web view 的基础上加入了 Virtual dom 的技术。有人曾质疑微信抄袭 React Native,因为 Facebook 曾提出过 Virtual dom 概念。​

而无论是 React native、Phonegap 还是 AMP 也好,它都是开放的,允许开发者去用原生的FBML、HTML 语言。

但微信小程序却只用自己的一套标准,用户不能使用熟悉的 Dom、Window 和 Document,只能使用微信的 Text/Footer/View/Flexviews 等自定义组件。

小程序为什么放着好好的开发标准不用,要自己造一套标准、一堆文字呢?

从技术层面出发,微信创造小程序,想解决的问题是,怎么让用户用最简单无负担的方式,使用一个 APP。小程序要尽可能地缩短使用一个APP的过程,让用户使用 APP 的过程中,体验尽可能接近原生,达到一种平衡。

为了让 Native-web 混合模 式达到理想的平衡状态,微信用自己制定的标准和组件,明显会有更多提升空间。他们有更多的掌控权,和更少的试错的成本。

微信小程序现阶段要达成的目标,就是用一些小工具实现他们提出来的愿景,即用即走、零负担。

为了让负担降到更低,小程序限制了代码的大小,总共不能超过 1 MB 。以此控制被分发到用户微信上的一个小程序的包,总大小不超过 5MB。这提示了开发者,如果现阶段想使用小程序实现想法的话,应制作轻便的、简单的工具。

小程序推出对开发者利好,优势大

现阶段微信小程序的优势和劣势分别是什么?

一位来自百度的工程师曾赞叹道,微信小程序里的地图组件,使用体验和原生毫无差异,给他们的景区小应用的效果带来了很大提升。可见小程序的优势之一,就是性能接近原生态。

当然最大的优势,还是微信流量的红利,以及零软件运营成本。

对于开发者而言,小程序的推出是非常利好的消息。以前开发一个 Web APP,简单算下来,域名的费用、EC 实例的费用,再加上这个传播的费用等,初期就有很多不必要的花费。而这一切在微信小程序上都不需要,因为它替你做了 CDN、预加载。

然而这也是小程序的天生劣势—— Wechat only,你只能在微信里使用,无法在浏览器里运行,场景受限。现阶段微信想开发者做的还是偏向简单的小工具。

小程序在努力开放互联网,降门槛

发布后轰动一时的小程序,究竟能够做什么?随着它的开放发展,未来又会变成什么样子?

就像四年前发布的公众号,2012 年的时候,谁想到公众号会有今天的成就。

或许对于你来说,公众号只是众多阅读渠道中的一个,但是对于我们平时不太关注的群体而言却非常重要,像小县城的公众号,你只要观察一下,就会发现一个惊人的事实。很多小县城的公众号文章能轻松过 100000+ 阅读量,而阅读这些文章的,正是留守在农村或者五六线的小县城的农村人,我们的父辈、叔辈。

微信公众号真正地解决了这些人,对互联网资讯的获取。像小县城的政府或者运营机构,他们能运营平台发布内容。

如果从这个角度出发,我们会发现小程序正式向公众号降低内容的获取与发布的门槛一样,他在解决工具的开发和获取使用的门槛,而这个门槛的降低,我想它有着我暂时无法预知的未来。

有了小程序后,编程不再是难事,未来有可能人人可编程、人人都要会编程。我期盼在不远的将来,我家乡的那些父辈们、叔辈们,能和我们一样,用上或制作出精彩实用的工具,享受互联网的各种福利。

互联网的本质是开放的,有些人认为微信推出小程序制造标准,是在开历史的倒车,是在搞封闭。

但如果换一个角度看,微信通过它自身的占有率、触达率,让那些条件不如我们的人们,和我们一样获取互联网的资讯、功能和服务。我认为微信,是在努力开放互联网,实现人人可以获取、触达、消费的伟大愿景。

想象下一切触手可得的上帝感,手机里全是可以放心的、高品质的、无需适应的APP、不用登陆注册的服务,触手可得、用完即走,太爽了。

更多Java培训,Java视频,Java教程尽在北京尚学堂Java培训,关注北京尚学堂官方微信,获得一手Java最新知识。

更多猛料!扫描上方二维码关注北京尚学堂官方微信公众号 (资料领取验证消息:156

© 著作权归作者所有

SXTkaifa
粉丝 3
博文 109
码字总数 250758
作品 0
太原
程序员
私信 提问
加载中

评论(3)

SXTkaifa
SXTkaifa 博主

引用来自“qianmenchuxue”的评论

好文,请问是否可以转载?会注明作者及出处链接

回复@qianmenchuxue : 可以
qianmenchuxue
qianmenchuxue
好文,请问是否可以转载?会注明作者及出处链接
SXTkaifa
SXTkaifa 博主
(转载)真是写的太棒了,😄
年终盘点丨细数2017云栖社区20大热点话题(附100+话题清单)

2017,你在聚能聊里分享了多少内容?贡献了多少话题?又收获了多少呢?社区聚能聊不仅可以请教技术难题,探讨热点话题,也可以八卦日常生活,分享码农们的点点滴滴。 程序员的世界不止是眼前...

云迹九州
2018/01/09
0
0
一个程序员的心声:月入上万的背后心酸只有我们知道

点击上方“程序员大咖”,选择“置顶公众号” 关键时刻,第一时间送达! 随着我们进入了信息时代,电子设备和电子技术充斥着我们的生活,我们的生活方式也被各种各样的电子设备所改变,我们的...

px01ih8
2018/01/01
0
0
1024 程序员吐槽大会 — 我的节日我做主

随着 IT 行业收入的增长,程序员引起了人们的广泛关注,许多人认为:程序员钱多话少死得早,算法语法no啪啪,上班加班又上班,格子衬衫文化衫... 工作日 休息日 这真的是! 说的有点道理啊!...

达尔文
2017/10/24
9.7K
176
www6662016com程序员的核心竞争力18288006666

古往今来,码农圈一直流传着一个特殊的魔咒,即程序员28定律,通俗一点就是:程序员群体里的小部分(约20%)的人走了管理路线,剩下的大部分(约80%)程序员,只能走技术通道。那技术通道,又...

hqgjylc
2018/08/21
0
0
焦虑够了没?咱们今天来聊聊“跳槽”

编者有言:2018年,相信大家对“焦虑”的体验已经够深了。“焦虑”是我们对人生不确定性的情感表达,这种不确定性来源于未来规划不明、前路不定的迷茫、担忧和犹豫不决。作为一名ITer,职场的...

来Offer
01/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
8
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
9
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
7
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部