零基础如何选择小程序技术栈?

思微行远 · · 5827 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

背景

3个月前,因为某个创意,我想用小程序来实现。到今天,程序已经开发出来了。 在从一无所知到完成目标的过程中,如何进行技术栈的选择,是关键的第一步。这里把我的选择过程与思考记录下来,希望对他人有所帮助。

小程序平台

所有的选择,起源于需求

选择小程序就是“傍大款”,借助小程序所依附的互联网平台进行广泛的分发,享受流量红利。现在除了微信,百度,头条,支付宝,基本上有点规模的互联网公司都推出了自己的小程序。选择小程序的平台,其实是选择背后的互联网平台。所以,使用什么平台的小程序开发,是依赖于需求的。

所以,需要先去理解小程序在这些互联网平台的定位,才能搭上这趟快车,不至于南辕北辙。

这里有几篇文章推荐:

开发者如何选择小程序平台-掘金

微信小程序与百度小程序的区别

微信上线小程序是为了实现O2O链接线上线下,让微信达到千秋万载,一统江湖,成为人类的终极连接器。

支付宝,则通过借助小程序,连接各种实体和商家,实现内容的丰富和流量聚焦于B端。

百度通过把搜索流量导入到小程序,AI赋能,绝对开放,孵化了微信的竞争对手,但感觉主体战略不清楚。

头条作为内容领域的扛把子,小程序主要是进行内容分发和交易,通过头条算法的智能赋能和场景化,提高转化率。

我要做的是一个教育类的软件,主打社交属性,自然抱的是最粗的大腿:微信。

开发框架

目前有很多小程序开发框架,比如:Wepy mpvue taro,这些框架还有很多,那我们如何抉择呢?其实关键还是看几个问题的答案:

框架解决什么问题?

  • 跨平台

    通过框架,往往可以一次编写编译成多个H5,Native,各平台小程序。减少开发成本

  • 工程化

    具备NPM等框架,可以方便的进行团队开发。

  • H5主流开发体验

    采用React,VUE等风格,使开发人员不需要学习新的技术

框架带来什么问题?

  • 可控力下降

    小程序本身已经是二次开发了,有大小的限制,如果再包一层,对代码的可控性肯定会下降,如果功能简单就无所谓,但如果,小程序内功能较为特别,可控力下降就会很麻烦。

  • 兼容性

    框架出现时间不长,但心非常大,基本都奔着跨小程序平台去的。导致各种兼容性问题。

  • 文档不足

    小程序的文档已经被人很吐槽了,框架也一样,通过框架节省的时间,很多情况下要还回去。

综合来看,框架主要解决的是多平台编译和编程习惯问题带来的是控制力下降。而原生开发的主要问题是学习成本,控制力是最强的。从产品上来说,多平台编译基本上是给轻量级应用的,如果一个应用是重点应用,一般不会采用这种方式,一旦出问题,成本太高。

所以,综合考虑下,我的小程序采用原生的方式开发。

UI 框架

我们都希望小程序有统一的风格样式和交互方式。其实微信官方有WeUI的CSS和JS库。微信的官方风格是有的,而且也是建议的风格。但毕竟我们都有一颗躁动的心,不甘于平凡...

目前大概的主流的微信小程序UI框架为:

UI Github Stars 说明
WeUI 11.5k 官方的
VantUI 11.1k 有赞出品
iView 5.2k 基于vue.js
MinUI 3.4k 美丽说
Wux 4k
Vut 13 比较简单的一套

对比而言VantUI是非官方用量最大的,而且查了网上的评价,都认为Vant的设计好一些,从视觉效果上来说。Vant也更精致些。

所以,我的小程序选择了VantUI为UI框架

语言

微信小程序开发支持Javascript和Typescript两种语言。查了很多网站,真正讲微信开发Javascript和Typescript的区别的没有,但大部分使用Typescript的是使用VSCode进行代码开发,然后用微信小程序开发者工具进行真机调试。使用Javascript简单些,但大项目可能管理难,而且对类型支持交叉。代码量大的情况下不好维护。

上面是我在小程序真正开发前写的。现在想说的是:别用Typescript

自从用了Typescript,就不断被坑,可以查到很多官方的问题,真的是眼泪汪汪啊。这些问题,我回头在另外的文章中会说到。就用Javascript,这是比较稳定可控的。可以看看微信自己的官方示例都是JS的。

  • 微信自己实现了一套语法,跟标准的js不一样,

  • 微信小程序的渲染和后台分开了,无法直接操作DOM进行渲染。

这两个问题,其实在开发起来,是完全不影响效率的。

即使没有上面的问题,作为零基础开始,先别心大,考虑到第一次写微信小程序,如果一次引入太多技术点,容易卡在某个地方动不了,还是选择Javascript来作为第一次的开发语言,这和技术先进性无关。

开发环境

微信小程序开发工具有windows和linux版本,但在deepin中的安装过程中,linux版本出现问题。默认还是以windows开发为主,即使在windows上,通过远程桌面开发还会出现画面花屏的情况。

从个人使用Notepad++,Sublime等工具后,感觉VSCode是最好的,非常小,速度快,有非常好的插件机制,虽然比较IDEA要稍差一点,但感觉不用多久就可以完全超越了。但查看了很多文章,因为小程序编译预览的问题,目前如果使用VSCode只能用来写代码,不能run,感觉还是尴尬的。所以,暂时用微信小程序开发工具。

后端技术平台

在详细研究云开发之前,我一直在研究golang。作为后端出身,自然对后端的开发驾轻就熟。希望后端由自己搭建。我购买了云服务器,安装ngnix,安装mysql......

但实际开发的时候,发现小程序开发工具有云开发这个选项。打开一看,原理是在后端启动256M的小虚机跑nodejs,前端可以利用nodejs在后端跑小功能,这叫云函数。后台提供一个mongodb作为数据库,这叫云数据库。

小程序提供的云开发已经集成在环境中,用起来还是蛮方便的。我即使不想用,还是随手点了点,发现挺简单的,查了下API难度很小。就尝试用了起来,因为软件简单,直到做完,发现直接用云开发就够了。

我的那台云服务,到现在还在吃灰......

总体的感受,晕开发作为小程序还是非常适合的,算是找准场景了。小程序毕竟不是大程序,内容少,数据少,内容多变,上线速度又快,云开发能力不强,但基本够用。再加上监控面板,如果要个人搭建并实际投入开发,需要另外再加3个月。可换成使用云开发,基本上就是多花几天就可以完成后台开发了。

云开发的缺点也不少,工具不够专业,功能不够强大,很多强制规则。比起自己的云服务,贵了很多。但比起要我一个人来维护一个云服务器后台,我还是真的愿意选云开发,掏钱也行,算一下一个月30块钱可以放心的运营一个1000活动用户的小程序。个人开发者没有那么多的精力,还是愿意掏钱有个稳定的后台。

[云开发的介绍文章] https://juejin.im/post/5ba2fa43e51d450e5d0b0676


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:思微行远

查看原文:零基础如何选择小程序技术栈?

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5827 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传