前几天我发布了一个小程序
今天讲解一下自己一个人,从零到上线一个小程序要做哪些事情(没有使用云开发)
主要分成4个部分:需求、研发、运维(部署)、其他
需求
需求部分很好理解,说白了就是你想做一个有哪些功能的应用,这部分通常是由市场部门和产品部分来做的,到研发那里其实只需要产品原型就好了,整体功能我是根据个人的一些想法来做的,具体如下。说白了,就是一个刷题的小程序,然后支持点赞收藏查询和查看记录的功能。功能截图:
首页,主要是分类,和2个快捷入口
![bcae1ca78a715cf9aa40664d7acf8457.png](https://i-blog.csdnimg.cn/blog_migrate/f66ce7ba12412a9d68046f2be22bd3d4.png)
问题列表,支持排序筛选
问题详情及答案,可以收藏点赞
个人信息,可以查看历史及收藏和反馈
学分管理,为了激励大家学习特意开发的
研发
研发是所有事情中,最耗时间的,也是投入人力最多的,这里讲解一些技术架构,后面再具体分章节讲技术实现。
前端
类别 | 库/技术栈 |
---|---|
整体架构 | uni-app + vite + vue3 + TS |
包管理器 | pnpm |
网络请求 | uni-ajax |
路由拦截 | uni-crazy-router |
原子样式 | unocss, unocss-preset-weapp |
代码校验 | husky, lint-staged, eslint, prettier |
状态管理 | pinia, pinia-plugin-persist-uni |
类型导入 | types-sync, unplugin-auto-import |
整体采用uni-app
+ vite
+ vue3
+ ts
来实现的。不得不说vue3
跟ts
的结合已经相当舒服了。
后端
类别 | 库/技术栈 |
---|---|
整体架构 | nodeJs + express + TS |
包管理器 | pnpm |
网络请求 | ajax |
日志工具 | log4js |
代码校验 | husky, lint-staged, eslint, prettier |
启动器 | esno |
打包 | tsup |
因为没有使用云开发,所有全套都得自己实现,整体采用nodeJs + express + ts
来开发。
运维+ 部署
这部分一部分是运维工作,一部分打包发布是研发工作。当你只有一个人的时候,那就都是你的工作了
前端
前端的发布主要是vite
打包后,在微信开发者工具发布,在后台提审。 接口转发使用ngnix
。主要是服务器安装ngnix
,配置代理转发,就是说前端访问域名,由ngnix
转发到真正的接口地址。
后端
后端node
服务由tsup
打包代码后,由docker
来部署node
应用。
其他
购买服务期
想要部署应用,服务器是必不可少的,我买的腾讯云,2核4G,够用。
域名+备案
小程序规则限制,后台服务接口,必须是https
和备案域名,这些我直接腾讯云搞定,买了服务器后,可以顺便买个域名,然后按照平台指引备案,通常一个月可以搞定。https
证书我是安装宝塔面板,然后直接在上面申请免费证书,每3个月续签一次,作为只是接口代理转发来用,够用了。
小程序备案
9月新规,小程序也要备案才能上线了,同样按照小程序的官网规则申请备案就好了,通常需要1周时间。
应用主体、类目等
你的应用主体通常是你自己,如果你有公司可以用公司,公司主体开放的功能会更多一些,类目个人通常是开发工具类型的小程序,不需要资质认证。
总结
其实通常我们在公司工作,一个开发只需要负责接口,或者负责前端开发,但当只有你一个人弄的时候,那就全部都是你的事情了,开始做的时候很难,你会觉得无从下手,然后有n多个问题要解决,但只能是复杂问题简单化了,将复杂问题分解,从最简单的开始解决,直到把整个问题解决。
-
没有UI设计 没有
UI
设计。以前直接按照UI
设计来做,咔咔咔一个页面接写出来了,现在不说UI
设计,产品原型都没有。按钮放哪里都不知道,谁再说前端也会UI
设计我就锤谁了。 -
需要懂服务器相关的 运维部署也是你来弄,你要了解
docker
,要会编写启动你容器的命令,需要懂ngnix
,需要自己配置代理转发 -
服务端开发 对于前端用
node
来开发相对简单,但是你也需要懂一些sql
查询,express
相关的知识。
最后我希望我的小程序对大家的学习有帮助,也希望大家早点拿到自己心仪的offer
下期我会把整个代码整理一遍,把业务代码删掉,把整体框架发布出来,到时候大家感兴趣的也可以基于这套框架来开发自己的应用,可以少去很多搭架子的时间,也可以避免一些坑。有其他问题也可以直接问我。