对于普通程序猿来说,拥有一个开源项目就意味着你需要把自己约会、打游戏、刷剧的时间贡献出来,去编写一个非直接利益相关的代码。
当然,更多情况下,应该是某猿(媛)在工作的项目中受到了启发,觉得可以把某个组件提炼出来,作为自己的一个积累,然后编写一个demo发布到开源社区,顺便写写博客,记录一下自己的工作历程。能收获人气或start数自然更好,再不济用来自己日后查看总结,也是一个非常好的资源。
我个人觉得,那些对技术非常热衷的大牛们,要么就是坚持写自己技术博客的,要么就是由自己开源项目的,或者这两者都有(那可以说是非常厉害了)
我虽然也写过一些技术博客,在git上传过几个项目,但是碍于自身水平,更多的内容其实都是在总结网上教程和一些编程技巧,二次加工把他们发布出去,然后美其名曰积累,毕竟都是程序员的事情嘛,怎么能叫抄(手动滑稽)
虽然质量一般般,但是我还是觉得,有总比没有强吧,一点点积累呗。
学习就是一个输入和输入的过程。搬砖、写博客、做开源项目,都是输出,而唯有读书、看教程、写总结才算是输入。二者之前是需要找到一个平衡的,接下来的事情,就是自然而然地在平衡点间成长。
下面章内容来源自 [慕课网-从零做一个前端开源项目](https://www.imooc.com/learn/1003)
#什么是开源
开源并不是一堆源代码,而是一个相对完整的工程体系。
一个完整的开源项目应该包含如下的几个内容:
- 源码
- 文档 使用的文档和二次开发的文档
- 开发环境 环境搭建
- 允许他人贡献代码
- 问题回答社区 QQ群或交流平台的搭建和维护
- 问题列表和升级计划 公开问题并记录,确定升级计划,给开发者一个可预期的结果
#为什么开源
开源能带来的好处如下:
- 全面提升编程能力:从0开始打造,负责项目的方方面面,而不再是像平时工作中只负责一部分。
- 提升社区知名度: gitHub star数量能够间接反映一个程序员在业界的影响力,得到行业同行的认可。
- 提升产品意识: 因为是做的开源产品,所以会涉及到运维、推广、收集反馈等环节。
- 技术范儿、极客精神:作为一个程序猿,能有一个自主开发运维的项目,其实是一个件蛮cool和成就感爆棚的事情。
#不要做哪些开源
- 复杂的大型框架,例如UI框架,短期内做不完,使用成本高。
- 模拟成熟的轮子,例如再造一个Jquery,业内已有成熟方案,用户不会替换。
- 小众的东西,基本没人用
- 没有特色,100%模仿,用户没有理由更换。
# 做什么类型的开源?
要知道想做什么,就得先明半你做开源的一些期望,然后再去想做什么:
- 要快速做出第一版,至少能用,后面在慢慢迭代升级
- 要方便地推广使用,最好是0成本使用。
那么具体可以做哪些内容呢:
- 小而精的工具,开发快,成本低
- 要有特色,那么只有一个,也要差异化竞争。
- 一定要大众,50%以上的开发人员有相应的使用场景
- 避免垄断市场的技术框架,比如Jquery、Vue、React等
ok,如果你心中已经有了一个小想法,仔细琢磨了一下之后觉得还不错,那么一定一定要慢慢着手开始做,因为只有开始实践,才能有进展!
#如何宣传
- 写博客:即便不是为了开源,平时也可以写写博客,如果说是为了专门宣传开源产品,可以介绍一下开源产品应用的场景问题,或者记录一下开发这个开源产品过程中遇到的坑以及如何解决他们的。以一个引子,过度出自己的开源产品。
- 把博客发布到各大博客平台,例如简书、CSDN、掘金等
- 在问答平台上回答相关的问题,然后顺带推荐自己的开源产品,回答尽量符合如下的原则:
(1)字数只能多不能少,最好图文并茂,还能讲个笑话
(2)回答要专业,经过亲自测试,不要想当然地瞎猜
(3)回答问题的最后,顺便推广自己的产品
- 口碑宣传
(1)明确产品定位,有特色,做“T”型产品,差异化竞争,大体及格,一方面突出即可。
(2)及时回复问题,定期更新升级,做好升级计划,让用户看到产品在不断进步和变化
领取专属 10元无门槛券
私享最新 技术干货