likes
comments
collection
share

上线发布两年了,更新一下课程文档

作者站长头像
站长
· 阅读数 7

前言

大家好,我是程序员十三。

两年时间,真的是弹指一挥间。但是,对于一个线上课程来说,两年的时间已经足够使用沧海桑田来形容,是时候以全新的姿态和大家见面了。这篇文章,笔者会谈一谈为什么更新这个课程、更新了哪些内容,以及本课程实战项目newbee-mall近两年的变化。

课程更新缘由

课程更新的主要缘由如下:

另外,本课程的40多篇文档都是2019年写作和整理的。虽然过程中也优化了一些文档,纠正了一些错别字和错误的表述,难免会有一部分漏网之鱼。2020年整理书稿时,在电子工业出版社几位编辑的指导下,文字编校和行文表述的功力有了一些进步。因此,重新整理了本课程的教学文档,改正了一些不规范的表述和字词的错误使用。学习如逆水行舟,不进则退。对于一个作品来说亦是如此,如果这个课程的内容不能及时更新迭代,也会慢慢地失去吸引力直至被人忘记。

其次是近期有了一些空闲时间,之前几个月一直非常忙,有一段时间甚至天天加班。一边忙着公司的事情,也会抽出一点点空闲的时间做副业相关的事情,比如2021年8月至2021年10月底,就完成了第二本实体书的草稿,后续还要花很多时间再去完善和修改。完成实体书的草稿后,就开始计划着更新迭代这个课程,因为短时间内也根本无法完成第二本实体书稿的定稿,不如赶紧把这个课程先给更新一下,索性拿出一两个月的时间来完成这个事情。在制定了更新计划之后,就慢慢地开始重写这些文档。

更新了哪些内容

本课程主要包括40多篇课程文档和18份教学源码压缩包,主要的更新内容都是针对这两个部分。而本课程所讲解的实战商城项目newbee-mall则是课程文档和教学源码更新的基础,因此本小节主要讲解这三个部分的更新和优化。

商城项目迭代更新

本课程2019年版本中的源码使用了newbee-mall项目第一个版本作为基础代码去整理的。当时的newbee-mall项目刚刚开源,两年后的今天已经更新迭代了数十个版本,提交记录如下图所示。

上线发布两年了,更新一下课程文档

版本更新如下:

页面样式更新

最初开源时,前端页面的测试主要是自己一个人在做,不是很充分,有些页面瑕疵并没有发现。后续将这部分的瑕疵一一修改,也删除了一些无用的文件和样式,让页面看起来更加舒服。

缺省页面效果添加

当列表数据为空时,并没有单独做缺省页面效果,页面效果非常简陋,后续更新中也逐一添加到项目中,比如商品搜索列表页面、购物车页面、订单列表页面。

BUG修复

刚开源时的项目有一些BUG,在开源后的两年时间里都被逐一修复。有些BUG是自己发现的,有些则是使用了这个项目的小伙伴们发现的,非常感谢大家。比如SQL注入的BUG、订单请求未被登录拦截器处理的BUG、商品搜索未过滤下架商品的BUG、用户修改信息导致字段变为空的BUG、登录拦截器未成功拦截的BUG。这些问题都被一一修复,希望能够继续发现问题,继续完善项目。

相关链接如下:

CVE-2019-19113 Detail

issue:SQL Injection

issue:几个潜在漏洞提醒

issue:IDOR causes unauthorized changes to any user information

issue:System background authentication can be bypassed

issue:后台下架商品前台扔能搜索到的bug

代码优化和TODO事项处理

这部分代码更新,主要是包括一下三点:

  1. 代码整理:删除无用代码,处理TODO事项,有些逻辑一开始就想加但是没来得及加上。
  2. 参数验证和判断逻辑优化:代码中的参数验证不充分,有些方法中甚至没有判断参数是否合格就进行了入库操作,这些都一一改正了。
  3. 异常处理优化:增加了全局异常处理、错误页面重做。

版本升级

主要是Spring Boot技术栈的版本升级,原来是2.1.0,升级为2.3.7,相应的依赖版本也都升级了。

还有验证码的生成规则也进行了修改,之前使用的是kaptcha。不过版本更新时间是2015年,因此替换了一个实现方式。

插件升级

  1. 富文本编辑由KindEditor升级为最新版本的wangEditor。
  2. 列表显示插件jqGrid升级至5.5.2。
  3. 轮播图插件Swiper升级至6.4.5。

对应的代码也做了删除和调整。

课程文档更新

在本课程第一版的所有文稿都整理完成后,笔者的心里开始有了出版一本实体书的想法。2020年3月份开始与电子工业出版社进行沟通,之后是确定选题、写样张、签订约稿合同,到2021年2月份完成初稿,之后开始与出版社的编辑一起进行书籍的编审工作,最终于2021年7月份正式出版了。经过一年多的时间终于出版了第一本实体书籍。

然后,就有了本课程升级迭代的事情。在书籍出版的第4个月之后,终于找出时间完成了这个课程的升级迭代。

从2021年11月2号开始更新,记录如下图所示:

上线发布两年了,更新一下课程文档

上线发布两年了,更新一下课程文档

在2021年12月份完成了大部分文档的更新,工作日志如下图所示。

上线发布两年了,更新一下课程文档

课程的章节有增加有删减,主要是删减了部分已经舍弃技术讲解的章节和阅读量很低的章节。同时,所有的文稿整体来说更加书面和正式,因为是在书稿的基础上,完成了本次所有文档的更新迭代。笔者的写作习惯和写作技巧也在出版社编辑的指导下有了一点进步。

课程文档中的文字方面主要有以下几点改变:

  • 错别字减少。
  • 表达方式更书面和正式,减少了口语化的表述和啰嗦的句子。
  • 文档中所使用的专业名词统一并且规范,以官方叫法为准。
  • 标点符号规范,没有乱用标点符号。
  • 大部分配图都重新制作,替换了2019年初版文档中的图片。
  • 新增章节编号,结构看起来更清晰。

教学代码更新

开源仓库中的代码是本课程中实战项目完整的项目代码,而本课程中每个实战章节都有对应的代码。大家可以这样理解,newbee-mall开源商城项目被拆解为一个个独立的知识点,本课程每个章节的代码是对这些独立知识点的逐一实现,最终从零到一开发出商城项目。每个章节对应章节的讲解代码和最终成型的源码包,更适合大家循序渐进的去学习。

这部分代码也全部更新,很多的讲解案例和代码与2019年最初的版本有了很大的区别,基本上是重写了一遍。新的源码包汇总如下:

上线发布两年了,更新一下课程文档

实战项目 newbee-mall 两年的开源历程

自2019年10月开源以来,在newbee-mall这个项目上发生了很多让人意想不到的事情。即使作为项目作者,心里也会有些许恍惚。笔者完全想象不到这两年时间里,会有这么多开心的、离谱的、意外的事情发生在这个开源项目上。

从 0 个 Star 到 8.2K 个 Star

2019年10月份开源,正式和大家见面。两年多的时间,newbee-mall项目的数据已经非常不错了。

上线发布两年了,更新一下课程文档

非常感谢大家的支持,今后依然会好好的维护这个项目。

从一个项目到一系列项目

新蜂商城的优化和迭代工作不会停止,不仅仅是功能的优化,在技术栈上也会不断的增加,截止2021年,新蜂商城已经发布了 5 个重要的版本:

  • 新蜂商城 v1 版本,于 2019 年 10 月 9 日开源,主要技术栈为 Spring Boot + MyBatis + Thymeleaf。
  • 新蜂商城 Vue2 版本,于 2020 年 5 月 30 日开源,主要技术栈为 Vue 2.6。
  • 新蜂商城 Vue3 版本,于 2020 年 10 月 28 日开源,主要技术栈为 Vue 3。
  • 新蜂商城后台管理系统 Vue3 版本,于 2021 年 3 月 29 日开源,主要技术栈为 Vue 3 + Element Plus。
  • 新蜂商城升级版本,于 2021 年 6 月 2 日开源,增加了秒杀、优惠券等功能。

另外,2022年也会开源新蜂商城微服务版本,技术栈选型为Spring Cloud Alibaba。目前正在开发测试中,后续会直接开源到GitHub仓库中。

新蜂商城版本记录及开发计划如下图所示。

上线发布两年了,更新一下课程文档

由最初的一个newbee-mall项目,到现在已经“开枝散叶”,成长为一系列的项目集合,如下图所示。想要一个开源作品保持长久而健康的生命力,这也是一个非常不错的办法。

上线发布两年了,更新一下课程文档

初心不改,砥砺前行。今后当然会继续扩展技术栈,为大家带来更多和更好的实战练手项目。

一些意外的事情、开心的事情

newbee-mall并不是笔者所维护的唯一的开源项目,做了几年开源项目也发生了很多很多或开心或无奈的事情。

有一些比较离谱的事情,比如BUG被漏洞平台收录,比如项目代码在闲鱼、b 站上被倒卖,比如明明文档里把所有信息写得清清楚楚还是被翻来覆去的问,比如测试数据被删等等。有些事情也都写到文章里了,链接如下:

除此之外,分享开源项目和写文章,也让笔者的生活有了很大的变化。变得不那么沉默,眼界也扩展了很多,不再是原来那个闷头写代码的自己。见识到了更多的人,接触到更多的平台。也尝试这做了不少副业,写了一些副业总结,这些文章可以在笔者的文章列表里可以看到,就不多啰嗦了。

以newbee-mall为基础的Spring Boot实体书出版

上线发布两年了,更新一下课程文档

回顾这两年,像是在做梦一样。

2019年在写下 newbee-mall 项目的第一行代码时,笔者有想过它会在接下来的两年里不断地成长吗?没有。

2019年在开源 newbee-mall 项目时,笔者有想过两年后它会经历那么多精彩的故事吗?也没有。

未来会怎样,没有人可以预知。前行的路上只能坚持不懈,不断努力,去成为更优秀的自己。回首过去,对曾经的那个自己说:你很棒。与诸君共勉。

总结

本篇文章主要是对2021年这次课程更新工作的一次总结,从规划到确认,之后是具体的去优化和整理,最终呈现到大家的面前。

上线发布两年了,更新一下课程文档