总结了一些真心话,对于如何做好一个开源项目有很大的帮助。本文将从项目背景、项目的开发历程、项目规划、技术栈总结进行项目复盘,讲一讲如何保持开源项目的生命力、如何选择优化的方向、开源项目究竟会帮助到谁?

项目介绍

newbee-mall 项目是一套电商系统,包括 newbee-mall 商城系统及 newbee-mall-admin 商城后台管理系统,基于 Spring Boot 2.X 及相关技术栈开发。 前台商城系统包含首页门户、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、个人订单管理、会员中心、帮助中心等模块。 后台管理系统包含数据面板、轮播图管理、商品管理、订单管理、会员管理、分类管理、设置等模块。

于 2019 年 10 月份正式开源,之后在项目改进的同时,又加入了 Vue 技术栈改造成前后端分离版本,Vue3 发布 release 版本后,又使用 Vue3 进行了重构。

img

仓库地址为:

GitHub : https://github.com/newbee-ltd

Gitee:https://gitee.com/newbee-ltd

目前,newbee-mall 系列开源项目中的几个仓库,Star 数量加起来也差不多 9k 左右,如下图所示。

image-20210314152630628

当然,并不是一个非常好的数据,却是我做开源项目以来受到最多关注的项目了,之前也做了一些开源项目,基本都是1k、2k star的样子。

开源历程和项目规划

在 GitHub 上写一些开源项目,这件事情我做了 5 年了:

image-20210314151813509

从 2017 年的第一个 ssm-demo 开源项目,到如今的 newbee-mall 系列项目,我也没想到能够一直坚持了下来。

至于为什么会写这个商城项目呢?大家通过我过往做的开源项目应该能看出一二,最开始做的是基础的 demo,后面是做一些小项目,之后也写过开源博客项目,由小项目到大项目,这是一个循序渐进的过程罢了,在三年时间里慢慢过渡,从无到有、由小至大,最终有了这样一系列的项目,在 2019 年开始开发并维护 newbee-mall 系列的开源项目。至于为什么会选择走商城方向,主要是在几个交流群里和大家沟通过,貌似大家对商城类的项目更为感兴趣,所以就决定开发了它。

这个项目其实 2018 年就在开发计划中了,但是一直没想好怎么做,做哪些功能,页面又怎么写,一方面因为这种项目比较麻烦,毕竟不是写一个学生管理系统,另一方面是工作比较忙,也一直没时间去做,所以一直拖到 2019 年的下半年。自从在网上写博客、在 GitHub 上开源了几个小项目之后,很多朋友都会选择与我沟通,或者问我一些问题,这其中有相当一部分还是学生或者 1-3 年经验的朋友,通过与他们的沟通呢,我在写项目和想问题的时候也有所改变,目前做的几个项目都更注重一些基础的东西:别太麻烦、运行顺利、别缺代码。

回到项目本身,通过上面说的几点呢,相信大家也能够看出来,我就是想写一个能够让大部分人,即使是初学者或者在校大学生,都能够运行起来的开源商城项目。

于是,新蜂商城就开源了。

newbee-logo

随后的两年,newbee-mall 系列仓库也在不断地优化:前后端分离版本的开发、newbee-mall-plus 升级版本的开发、加入 Vue3 技术栈。

2020 年 5 月,新蜂商城 Vue 版本也开源了。

2020 年 11 月,新蜂商城 Vue3 版本也开源了。

2021 年 1 月,newbee-mall-plus 版本启动开发,计划加入三个功能:秒杀功能、优惠券、对接支付宝。

2021 年 3 月底,newbee-mall-admin 将会启动开发,使用 Vue3 + element plus 重构后台管理系统。

项目复盘1:
开发和维护一个开源项目,是一个长期的工作,并不是一朝一夕的事情,不是说开源了就没事了,要坚持长期维护,保持一个开源项目的长久生命力。一个开源项目的生命力,更多的还是掌握在作者手上,作为领航的舵手,一定要让舰船扬帆远航。

set sail

程序员那么可爱,怎么可能有坏心眼呢?

做开源项目也不是一件容易的事情,首先是要挤时间,其次是要花费更多的精力,对人的身体和精神都有一定的消耗。

除此之外,随着面对的人越来越多,听到的声音也越来越嘈杂,此时已经不是面向老板或者产品经理编程,而是面向技术人的编程。声音多了,其中肯定有好的,这是对作者的鼓励,也难免会有一些不好听的,这是对作者的质疑。

因为这个项目,收获了很多的朋友,收到了鼓励和感谢,有人会说谢谢十三哥,有人会说这个项目帮助了他学到了很多实战知识,有人说因为这个项目的开发经验而找到了工作、完成了课程作业等等。也收到了一些恶评和质疑,有些话我就当作没看到,有些人我也没时间搭理,在网上吵架是很没意思的一件事,首先,不一定不能吵赢这些吵架的高手,其次,即使你吵赢了,又能如何?而且有些评论虽说阴阳怪气,但是也不至于去和人家吵吵,继续做自己的事情就好了,本来就那么忙,哪有时间去吵架。

还有,因为这个开源项目,也发生了很多搞笑的事情,之前也写过文章记录。

举一个常见的例子,不只是我的开源项目,我看到其它开源项目中也会经常出现这种评论:

你写这种项目开源项目有什么用?

当然,上面这个问法我已经做了美化,有很多话是没法写在文章里的,我一般会向阴阳怪气的人这样回复:

不同阶段的开发人员的需求是不同的,你觉得这是一个很简单的项目所以会提出这些质疑,但是也有很多人一直催着我继续更新,因为你们所处的阶段是不同的,很多人是需要一些“不那么复杂”的基础项目去练手的,newbee-mall 系列的几个开源仓库都是如此,代码全部免费开源,有需要的人可以直接上手练习并掌握一些实战技巧,实用和免费这两点是非常重要的。我只是努力在完善一个项目,仅此而已,其实开源项目都需要宣传和关注,如果没有一点点数据的话,这个项目的作者也很快就会放弃维护的,这些都是很现实的问题。还有,做一个心理阳光的人,别总是动一些歪心思。

项目复盘2:
面对一些不友好的评论,保持平常心,如果是正经请教的就好好回复,遇到不懂礼貌的,一笑置之算了,我们程序员群体都是很可爱的人,程序员那么可爱,怎么可能有坏心眼呢?

cute cat

技术栈总结和项目开发过程

一开始,newbee-mall 只是一个供后端开发人员学习的项目,技术栈也都是偏后端,后来也加入了 Vue、Vant 等前端技术栈,这样,对于前后端开发人员来说,都是一个不错的练手项目,当前使用到的技术栈如下:

前后端技术都有,主要是当下企业开发中比较常用的技术栈,后续会继续整合其它的技术栈到项目中,比如 Redis、Elastic Search、React 等等技术栈。

有些内容是自己琢磨的,更多地则是要多听一听用户的意见,整合他们的建议和自己的想法,然后做一个作者满意、用户也满意的修改,让项目更健康的走下去。

虽然不是公司里的项目,但是做开源项目也需要非常认真,不能吊儿郎当。开源项目也需要详细的设计和规划,加入什么功能,用什么技术栈,然后再花时间去测试和复盘,如果有问题及时调整,当然,每次我有新的想法也会在群里通知大家或者整理一篇文章分享出来,根据大家的建议再进行调整。

项目复盘3:
多听一听用户的声音,做开源项目也要认认真真,不能随随便便,但行好事,莫问前程。

earnest

佛曰:“渡人渡己”

《佛典》:“自未得渡而渡人者,菩萨发心,又自渡生死苦海,而又渡人。”

我并不是一个信佛之人,只是看到了这段话,觉得用在这里比较贴切。

确实,因为 newbee-mall 系列开源项目的原因,很多人都受到了帮助、得到了一些启发,也收到很多人的感谢信息,这一点,让我觉得很感动。作为作者,我并没有想到这个项目会如此的受欢迎,因为我之前也做过几个开源项目,最多也就 1k 左右的 Star,所以,直到今天我也非常激动。

静下来的时候,就会胡思乱想一些问题:我是谁?我从哪里来?我要到哪里去?

但是通常都得不到答案,有时候人会变得很沮丧和迷茫,因为生活或者工作中的事情,忽然变得很心烦,有时候甚至会不知道未来在哪里,不知道活着的意义在哪里。

PS:偶尔会胡思乱想,大部分时间还是非常正常的。

因为这个项目,让我觉得我能帮助到别人,这是一件非常非常不同的感觉,以前也有过类似的经历,比如给同桌讲题、帮朋友上分、给同事解决bug、帮家人分担压力,这些都会让自己觉得自己是一个可以被依靠的人,能够感觉到生活的意义。但是随着这个项目被越来越多的人所知晓,意义就变了,我不再是帮助一个人两个人,而是一个群体,这确实是一个船新的版本。

船新版本

工作和生活都因为这个项目有了一些改变,每天都要花一些时间去学习、去和更多的人交流,每天都在进步,每天都很忙,也没有时间去胡思乱想了,最大的一点改变,莫过于因为这个开源项目而出版实体书这件事情,后面有时间我会写下这段经历。

项目复盘4:
帮助别人实际上是完善自身,提升自己又能更好的帮助别人,这或许就是佛说的“渡人渡己”吧。

hugs

总结思考

项目复盘1:
开发和维护一个开源项目,是一个长期的工作,并不是一朝一夕的事情,不是说开源了就没事了,要坚持长期维护,保持一个开源项目的长久生命力,至于一个开源项目的生命力,更多的还是掌握在作者手上。作为领航的舵手,一定要让舰船扬帆远航。

项目复盘2:
面对一些不友好的评论,保持平常心,如果是正经请教的就好好回复,遇到不懂礼貌的,一笑置之算了,我们程序员群体都是很可爱的人,程序员那么可爱,怎么可能有坏心眼呢?

项目复盘3:
多听一听用户的声音,做开源项目也要认认真真,不能随随便便,但行好事,莫问前程。

项目复盘4:
帮助别人实际上是完善自身,提升自己又能更好的帮助别人,这或许就是佛说的“渡人渡己”吧。

以上就是我对于 newbee-mall 这个开源项目的总结和复盘,当然,还有更多内容可以整理进来,但是鉴于篇幅原因(字数已经 3700+ 了),后面有时间会继续分享的。

有什么问题的话,大家可以给我留言,我们一起讨论。

除注明转载/出处外,皆为作者原创,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。