一次积极主动,胜过无数次想法,记EggAdminV1.0破壳。

还记得上次发朋友圈,那是在2020年2月25号凌晨,大概内容:从0开始构建一个通用管理系统,0-1000难度系数,应该是999,因为新语言,新架构,从前端到后端只有我一个人来做,说实话真的很难。

曾小晖于 2020-07-06 23:05 原创发布 279 人已围观 7 人已赞

故事开始于2020年2月25号凌晨,有一个奇妙的想法,我可不可以做一套通用管理系统出来,从前后端技术选型、架构搭建、UI设计、数据库设计都由我来完成,

那么这个挑战我能不能做?难度系数是多少?成功率有多少?当时就考虑了这几个问题,然后就用XMind画了一个大概的架构图,把我想做的内容大概列了一下,

当时想的目标就是 :

  1. 整合当前掌握的技术
  2. 给自己一个完整的作品
  3. 为自己打造一套专属系统
  4. 同时也希望能锻炼一些逻辑思维,因为在后端一些数据处理上还是比较麻烦的,特别是角色用户权限这块,满伤脑筋的。
  5. 想申请一个软著,提升一下自身资质

那段时间比较喜欢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架构图  目前部分技术还没有得以实现,预计在后续二期中完成

EggAdminV1.0架构图