请问各位大神,本人想自学小程序开发,应该怎么样来学习呢?

想询问一下各位大神微信小程序的那个云开发是怎么样的,要钱么

该楼层疑似违规已被系统折叠 

想詢问一下各位大神微信小程序的那个云开发是怎么样的,要钱么服务器域名之类的还需要吗


该楼层疑似违规已被系统折叠 


该楼层疑似違规已被系统折叠 


该楼层疑似违规已被系统折叠 


该楼层疑似违规已被系统折叠 

要,就看你的需求是什么如果是个简单开发的话就花三百塊左右就成了。


}

小程序目前被炒得沸沸扬扬无數业内业外人士都对此雄心勃勃,希望占据先机借此一统江湖,千秋万代这再次证明一点,微信想让什么火什么就能火。这种能力目前在国内估计也是无人能出其右了……

好了废话不多话,言归正传作为一个要成为成功人士的男人,利用国庆的时间我好好的研究了一下微信小程序,发现网上很多言论对于微信小程序的言论在一定区间存在理解上的误区。接下来的内容我假定你已经初步的了解过微信小程序,如果你还不了解请移步,然后再回来阅读本文

一、小程序到底是不是Html5

关于这一点,网上引起的争议其实是相当大的最初大家的认知一边倒的认为微信小程序就是用Html5来开发,然后当小程序真正出来之后大家发现原来小程序跟Html5只是比较相似,但具体的規则和写法却有着一些差异不同例如:

上图为一个小程序的代码目录,后缀名分别是wxml、wxss和js不过微信对wxml的全称定义也不是weixin xml,而是WeiXin MarkupLanguage很霸氣的要自成体系感。自然wxss也是WeiXin Style Sheets一样的希望给人牛逼哄哄的感觉。

下面是一段wxml示例相对于早期的xml,扩展了花括号模板的写法

到了这个階段,部分质朴的同学就开始比较凌乱了于是又有一种见解出现,那就是微信小程序不是Html5好吧,我必须承认我也一度纠结过,你看这刚好证明了我是多么的质朴。但在经过更加深入的分析和研究之后我想表达一个观点,

同时通过分析小程序的运行原理微信小程序在本质上其实就是Html5,小程序的开发过程会用到大量HTML5相关的技术但并不是全部使用HTML5开发。有 HTML5经验的前端工程师学习微信小程序的开发相對会更容易一些微信小程序的运行并不需要一个完整支持HTML5特性的标准浏览器内核,但也可以通过添加一些辅助设施让小程序在个完整支持HTML5标准的浏览器上运行起来。

关于让让小程序在个完整支持HTML5标准的浏览器上运行起来有兴趣的同学具体可以参见。

那既然微信小程序嘚本质就是Html5为什么微信要如此大费周张的来封装成我们现在所看到的样子了?作为一名产品汪我的职业病瞬间就爆发了,而且是晚期无可救治。按照我自己浅陋的推断来看可能存在以下两个原因:

第一个原因,是借用网上不少产品人士的一种观点那就是微信需要通过这种方法来转化开发者,这些开发者未来会逐渐演变成“微信OS平台”的忠实开发者其实开发者通常都有患有“斯德哥尔摩综合症”,一旦在一个平台上投入了智力资源进行学习就会开始下意识的维护这个平台(比如看不到平台的缺点,只看到平台的优点)如果使鼡HTML5作为开发方式,那么现在小程序聚拢的开发者都是为了流量来的并没有投入额外的学习成本,对平台不够忠诚当然这个推断是否正確,无法评价只能说是一个仁者见仁,智者见智的问题了

第二个原因,是从技术的优化角度来推断的众所周知,Html5在短期内相比于夲地应用依然存在无法忽视的性能缺陷。因此也有可能是微信通过完全重构了一个内置的解析器(大概有点类似于NodeJs)在优化提升性能的基础上,去除了对性能影响比较大且不是必须存在的部分之后所得到的一个综合性的解决方案。如果是这样那自然不能再引导众多的開发者直接使用原生的Html5技术来实现小程序的开发了。与其事后陷入各种Html属性、特性不支持的吐槽声中不如直接开始就是一刀切,即避免叻麻烦又能符合自己新产品的定位和需要。当然这一切仅代表我个人的观点

第三个原因,是部分技术大牛从技术突破角度来推断的仳如,也许小程序压根就不是一个B/S的结构而是一个C/S的结构。很多人不明白c/s应用为什么也可以即点即用不用安装。其实这不是微信的首創首创是一种叫流应用(想了解详情请百度)的技术。只要是动态语言加上合适的算法,就可以先下载部分程序并运行然后边用边丅,类似于流媒体我个人认为这种可能性不大,因为我很好奇如果真是这样那微信对小程序的空间占用问题会怎么管理?

好吧分析箌这里先告一个段落,主要是我已经吃药了产品汪的职业病得到了有效的遏制。回顾我们开始提出的问题就目前所能掌握的情况,我們可以很明确的得到一个结论:

微信小程序本质上就是Html5或者说是一种优化过之后的Html5。

而至于微信为什么这么做的原因我相信,随着微信小程序的测试账号进一步开放我们也能够了解到越来越多的信息,届时有机会我再继续为大家作一些粗浅的分析。

二、移动网站或WebApp能直接改造成小程序

其实之所以会保留这个认识,主要是由于过去微信公众号的二次开发经验很大程度上给到了我们很多人先入为主嘚观念。

但通过我们上面所分析的第一个问题可以知道仅管微信小程序本质上就是Html5,但实际上却是一种优化过之后的Html5这也就意味着绝夶多数的移动网站或WebApp直接改造成小程序的难度很大,因为里面有大量的内容需要重写比如:页面的JS脚本逻辑在是在JsCore中运行,JsCore是一个没有窗口对象的环境所以不能再脚本中使用window,也就无法在脚本中操作组件更意味着zepto/jquery这些框架一个都用不了。

我认为在相当大一部分情况丅,一个以前已经写好存在的HTML5页面并不能通过自动转换工具变成一个合法的小程序Page,而需要有工程师根据HTML5页面的功能使用微信小程序嘚框架再实现一次。

老板们可能认为移动网站或之前公众号里的WebApp简单改改就可以接入小程序然后对工程师报的工期不可理解,此时工程師可以把此文转给老板看小程序是相当于重新做了一个App,从开发、设计、测试、运维升级都是单独的一套哦,你还得加个学习成本和風险如此新的东西一次搞利索的可能性还真不好说,毕竟小程序现在自己也还是在测试阶段……

三、开发小程序的学习成本

关于这一点正如我之前所提到的,有 HTML5经验的前端工程师学习微信小程序的开发相对会更容易一些我在做一个小案例的时候,能够明显的感觉到小程序Page的整体设计上有明显的“反应式”编程风格相信有vue.js,angularJSreactive.js开发经验的同学可以很快上手。当然由于没有内测资格所以没法在手机上测試性能不清楚小程序的这套框架有没有反应式编程常见的性能问题。这个等公测后先定个小目标比方说我们写他个有几十万条数据的列表,看看滚动流不流畅就知道了

考虑到微信的官方示例确实是简单到不行了,除了能帮助你了解一下基础的项目结构之外其他的意義并不大,因此我这里随意做了一个简单的示例供大家初步参考一下。因为实在太简单所以也就没有放git了,直接用网盘的形式给大家丅载好了

最后再来说说文章标题的事情。好吧我知道这是一个非常欠抽的标题。在微信小程序没有全面开放之前可能我自己也是一樣的不清醒,说不定最后打脸打得哗哗的响这年头,真应了那句话一切皆有可能……

但不管怎么样,作为一名技术爱好者、作为一名產品汪我依然会在技术与产品的这条不归路上越走越远。有时间而且如果大家能够支持的话下一篇文章我想为大家介绍一下微信小程序开发过程中,需要特别注意的几个要点

好了,这次的水文就记录到这里顺便做个广告。如果大家觉得这篇文章能够给自己带来一点點小小的帮助那么也想请大家顺手帮我一个小忙。点击的链接然后进入平台注册一个账号(手机、邮箱或者第三方登录都可以),以後有时间的话体验一下我们的产品如果能给到我一些宝贵的意见,就更加感激了是一个专注于移动教学课件建设的平台,目前已达成種子轮诚邀各位技术大神与运营牛人的加入。

}

最近在学习微信小程序开发半個月学习下来,很想实战一下踩踩坑于是就仿写了一个滴滴他们家的青桔单车小程序的前端实现,过程一言难尽差不多两周时间过去叻,发现小程序的坑远比想象的要多的多!!在实际练手中完全是黑盒的,看到人家上线的小程序的效果纯靠推测,部分效果在绞尽腦汁后能做出大致的实现但是有些细节,费劲全力都没能做出来很想一窥源码,查看究竟看看大厂的前端大神们是如何规避了小程序的各种奇葩的坑。

于是就想到获取到小程序地源文件然后再对其进行反编译还原为源代码,来作为学习参考我百度了各种关于小程序地反编译教程,但是感觉都不太适合像我这样地初学小白踩了挺多坑。在这里把我重新简化好的 快速地获取一个微信小程序源码 的方式记录下来。

先来想想一个很简单的问题小程序的源文件存放在哪?

  • 当然是在微信的服务器上

但是在微信服务器上,普通用户想要獲取到肯定是十分困难的,有没有别的办法呢

  • 简单思考一下我们使用小程序的场景就会明白,当我们点开一个微信小程序的时候其實是微信已经将它的从服务器上下载到了手机,然后再来运行的
  • 所以,虽然我们没能力从 服务器 上获取到但是我们应该可以从 手机本哋 找到到已经下载过的小程序源文件

那么如何才能在手机里找到小程序的源文件包呢?

  • 这里只以安卓手机为例毕竟穷逼不曾拥有过苹果掱机
  • 具体目录位置直接给出:
  • 在这个目录下,会发现一些 xxxxxxx.wxapkg 类型的文件这些就是微信小程序的包
  • 如果没有安装nodejs,请先安装一下
  1. 安卓模拟器(要求自带root权限)
  • 我使用的是 夜神模拟器 用来获取小程序源文件
  • .wxapkg是一个二进制文件,有其自己的一套结构

  • 但是这里有个  ,想要进入箌上面这个目录的话用手机自带的文件管理器肯定是不行的, 安卓 或者 iPhone 都要要用到第三方的文件管理器比如: RE文件管理器 ,并且安卓需要取得root权限而苹果手机肯定是要越狱的,且 iphone的越狱难度>>安卓获取root 不管越狱还是root,这都太费劲当然有能力的同学可以直接从手机上來操作,但是这里 不推荐从真机上获取 

使用安卓模拟器获取到.wxapkg文件

不用越狱,不用root使用电脑端的 安卓模拟器 来获取是一个 非常简单快捷且万能的 获取方式,具体步骤如下:

  • QQ 、 微信 在模拟器自带的应用商店里搜索下载安装即可
  • 下载好后直接拖拽进打开的模拟器窗口就会自動安装
  • 以我个人认为比较好用的 夜神模拟器 举例
  • 首先到模拟器内部设置超级用户权限


    • 这些操作的目的都是为了能让 RE管理器 顺利的获取到ROOT权限
    1. 接下来在模拟器里打开微信然后在微信中运行你想要获取的下程序(这其实是让微信把小程序的源文件包从服务器下载到了本地了)
    • 僦以我说的这款青桔单车的小程序举例(希望滴滴的大神不会想打死我~)

    • 在模拟器微信中运行一下后, 直接切回模拟器桌面运行RE浏览器 来箌目录


    • 你会看到发现里面的一些.wxapkg后缀的文件就是它们没错啦,可以根据使用的时间来判断那个是你刚才从服务器下载过来的

    • 一般小程序嘚文件不会太大可以结合时间来判断,长按压缩所选文件,然后再将压缩好的包通过QQ发送到 我的电脑

    • 如果不进行压缩的话是无法将这个攵件通过QQ来发送的



    • 所以QQ的这个功能可以让我们很方便的拿到源文件,而不必到电脑目录去找模拟器的文件目录

    • 解压。这样几步简单操作就成功拿到了小程序的源文件了。

    使用反编译脚本解包 wxapkg

    • 到这里你应该已经将反编译脚本从github下载 或者 clone 到本地某个目录

    • cd 到你clone或者下载好的反編译脚本目录下

    • 在node命令窗口中依次安装如下依赖:

    • 安装好依赖之后就是最后一步了,反编译 .wxapkg 文件

    • 例如:我有一个需要反编译的文件 _.wxapkg 已经解压到了D盘根目录下,那么就输出命令


  • 反编译脚本就能一步将.wxapkg 文件还原为微信开发者工具能够运行的源文件 目录地址和你反编译的文件地址是一样的

  • 然后在微信开发者工具新增项目即可打开
  • 运行成功,源码获取完成
  • 至此我们就通过非常简单的方式获取到了一个想要的小程序源文件并对齐进行了反编译还原 以后想要再反编译其他的小程序,非常快速 真的只需要两步

    1. 使用模拟器找到小程序.wxapkg文件

    使用此方法,絕大部分的小程序都能正常反编译出来但是也会有一些特殊的情况,具体可以查看 qwerty472123 大神的readme文件

    .apk 之类的文件反编译非常困难而小程序竟鈳以如此轻松随意地被获取到源码,根源在于小程序的开发团队并没有对小程序的执行文件进行有效的保护也就是加密,所以我们才能使用别人写好的脚本直接进行反编译其过程类似于解压。

    实际上小程序只是很简单的将图片、js和json文件压在一起,而压制的过程就是Wxml -> Html、 Wxml -> JS、Wxss -> Css转换后文件二进制格式跟后缀名为wx二进制格式完全一致。

    上线的源代码能如此简单的被获取到不得不说小程序的源码安全存在很大嘚隐患,这一点很多开发者应该也知道所以发现有些小程序会将重要的js逻辑代码柔在一个js文件中,这样即使被获取了源码,也不是很嫆易读懂但是任然避免不了被窥视的问题。 小程序作为微信生态内的新生力量不仅被官方,也被很多开发者和内容创业者寄予厚望處于对代码的安全性的考虑,这个漏洞迟早有一天会被 修复(封掉) 的

    所以这种这里介绍的获取小程序源码的方法,应该是不会太长久嘚


}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信