公司倒闭 1 年后,我当年的项目却上了 GitHub 热榜?!

2023-12-24 15:48

本文主要是介绍公司倒闭 1 年后,我当年的项目却上了 GitHub 热榜?!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前两天看到圈内一位朋友松哥写了一篇文章,分享了他当年在公司写的一个项目意外上了 GitHub Trending 榜的故事,我看了后觉得蛮有意思的,便跟作者要了文章授权,把这个故事分享给大家看看。

下面是文章正文。

------

公司倒闭 1 年多了,而我在公司倒闭时候做的开源项目,最近却上了 GitHub Trending,看着这个数据,真是不胜唏嘘。

缘起

2017 年 11 月份的时候,松哥所在的公司因为经营不善要关门了,关门的是深圳分公司,北京总部还在正常运转。

然后就是北京那边来人,和深圳的员工挨个谈话,谈裁员和赔偿,公司制度还算完善,都按照劳动合同法走,有的同事担心公司最后不按劳动合同法走,因此觉得先拿钱先走比价划算。我当时主要考虑到两个原因,并不着急走:

  1. 公司毕竟是香港上市公司,跑的了和尚跑不了庙,深圳关门了,北京那边还在运转,所以我不太担心公司赖账的事。

  2. 年底工作不好找,11 月拿赔偿走人,还有俩月才过年,这个时候不太容易拿到满意的 offer,很多公司年底都关闭 HC 了。

基于上面两点考虑,我当时并不急着走人,当公司说还需要有人留下来善后一直到 2018 年 1 月 31 号的时候,我就争取了下,然后就给留下来了。

留下来后并没有太多事情要做。划水划了一周,同事在楼下叫我:“老王下来聊天”,于是下楼跟他们吹吹牛,虽然吹牛,不过大多数时候还是在筹划来年找工作的事,不过我觉得这样没什么用,与其天天规划,不如来点实实在在的东西,为来年找工作积累一点筹码。

第一次尝试

心里想着手上就开始行动了,技术栈就选择当时最流行的 Spring Boot + Vue 前后端分离,业务就打算先做一个简单的博客试试水,博客的业务比较简单,做起来快,于是,V部落项目就诞生了:

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

现在不是流行一个词叫做 allin ,用来形容我当时的状态再贴切不过了。

兴趣来了,谁都拦不住。那一段时间晚上经常在家里搞到一两点,第二天正常上班。记得那一年平安夜那天是周日,我早上依然按时起床去了公司,因为当天我的 V 部落项目就要收尾了,在公司里搞到晚上 9 点多,终于弄完了,第二天就可以发布了。然后收拾东西,骑着摩拜从科兴科学园那里出发,先走北环大道,然后再下到大沙河边上,沿着大沙河骑到西丽大学城,因为是平安夜,一路上都没什么行人,到家后还没吃饭,去楼下的餐厅随便吃点,店主一家人正在准备他们的平安夜饭,见有客人,抽出一个人给我弄了一碗面,然后我就独自边玩手机边吃饭,他们一家人围在旁边的桌子上吃他们的平安夜饭,这种感觉很奇怪,孤独又充实。

吃完回到宿舍,和女票视频,心里盘算着女票再过 20 多天就从昆士兰回来了,慢慢就睡着了,第二天到公司,我的 V 部落项目就正式上线了。

当你沉迷于一件事情的时候,效率非常高。

那段时间,我每天骑车上下班,一边骑着自行车,心里就在想着这个功能要怎么做更好,那个功能得怎么样实现,一路上就这样不断的规划着,到了公司,放下书包,就赶紧打开电脑挨个试验路上的各种想法,做出来了就很开心,在已经没有几个人的公司走走转转休息下,然后继续坐下 coding。

项目在 GitHub 上开源之后,有好几位小伙伴发邮件希望能在毕设中引用这个项目,记得有一位是国内高校 top20 的研究生,我当时又诧异又激动。后来也有好几个小伙伴加松哥微信表示想将这个项目作为脚手架用在公司的项目中,虽然没能亲眼见见小伙伴的项目,但是想到自己的项目帮到了这么多人,还是挺开心的。

这两个开源项目也带给我不少收获,技术上的提升+认识很多优秀的小伙伴,并且因此还出了一本书,也算是收获满满吧。

上榜

前两天有个小伙伴发消息说是看到我的项目出现 GitHub Trending 上了,我点开看了下,果然是的。

我是在 2013 年 11 月份注册的 GitHub,但是很长一段时间都没啥活动,后来也断断续续做过几个开源项目,但是都没啥动静,我总结其中一个原因可能也是因为我没好好对待项目,README 只是随便写写,读者一般很难上手项目,从微人事开始,我懂得了,你想要让别人重视你的项目,你首先得自己重视自己的项目。

这里再向大家安利一波这个开源项目微人事,这是一个使用了 Spring Boot + Vue 开发的前后端分离的人力资源管理系统,有一个非常完整的文档:

https://github.com/lenve/vhr

其他

另外再给大家一个小小建议,如果你是初次接触前后端分离,可以先看 V 部落项目,这个项目不论从技术点还是业务上来说,都要比微人事简单, V 部落搞懂之后,再来学习微人事就会容易很多了。

如果你只是刚刚接触 Java,那么松哥也有一个前后端不分的开源项目可以给你练手:

https://github.com/lenve/CoolMeeting

这个项目做的比较早,功能做的相对较全,就是介绍文档没有微人事那么详细,大家可以参考。

------

以上,为今天分享给大家的小故事,希望大家喜欢。如果你也有发生在 GitHub 上的趣事,欢迎在后台给我们投稿分享。

觉得本次分享有意思的,欢迎点个「在看」支持,谢谢。

推荐阅读:

做项目不给钱?这位小哥一怒之下把代码开源到 GitHub!

「GitHub 交流群」已开放

想入群的可在公众号后台回复「入群」

这篇关于公司倒闭 1 年后,我当年的项目却上了 GitHub 热榜?!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/532313

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav