
故事开始于2020年2月25号凌晨,有一个奇妙的想法,我可不可以做一套通用管理系统出来,从前后端技术选型、架构搭建、UI设计、数据库设计都由我来完成,
那么这个挑战我能不能做?难度系数是多少?成功率有多少?当时就考虑了这几个问题,然后就用XMind画了一个大概的架构图,把我想做的内容大概列了一下,
当时想的目标就是 :
- 整合当前掌握的技术
- 给自己一个完整的作品
- 为自己打造一套专属系统
- 同时也希望能锻炼一些逻辑思维,因为在后端一些数据处理上还是比较麻烦的,特别是角色用户权限这块,满伤脑筋的。
- 想申请一个软著,提升一下自身资质
那段时间比较喜欢nodejs,当时在koa2,心里想着我是前端工程师,那么选koa2应该没错,虽然不是很懂,至少看文档可以写代码,再后来接触了阿里的Eggjs,感觉瞬间有了很大信心,中文文档友好,egg基于koa2统一了MVC模型规范,
路由、控制器、服务分开写,简洁易懂,通过官方提供的脚手架很简单,egg也封装了很多中间件,比如egg-mysql、我使用了mysql数据库,使用sequelize来操作数据库,有github中文文档还不错,
当然前端依旧选用我的专长,vue2.x + element-UI,放弃了Iview,它的很多实用组件商业化了,不过人家也没有错,开源也需要资金支持才可以维护,哈哈哈,纯个人观点不喜勿喷,
当时项目架构是这样设想的:
- 后端: eggjs提供Api服务,mysql提供数据解决方案
- 中端(自取的admin管理端):采用开源大佬花裤衩的elementAdmin基础版二次开发,为EggAdmin定制版,实现调取后端接口,完成操作
- 前端(博客/门户网站):为了SEO友好果断采用nuxtJs做VueSSR服务端渲染,期间观摩了vue官方提供的服务端渲染方案,和水滴前端开源的vueSSR方案,后来还是觉得nuxt更适合我,
开发期间遇到很多难题:
- 用户数据库应该怎么设计,角色权限怎么设计,角色和用户关系如何设计,角色和后台路由(菜单)怎么关联起来?
- 中端Admin管理界面怎么实现动态路由,不同用户登入不同的菜单展示,如何做到精确到按钮级别的权限校验,富文本编辑器选那个更合理,当用户写到一半文章一不小心刷新页面怎么办?
- 用户登录后,怎么把对应权限缓存起来,当用户请求接口时如何做权限校验?
- 怎么处理图片上传,图片上传后怎么管理?
- 写的这么多Api接口,接口文档怎么看,能不能可视化展示?
- 开发的系统,能不能有利于二次开发?
- 还有很多开发途中遇到的坑...,毕竟第一次用egg新框架,然后mysql也不是很懂。
基本上都是利用业余时间来开发的,平时在上班写代码,然后还比较喜欢摄影,学学修图什么的。
大概在3月2号,eggAdminV1.0前身已经问世,后续时间基本上在维护升级,目前再等软著证书下发,系统已经部署,还有一些细小bug需要维护,
还是比较喜欢那句话,一次积极主动,胜过无数次翻来覆去的想法,为兴趣爱好干杯,未来,我将把EggAdmin做的更好!
附EggAdminV1.0架构图 目前部分技术还没有得以实现,预计在后续二期中完成

版权申明:本站所有文章未特殊说明,都为曾小晖原创发布,转载务必备注:"原文出自曾小晖原创博客 www.zengxiaohui.com"