看了下,微人事(https://github.com/lenve/vhr)项目 star 数超 10k 啦,松哥第一个 star 数过万的开源项目就这样诞生了。

两年前差不多就是现在这个时候,松哥所在的公司业绩下滑严重,关门倒闭已成定局,很多同事在谋划的新的出路,松哥则被公司留下来善后,在一段并不太忙碌的日子里,做了两个 Spring Boot + Vue 的前后端分离开源项目,以期能给自己来年找工作增加一点筹码,没想到这两个项目后来受到很多关注,也帮助了很多人。有不少小伙伴在公司使用微人事项目做脚手架开发项目,也有国内 top20 的高校研究生借鉴微人事做毕设,我自己也因此收到一些大厂的橄榄枝,可以说还是收获满满。

关于这个项目诞生的故事,松哥之前写过一篇文章,感兴趣的小伙伴可以看看:

今天,我想和小伙伴们聊聊如何从零开始打造一个 star 数过万的开源项目。松哥把这些经验总结为三点:

  • 文档详细
  • 项目有料
  • 适当宣传

这些经验不是什么惊世骇俗的大道理,都很普通,关键在于执行。

1. 文档详细

其实在做微人事和 V 部落之前,松哥在 GitHub 上已经做过多个开源项目了,比较有意思的一个是一个 Android 上的自定义控件,我做了一个歌词展示的控件,这个控件引入到自己的项目中以后,可以根据当前歌曲的播放进度动态滚动歌词,效果如如下:

还有一个比较好玩的就是 Android 上自动抢红包的 App。不过这些开源工具和项目最终都石沉大海了。

究其原因,我觉得是自己对待这些项目不够认真,项目开源之后基本上都没有再继续维护了,一个项目提交次数一般都是个位数,项目做完之后,写一篇博客介绍下就算完事了。一个自己都不怎么重视的项目,其实很难引起别人的重视。

所以在 V 部落和微人事中,我就吸取教训,尽量把项目的文档写的详细一些,让不懂前后端分离开发的小伙伴看到我写的开发文档后,就能够快速理清项目的思路。就这样,我每写一个功能点,就写一篇技术文档,微人事项目前前后后一共写了 30 多篇文档:

同时我考虑到很多小伙伴第一次接触到这个项目,一个庞然大物不好处理,因此我在每一次项目提交之前,都会对项目打一个 tag,这样大家通过 git clone 命令获取到项目之后,就可以通过 tag 非常方便的定位到项目的任意时刻,例如只想看登录设计的,可以根据文档介绍回到 v20180107 这个版本:

小伙伴也可以点击 GitHub 上的 release 下载不同时期的项目。我一开始担心有的小伙伴不熟悉 Git 上的 tag 操作,还针对此写了个教程,就是上面文档的第 17 篇。

可以说,这个项目我从头到尾考虑了很多小伙伴们可能遇到的问题,不是自嗨,确实是希望能够带着小伙伴们一起飞。

这么详细的文档当然也得到了小伙伴和一些平台的认可,项目刚刚发布的时候,也就是 2018 年年初的时候,慕课网在它的官方知乎账号、微博账号上都有推过我的介绍项目的文章,当时这个项目就受到了很多小伙伴的关注,收获了不少 star,小伙伴们的关注也鼓励我继续把这个项目向前推进。

这是我介绍的第一点经验,文档详细。

2. 项目有料

项目有料,也就是这个项目对大家而言是有价值的,能够真正帮到大家。

很多小伙伴看到微人事会觉得奇怪,这个项目还有一些功能没有实现,怎么就有这么多人关注呢?其实原因很简单,这个项目的价值不在于它的业务,而在于它解决了很多小伙伴在前后端分离开发中遇到的问题,这也是我做这个项目的初衷之一。

作为一个 Java 攻城狮,我非常明白很多小伙伴去接触 Vue、接触 Nodejs、接触 SPA 以及接触前端工程化这些概念时所面临的困惑,因为这些困惑我也曾经遇到过。

例如前后端分离后,开发环境下前后端如何进行数据交互、权限管理怎么做、文件上传怎么做、项目怎么部署等等,事无巨细,我觉得小伙伴们可能会困惑的地方,我在微人事中直接用代码做出样例,然后再辅以详细的文字解释,这样对于大部分小伙伴而言,都能够快速理解这个项目了。

这个项目建立之初,一开始就定位是一个学习项目,目的就是帮助大家建立前后端分离开发知识体系,搞定前后端分离开发中常见的坑,因此,一旦将项目的框架搭建成功,大家理解了前后端分离架构中的各个细节,剩下的业务不过是堆代码,技术上已经没有挑战了,这也是这个项目最近一段时间更新慢的原因。

这是我和大家分享的第二点经验,项目要有价值。

3. 适当宣传

微人事和 V 部落刚刚上线的时候,我的相关文章被慕课网猛推过几次,当时就让微人事受到了比较多的关注,印象中,大概不到一个月的时间,star 数就超过 1k 了。

由于文档比较详细,很多大佬在整理相关资料的时候都会加上微人事项目,很多小伙伴可能见过标题类似下面这样的文章:

  • 13个优秀的 Spring Boot 学习项目
  • 开源的13个Spring Boot 优秀学习项目!
  • 六月份 GitHub 上最受欢迎的开源项目
  • 七月份 GitHub 上最受欢迎的开源项目

....

这一类的文章大部分都会收录微人事项目,进而将微人事项目曝光给更多小伙伴去学习。

今年七月份,有感于 1 年前公司倒闭时的无助,松哥写了一篇文章介绍了微人事项目的诞生过程:

没想到这篇文章被很多大佬转发,单单在知乎上这篇文章的阅读量就超过 12w,那一段时间,微人事项目也被很多有需要的小伙伴关注到了。

宣传这一块,我的经验是如果项目确实帮助到了很多小伙伴,对很多人而言有价值,你会发现平台,一些有影响力的技术牛人会自然的帮你推。所以,我还是建议将重心放在项目上。所谓家有梧桐树,引得凤凰来。

这是我介绍的第三点经验,适当宣传。

好了,一点点不太成熟的经验分享给小伙伴们,希望能帮到大家。

微人事 star 数超 10k,如何打造一个 star 数超 10k 的开源项目的更多相关文章

  1. 异数OS 星星之火(三)--异数OS-织梦师云 微服务编写入门

    . 异数OS 星星之火(三)–异数OS-织梦师云 微服务编写入门 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 6 ...

  2. 打造一个高逼格的android开源项目——小白全攻略 (转)

    转自:打造一个高逼格的android开源项目 小引子 在平时的开发过程中,我们经常会查阅很多的资料,最常参考的是 github 的开源项目.通常在项目的主页面能看到项目的简介和基本使用,并且时不时能看 ...

  3. Java 前后端分离项目:微人事

    本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行项目,本示例是在 Windows 操作系统下演示. 本文作者:HelloGitHub-秦人 大家好!这里是 HelloGitHub 推出 ...

  4. 微人事项目-mybatis-持久层

    摘要 最近将微人事这个开源项目进行了复现,这篇文章记录mybaits访问数据库这一块. 其中MyBatis是一个流行的持久层框架,支持自定义SQL.存储过程和高级映射.MyBatis消除了几乎所有的J ...

  5. RethinkDB创始人教你如何打造一个伟大的互联网产品

    关于作者 我叫Slava Akhmechet,本人是 RethinkDB 的创始人之一,RethinkDB是开源,分布式数据库,旨在帮助开发人员与运营商在打造实时应用时处理无结构数据 如何打造一个伟大 ...

  6. 【前端vue进阶实战】:从零打造一个流程图、拓扑图项目【Nuxt.js + Element + Vuex】 (一)

    本系列教程是用Vue.js + Nuxt.js + Element + Vuex + 开源js绘图库,打造一个属于自己的在线绘图软件,最终效果:topology.le5le.com .如果你觉得好,欢 ...

  7. Python分布式爬虫打造搜索引擎完整版-基于Scrapy、Redis、elasticsearch和django打造一个完整的搜索引擎网站

    Python分布式爬虫打造搜索引擎 基于Scrapy.Redis.elasticsearch和django打造一个完整的搜索引擎网站 https://github.com/mtianyan/Artic ...

  8. 硬核! Github上 ,star超高的Java 开源项目分享给你!

    Awsome JavaGreat Java project on Github(Github 上非常棒的 Java 开源项目). English Version 大家都知道 Github 是一个程序员 ...

  9. 揭开周获 18k star 开源项目的神秘面纱「GitHub 热点速览 v.22.28」

    本周 GitHub Trending 的项目重量十足,比如标题的一周获得 18k+ 的高性能 JS Runtime--bun,用性能来体现了它的"含金量".同样有重量的还有一行代码 ...

随机推荐

  1. 线段树(求单结点) hdu 1556 Color the ball

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  2. 059 Python计算生态概览

    目录 一.概要 二.导学 三.实践能力 一.概要 从数据处理到人工智能 实例15-霍兰德人格分析雷达图 从Web解析到网络空间 从人机交互到艺术设计 实例16-玫瑰花绘制 二.导学 纵览Python计 ...

  3. JAVA集成JPush

    本篇集成为web项目手动集成JPush 一.获取AppKey.Master Secret https://docs.jiguang.cn 成为极光用户创建一个应用拿到(AppKey.Master Se ...

  4. 玩转 SpringBoot 2 快速整合 | JSP 篇

    前言 JavaServer Pages(JSP)技术使Web开发人员和设计人员能够快速开发和轻松维护利用现有业务系统的信息丰富的动态Web页面. 作为Java技术系列的一部分,JSP技术可以快速开发独 ...

  5. centos 7 ifconfig无法找到命令的方法

    场景:新安装centos   没有安装. centos7.2的mini版没有安装这个东东,所以我们就直接安装就好了,在终端里面输入: yum -y install net-tools

  6. Redis的复制(Master/Slave)、主从复制、读写分离

    1.什么是Redis的复制 行话:也就是我们所说的主从复制,主数据更新后根据配置和策略自动同步到备用机的master/slave机制,Mater以写为主,slave以读为主. 2.能干什么 2.1.读 ...

  7. CODESYS添加target

    1.主界面进入Tools 2.Install,选择安装包

  8. charles DNS欺骗

    本文参考:charles DNS欺骗 DNS欺骗/DNS Spoofing 功能:通过将您自己的主机名指定给远程地址映射来欺骗DNS查找 一般的开发流程中,在上线之前都需要在测试环境中先行进行验证,而 ...

  9. 2019年9月3日安卓凯立德全分辨率(路况)夏季版C3551-C7M24-3K21J25懒人包

    拷贝懒人包NaviOne文件夹到机器根目录或内存卡根目录下:安装其中的apk程序 2019凯立德C3551-C7M24-3K21J25新组合懒人包 [分辨率]:自适应 [适用系统]:Android2. ...

  10. [Linux] CentOS 显示 -bash: vim: command not found

    转载自:https://www.cnblogs.com/wenqiangwu/p/3288349.html i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim ...