天天看点

js工程师变身全栈开发,uni-starter前后端一体快速开发框架介绍

作者:软核改造祝融叔

现在主流软件业务系统,都是分前后端系统分离。后端服务器采用以前用java,或者php,后面用Node.js后来居上,前端就比较多了,有移动App比如Android,iOS,还有网页版,后面小程序流行起用,又专门开发微信小程序,头条小程序。

js工程师变身全栈开发,uni-starter前后端一体快速开发框架介绍

这样一个业务系统团队往往有后端开发人员,后端管理网页/pc端网页 (Java,php),移动App原生开发人员(java,Objective-C),小程序的javascript开发人员。这样需要多人才能开发,人力成本,沟通和前后端通讯的成本都是巨大的。

js工程师变身全栈开发,uni-starter前后端一体快速开发框架介绍

现在 dcloud推出一体框架,前端是uni-app,采用vue.js的语法可以同时开发出移动App,小程序,H5网页,甚至可以打包成桌面版可执行文件。

后端采用基于云产商的serverless技术的unicloud.

数据库也采用类似于Mongodb风格的NoSQL 云数据库 再加上配套后端管理网页 uni-admin。

整套框架下来全部用javascript开发,js一下子抢了App开发,后端服务器和运维人员的饭碗了。 成本也大大节约了。

关于uni-app

前端就是uni-app,这个基于vue.js的框架可以一套代码开发多端程序,比如

移动App(Android/iOS),H5网页,桌面应用,及各种小程序,快应用.

js工程师变身全栈开发,uni-starter前后端一体快速开发框架介绍

当然代价是有的,就是性能上的的损失。因此在对性能要求高应用不太适合。但是对花哨和界面大同小异的业务型系统,非常适合。

另外一在微信小程序原生是腾讯用了一套 wxss,wml之类自定语言,但uni-app采用一套vue的javascript语法,也就是两者的设计是完全不一样,这样界面设计完全不重用,而uni-app采用自定义解析,整个资源包非常重。这是提前知道的。

js工程师变身全栈开发,uni-starter前后端一体快速开发框架介绍

unicloud

而后端的 unicloud是基于新推的Serviceless 技术上再封装一层,所谓的Serviceless就是把服务器的运维,配置,资源调整,数据库管理,前后端通讯通通封装了,开发者只集中开发服务端的业务逻辑. 优点就是开发的门槛大大降低了,

传统的java /php 服务器开发,除了需要开发者会java 外,还要有Linux 基本命令管理,数据库管理,与前端http通讯协议编写.以应性能调用,需要技能很多,现在通通交给云服务产商,

缺点就是数据掌控不高,目前只能绑定在公有云产商身上,而且流量资源价格会略贵于一点。

对于数据安全重视的企业可能有疑虑,按产商说法后面会有独立安装版本。还有一种做法是不断同步到自己数据库当中。

uni-admin

面向后台管理员的用户界面有约定成约界面规范和成熟框架.比如vue-element-admin

js工程师变身全栈开发,uni-starter前后端一体快速开发框架介绍

但是虽然是成熟的东西,与后台对接和数据绑定处理还是要从头处理。因此一个完全针对uicloude的uni-admin就是直接与对应unicloud和相应插件配合,虽然做不到通用框架那么酷炫,但是也能用够用了.

js工程师变身全栈开发,uni-starter前后端一体快速开发框架介绍

关于uni-starter的轮子

对于业务型前后端系统,很多轮子是重复又是不得不做的

  • * 用户的注册,绑定微信,QQ,登录,注销
  • * 支付,及财务管理
  • * 权限管理
  • * app升级
  • * banner以及前端广告

...

而uni-start 在uni-app/unicloud 增加很多组件来解决这一些轮子

如果说uni-admin是管理端项目的基本项目模版,那么uni-starter则是用户端、尤其是移动端的基础项目模板。

uni-starter + uni-admin 提供了用户端和管理端的全套模版,开箱即用

1. 用户管理: uni-starter的用户管理本质是集成了[uni-id-pages],它包括众多功能:

* 登录注册(用户名密码登录、手机号验证码登录、APP一键登录、微信登录、Apple登录、微信小程序登录、手机微信扫码登录、微信公众号内登录)

* 修改密码、忘记密码、头像更换(集成图片裁剪)、昵称修改、积分查看、退出登录、账号注销

2. 系统设置:

* 内置[App升级中心]整包升级、wgt升级、强制升级,后台搭配uni-admin的升级中心插件管理)

* 推送开关(app)、清除缓存(app)

* 指纹解锁(app)、人脸解锁(app)

* 多语言切换

这样大量功能不用开发了!具体可以查看官网介绍

#好内容我来评#

关于与第三方服务器对接

serverless毕竟是比较封闭的东西,但现实项目往往有专门的服务器,比如物联网服务器,云端人工智能远算,游戏服务器这一类不太可能迁移到uicloud上,因此与其它配合也是一种方案。另外数据安全也要考虑,要考虑迁移和安全。

最标准unicloud的云函数url化,这样第三方服务器可以通过http json接口来访问,比如查询用户有效期,用户信息等。但是得由第三方服务器主动请求unicloud

对于大量实时数据通讯或者unicloud 向其推送,可以试着用websocket进行对接。

还有一种情况,uicloud实际上是运在一个Node.js沙盒上,也就是说第三方服务提供Node.jssdk包,也能直接对接,比如微信,支付宝支付就是这样实现。

总之,在于项目时间比较紧或者想快速试错,用uni-app+uicloud是一个非常不错的选择。

继续阅读