由于微信小程序需要审核且要求严格,想要把微信小程序移植为网页端的 Web App。就花了一晚上初步了解了一下,得到了一些入门的结论,因此也是给了“杂谈”的标签。

# 程序结构

对于微信小程序,只需要写前端的 WXML + WXSS + JS(分别对应 HTML + CSS + JS)就可以了。

而对于一个 Web App,仅有前端则不够。因为 Web App 前端是不能直接访问数据库的。

如果前端能直接访问数据库,那么任何人都可以在浏览器中修改前端代码,以任意方式访问数据库。(而微信小程序代码不开源、不能修改,并且小程序的云数据库只能从小程序中访问,所以直接访问数据库也不会有安全问题)。

对于数据库访问的解决办法,是在数据库服务器上用 node/Django 搭建一个后端,作为前端和数据库的桥梁。前端 JS 和 后端 node/Django 交互,node/Django 和数据库交互。

# 前端框架

前端框架流行的有 Angular、React、Vue。但框架是什么?

上述框架对于 JS 就类似与 Qt 对于 C++。

  • 框架本身是基于其原生语言编写的;
  • 框架的某些语法(如 Qt 的信号槽)能够让开发者快速实现原生语言需要写很多代码才能实现的功能(如使用 Qt 在 C++ 实现异步操作);
  • 框架代码在编译过程中也会被转为原生语言。

对于学习哪些框架,对于前端开发者当然是都得学,而其他开发者的话就是按需了 2333

# Material Design 界面

Material Design 大法好。

对于 Material Design 的实现,目前比较中意前两款:

# 后端框架

如果想基于 Python,可以使用 Flask 或 Django。前者属于轻量级,数据库什么的插件需要自己找,自定义程度高;Django 插件很多(自带用户认证等),自己的 Model 兼容多种数据库,并且还有 Django REST Framework 这个 REST API 框架,能够迅速构建一个 REST API 后端。最终我采用的是 Django + REST Framwork 作为后端。

如果想基于 Java,Spring 也是一个不错的选择。我也是打算通过 Spring 后端学习一下 Java 基础,毕竟大多数后端工程师还是要求会 Java 的。

# 图标生成

https://www.favicon-generator.org/