公司倒闭 1 年多了,而我在公司倒闭时候做的开源项目,最近却上了 GitHub Trending,看着这个数据,真是不胜唏嘘。
缘起
2017 年 11 月份的时候,松哥所在的公司因为经营不善要关门了,关门的是深圳分公司,北京总部还在正常运转。
然后就是北京那边来人,和深圳的员工挨个谈话,谈裁员和赔偿,公司制度还算完善,都按照劳动合同法走,有的同事担心公司最后不按劳动合同法走,因此觉得先拿钱先走比价划算。我当时主要考虑到两个原因,并不着急走:
- 公司毕竟是香港上市公司,跑的了和尚跑不了庙,深圳关门了,北京那边还在运转,所以我不太担心公司赖账的事。
- 年底工作不好找,11 月拿赔偿走人,还有俩月才过年,这个时候不太容易拿到满意的 offer,很多公司年底都关闭 HC 了。
基于上面两点考虑,我当时并不急着走人,当公司说还需要有人留下来善后一直到 2018 年 1 月 31 号的时候,我就争取了下,然后就给留下来了。
留下来后并没有太多事情要做。划水划了一周,同事在楼下叫我:“老王下来聊天”,于是下楼跟他们吹吹牛,虽然吹牛,不过大多数时候还是在筹划来年找工作的事,不过我觉得这样没什么用,与其天天规划,不如来点实实在在的东西,为来年找工作积累一点筹码。
第一次尝试
心里想着手上就开始行动了,技术栈就选择当时最流行的 Spring Boot + Vue 前后端分离,业务就打算先做一个简单的博客试试水,博客的业务比较简单,做起来快,于是,V部落项目就诞生了:
一个简单的博客后台管理,集成了博客编辑、发表、排版引入了 md 编辑器,博客的分类展示等,记得不到一周时间就弄完了,毕竟还是非常容易的。
V 部落项目发布后,我认认真真的写了一个介绍的 README,README 和我以前的开源项目一样,就是展示了一下项目的效果图,然后说了下要如何部署运行就完了。虽然自我感觉良好,但是并没有引起太多人关注。
在为数不多的几个关注中,我发现小伙伴在运行项目时候总是会遇到各种各样的问题,很多人多前后端分离的这种开发方式非常陌生,很多后端工程师甚至不懂,没听说过前端工程化,很多小伙伴在 GitHub 上提了很多非常简单的 issue,他们在部署V 部落项目时老是出错。
另一方面,由于博客项目比较简单,Vue 中很多高级功能没用上,例如状态管理,还有前后端分离时的动态权限管理,这些都没有体现出来。再加上当时才是 12 月,离过年还早着,我心想着再做一个业务复杂点的,然后把这些之前没用到的技能点都给用上。于是就有了微人事项目,这也是我们今天的主角,上了 6 月份 GitHub Trending。
微人事
微人事项目,我就吸取 V 部落的经验,没有等项目完全发布后再上传到 GitHub 上,而是边做变更新,每做完一个功能,就写一个文档,把实现的思路,代码的原理等都记录下来,然后在打一个 tag ,发布到 GitHub 上,这样,即使是一些新手,跟着文档,也能完全做出来。
这是当时的一些提交记录:
基本上每隔一两天就能完成一个新功能,然后就提交一次,这样的更新频率一直持续到 2018 年 1 月 20 之前,1 月 21 号女票从昆士兰大学访学回来,陪她在深圳玩了几天,然后把女票送回家,耽搁了好几天没更新。
到了 1 月 31 号,公司正式关门,我也就回家了,先去了女票家,在她家里呆了十多天,顺便完成了用 WebSocket 实现在线聊天的功能,提交了两个版本。
下面这两个是在女票家里提交的:
这两次提交之后,差不多就回家过年了,我家在岭上没有网,因此过年期间就没再继续做这个项目了,年后从家里到深圳的当天就拿到 offer 了,上班后就比较忙了,这个项目也就更新的慢了,没有再提交比较大的版本了,主要是一些修修补补的操作。
ALL IN
现在不是流行一个词叫做 all in
,用来形容我当时的状态再贴切不过了。
兴趣来了,谁都拦不住。那一段时间晚上经常在家里搞到一两点,第二天正常上班。记得那一年平安夜那天是周日,我早上依然按时起床去了公司,因为当天我的 V 部落项目就要收尾了,在公司里搞到晚上 9 点多,终于弄完了,第二天就可以发布了。然后收拾东西,骑着摩拜从科兴科学园那里出发,先走北环大道,然后再下到大沙河边上,沿着大沙河骑到西丽大学城,因为是平安夜,一路上都没什么行人,到家后还没吃饭,去楼下的餐厅随便吃点,店主一家人正在准备他们的平安夜饭,见有客人,抽出一个人给我弄了一碗面,然后我就独自边玩手机边吃饭,他们一家人围在旁边的桌子上吃他们的平安夜饭,这种感觉很奇怪,孤独又充实。
吃完回到宿舍,和女票视频,心理盘算着女票再过 20 多天就从昆士兰回来了,慢慢就睡着了,第二天到公司,我的 V 部落项目就正式上线了。
当你沉迷于一件事情的时候,效率非常高。
那段时间,我每天骑车上下班,一边骑着自行车,心里就在想着这个功能要怎么做更好,那个功能得怎么样实现,一路上就这样不断的规划着,到了公司,放下书包,就赶紧打开电脑挨个试验路上的各种想法,做出来了就很开心,在已经没有几个人的公司走走转转休息下,然后继续坐下 coding。
有一个周末去公司做这两个开源项目的时候,中午去吃饭,两只狗懒洋洋的躺在马路中间晒太阳,我甚至有点羡慕(下图拍摄于南山科兴科学园附近,我吃饭喜欢走远一点,多溜达溜达,不知不觉就溜达到工地了,见到这么惬意一幕,冬天的太阳,真的舒服)。
项目在 GitHub 上开源之后,有好几位小伙伴发邮件希望能在毕设中引用这个项目,记得有一位是国内高校 top20 的研究生,我当时又诧异又激动。后来也有好几个小伙伴加松哥微信表示想将这个项目作为脚手架用在公司的项目中,虽然没能亲眼见见小伙伴的项目,但是想到自己的项目帮到了这么多人,还是挺开心的。
这两个开源项目也带给我不少收获,技术上的提升+认识很多优秀的小伙伴,并且因此还出了一本书,也算是收获满满吧。
上榜
前两天有个小伙伴发消息说是看到我的项目出现 GitHub Trending 上了,我点开看了下,果然是的。
我是在 2013 年 11 月份注册的 GitHub,但是很长一段时间都没啥活动,后来也断断续续做过几个开源项目,但是都没啥动静,我总结其中一个原因可能也是因为我没好好对待项目,README 只是随便写写,读者一般很难上手项目,从微人事开始,我懂得了,你想要让别人重视你的项目,你首先得自己重视自己的项目。
这里再向大家安利一波这个开源项目微人事,这是一个使用了 Spring Boot + Vue 开发的前后端分离的人力资源管理系统,有一个非常完整的文档:
项目地址:https://github.com/lenve/vhr
欢迎大家点击阅读原文查看本项目。
其他
另外再给大家一个小小建议,如果你是初次接触前后端分离,可以先看 V 部落项目,这个项目不论从技术点还是业务上来说,都要比微人事简单, V 部落搞懂之后,再来学习微人事就会容易很多了。
如果你只是刚刚接触 Java,那么松哥也有一个前后端不分开源项目可以给你练手:
这个项目做的比较早,功能做的相对较全,但是介绍文档没有微人事那么详细,大家可以参考。