
开发微信小程序那些事(牢骚向)
最近,因为一些工作需要,需要开发一个交互程序。
经过不激烈的思想斗争,直接就选择了微信小程序作为前端。
一般来说一个给人使用的系统需要两个方面的,一个是给人看和操作的界面部分称为前端,另一个是在服务器一类的设备上部署的实现数据、计算和控制等功能使用的称为后端。
而微信小程序本质上也是一种BS架构,也称为浏览器-服务器结构,也就是我们平常使用的360浏览器、Edge、Chrome之类的浏览器打开的网页。
科普下网页工作流程
HTML负责显示网页上显示各种组件的声明和绑定,就是将用户需要看到的信息按照网页从上到下罗列出来。
CSS负责组件的样式,包括组件的距离、是否有圆角、颜色、大小、文字字体等等非常多样。网页多好看,很大程度在css上体现出来。
JS是网页工作的逻辑,比如按钮的功能、HTML里内容的绑定、跳转页面等等功能,是与后端连接的桥梁。
前端开发
微信小程序采用了和网页类似的开发方式,有HTML、CSS和JS文件组成,只不过他们分别叫WXML、WXSS和JS,看起来真像有点差别。
对比网页,微信小程序可以说在很多方面更新一步,有自带的扫码,有用户识别码,有定位支持。不需要复杂的编程只需要借助微信提供的接口就能轻松的实现。
小程序有一套看上去就很赏心悦目的,实则一点也不好用的开发手册,作为一个没有HTML开发经验的小白,可谓是困难重重。
它还有一个看上去就很萌的开发者工具,据说是由VScode改的,里面开发、编译、调试一条龙,甚至有自带的模拟器。(全是IPhone机型)
这开发者工具可以直接上传编译好的代码,在开发者的手机上测试,可以说比Android应用开发简单很多了。
前端,也就是用户可以看到的界面开发非常简单,如果了解网页制作和数据传输的原理,B站大学看一会就能上手
虽然页面的逻辑和网页差不多,不过也有像是自定义TABbar,就是页面下面的选项框这样的特殊单元,需要创建指定名称文件夹才能正常显示。
后端开发
后端开发就很适合我这种学了各种语言,但只有python能打的菜鸡,这次使用Flask这个web框架,不仅提供了成套并且简单的事件响应体系,也可以利用自带的转发进行测试。
而且最诱人的是之前开发积累的代码可以复用,直接复制粘贴就是一个新程序哈哈哈。
from flask import Flask, request, jsonify
@app.route('/api/data', methods=['GET'])
def get_data():
# 创建一个示例数据列表
data = [
{'id': 1, 'name': 'Alice', 'age': 25, 'city': 'New York'},
{'id': 2, 'name': 'Bob', 'age': 30, 'city': 'Los Angeles'},
{'id': 3, 'name': 'Charlie', 'age': 35, 'city': 'Chicago'}
]
# 返回 JSON 数据
return jsonify(data)
后端还有一个比较重要的就是数据库,大量的操作都和数据库有关,不过我比较懒,前期直接用Sqlite3作为数据库来测试,一个文件就能当数据库真爽。
当然估计后面还是要换成大数据库。
其他问题
开发过程中最多考虑的就是安全,大环境导致审查之类的很严格。微信会自动为每个小程序用户注册一个Openid,可以作为身份验证,还有一个就是前端到后端的通信安全,最基础的肯定是防火墙和HTTPS,还需要CDN这样的东西用来掩盖服务器真实地址,还有一些设想中的方案,看大佬们的意见。
还有一个发愁的就是UI设计,我最近觉得界面好看,是一个系统让用户一直使用下去动机之一,所以各种剽窃借鉴别的小程序的样式。