惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

GeekPlux

一代人的博客,一代人的青春注脚 那些年我打过的日结工 来美国的两年后 2023 一蓑烟雨 在美国拥有一辆 Tesla 的成本 我的 Workspaces 十年进化史 How to Sync Logseq Plugins, Themes and Settings Across Multiple Devices Setting Up Umami as Your Google Analytics Alternative: A Step-by-Step Guide 迁移豆瓣读书记录到 goodreads Enhance Your Internet Privacy in 2023 Refactor your blog comments system with Webmention.io 来美国之后,如何快速安顿下来 Three Levels of Information Perception 疫情三年 与人聊天的美好 我获取信息的方法 2022 版 我是如何学会编程的 Legacy code best practice: how to take over an existing project smoothly 2020 恍如隔世 接外包的一些坑和小技巧 论交友 往返香港隔离指南 即将失明,还能继续做程序员吗 小谈我对新技术的态度 How to use tailwindcss with AMP in a Next.js project 远程工作如何提高效率 复式记账、财报、量化与图论 我为什么从阿里巴巴离职 2019 柳暗花明 YouTube 观看历史数据分析 投资被动型指数基金正在造成下一次金融泡沫? 三种主流的网赚套利,躺着赚钱? 色盲的世界 我是如何管理 21 张信用卡的 薅羊毛的最大意义:保持对规则的敏感度 来香港的两个月 数据可视化技术实现的关键点 不需要扫描仪,数字化归档自己的文件 如何找到时薪 80 美元的远程工作(二) 如何找到时薪 80 美元的远程工作(一) 如何打造真正的简历 浅思图数据可视化 舍本逐末的学习方式 给想转行作程序员的人泼一盆冷水 算法优化人生之 —— 调度算法 杭州最适合闲来溜达的几条路线 2018 平淡无奇 突闻金庸先生逝世有感 十年博客折腾历史 数据可视化之 Sankey 桑基图的实现 研究生生涯总结 如何在不规则多边形内均匀撒点的算法 Web 前端中的增强现实(AR)开发技术 参加 Google Summer of Code 的体验 netjsongraph.js – Google Summer of Code (GSoC) 2017 summary Markvis - 在 markdown 中生成可视化图表 D3 force layout and WebGL integration 文本数据可视化(下)——一图胜千言 文本数据可视化(上)——从 Wordle 谈起 我获取信息的渠道 数据可视化基础——视觉编码 数据可视化基础——数据模型 数据可视化基础——可视化流程 为什么要用 Emacs Vega-Lite: A Grammar of Interactive Graphics 如何搭建一个私人网盘 如何阅读一篇学术论文 超过十个人的微信群根本没有价值 毕业后的两年 建立索引式的学习方法 为什么我喜欢写代码 写文章的小技巧 为什么文章写得好的人都很厉害 人总要有点盲目的自信 如何管理好自己的密码 Backbone View 之间通信的三种方式 Vim - 适合自己的,才是最好的 轻松玩转 Ukulele 告别社交网络有多难 双拼学习记 CoffeeScript 编码风格指南(译) CoffeeScript 笔记 CSS 最核心的几个概念 响应式设计简易指南(译) 初识 TDD Collapsing margins——合并的外边距 菜鸟级 Mac 配置(二) 菜鸟级 Mac 配置(一) CSS 编写原则 Goodbye,我的大学 如何新建一个 Cocos2d-x 项目 Windows8.1 下 Cocos2d-x 环境搭建 Android 开发如何入门 如何绑定独立域名 写博客就用 FarBox 尝试改变微信公众账号消息的推送方式 情似流水 操作系统总结——存储器管理 操作系统总结——处理机管理 操作系统总结——引论
如何在 GitHub 上获得数百 stars
GeekPlux · 2017-07-20 · via GeekPlux

本文首发于「掘金专栏」,地址:https://juejin.im/post/59701b61518825412f27a0b1 。 本文写在 markvis 发布后的一周,总结了在推广个人项目方面的一些经验。阅读时长 10 分钟。原文地址:https://geekplux.com/2017/07/20/how-to-get-hundreds-stars-on-github

每个程序员都幻想过自己的代码运行在千家万户的电脑上,但如何让你的项目获得更多的关注却少有人去思考。我们把注意力放在对代码的钻研、对技术的提升,却少有人关注如何吸引别人参与你的项目。一个人的力量总是有限的,尤其是在开源社区,越多的人参与就意味着你的项目有越多的可能性。

我的业余小项目 markvis(https://markvis.js.org ) 发布一天之后,在 GitHub 收获了 200 stars,爬上了 Trending 榜前十,现在一周过去已经近 1000 stars。虽然这不算什么大的成就,但让我不得不重新思考推广的意义。

Trending TOP 10

对推广的偏见

一般人对推广都有或多或少的偏见,从我的个人经验来说大概来自两个方面:

一是受「酒香不怕巷子深」的影响,总认为只要是金子就会发光的。其实不然,道理很简单,你觉得你代码水平不错,但跟你同水平的程序员肯定不止你一个,如何让别人更加青睐于你,你需要的是曝光率,你需要把你自己的真实水平展现出来,你需要告诉别人你的实力,而不是等别人去挖掘。这个社会竞争太激烈了,尤其是在我们可爱的程序员界。

二是总把推广和低级的营销混为一谈,甚至把推广当成一个贬义词。我之前对推广的偏见主要来自于此,我总觉得推广和那些无脑发小广告的没什么两样。然而,真正的推广应该是在散播价值,让别人知道这个东西的存在,给别人提供了解的渠道。当然这得站在你项目是有价值的基础上,而不是空中楼阁就到处招摇撞骗。

如何推广

一个吸引眼球的开源项目,我认为需要具备以下几个要素:

  • 一个还不错的 Logo 或优雅的主页
  • 简短有力的 slogan
  • 能在线试用
  • 完善的文档

前两点一般都会被人忽略,但其实非常重要。第一点很好理解,毕竟是看脸的时代。第二点,为什么很多企业花很大代价去设计朗朗上口的标语?因为希望在最短的时间内给别人留下最深的印象。第三点正所谓百闻不如一见,向别人传递自己的想法总是困难的,不如让他们自己使用一下,用过才能理解你到底做了什么伟大的事情。如果你的项目没办法在线试用,最好有一个 gif 或短视频来演示一遍。如果说前三点是包装,那最后一点则是必须做到的重中之重,接下来我们重点说一说。

README 毋庸置疑是你项目最重要的页面,如何让别人迅速了解你的项目,你需要用最简短的话说清楚三件事:

  • 你的项目是什么
  • 为什么要创造它
  • 如何使用它

尤其是为什么,一定要说清楚。它解决了什么问题,使用它的必要性是什么,它做出了什么贡献等等。

我们可以从使用者的角度去想问题:每当我们考虑是否要用这个库的时候,都是先去看他的 README,了解清楚它到底做了什么,以及它的优势。接着再看看它有没有测试,issues 多不多,解决 issues 和代码更新的频率是多少,大概有多少人使用等等。这就引出了另一些决定你项目成败的小细节。

  • 良好的代码风格
  • 必要的注释
  • 测试
  • 开源协议是否规范

这些事情说大不大,说小也不小。我在发布 markvis 之前把这些都检查了几遍。在 README 里可以用 coverall 的 badge 来展示测试覆盖率,用 fossa 来检测你的协议是否规范。

项目打造

不是任何项目经过推广都能成功,推广的重要性可能只要 10%,剩下的 90% 都取决于项目本身。一个有价值的项目我认为要满足下面几个要求:

  • 解决了一部分需求
  • 项目完成度高
  • 长期维护

首先你要有明确的目的,你要解决的是一个什么问题。这个问题通常不是空想出来的,而是有真正需要的,大多数情况来自于我们自己的需求。我在做 markvis 之前,已经在思考如何让写作时的可视化更简单。正好当时读了一篇论文《Vega-Lite: A Grammar of Interactive Graphics》,我发现只要用简单的 JSON 就可以生成一个交互丰富的图表,这给我做 markvis 提供了极大的灵感。尽管接下来在项目开发的时候遇到一些空难不得不暂时放弃用 vega-lite 的方案,但阅读相关论文让我有了做 markvis 的底气。

其次你需要完成你的项目。开坑不填坑是我们技术人的常态,往往是脑子一热开始写一个项目,写了不到一半遇到点困难或中间停顿了几天,就放弃了。开发 markvis 的时候我也是这样,看 commits 记录就知道我其实不到一年前就开始开发了,但是强大的拖延症生生的把我拖到现在。没有完成,功能残缺,bug 一堆,谁还敢用。

开源项目最难的是维护。知名项目 issues 多的处理不过来,不知名项目完全无人问津。最痛苦的是那种用的人不多,还又没人参与的项目,这就完全靠自己了。你要面对的可能是无理的需求或质疑,但收到感谢信的时候还是非常开心的。

如何发布

万事俱备只欠东风,发布也是关键。我们没必要开个发布会,但至少要抱着搞个大新闻的心态。一般情况下,如果你不想让人提前知道你在做的东西,你最好不要在完成之前 push 到 GitHub 上,你可以悄悄的在本地紧锣密鼓的开发。直到完成的那一天,你需要准备下面两样东西:

  • 发布(帖子)的标题
  • 发布(帖子)的内容

我们不要做标题党,但是也要在帖子标题上稍微下点功夫,最好能说清楚你要干嘛还又能让别人有点击的欲望。帖子的内容很重要,可以把你 README 上的话再精简一点,口语化一点。然后开始有策略的向各大网站发帖:

  • Hacker News
  • reddit/r/javascript
  • ProductHunt
  • V2EX

当时我对 markvis 没抱太大期望,也没有考虑国外的作息时间,一大早起来就只在前两个网站上提交了自己的帖子。Hacker News 的流量太大,帖子直接秒沉了,reddit 上迟迟不见反馈。当时可能美国的程序员兄弟刚下班,都去浪了,所以一直没啥动静,star 好像只有十几个。虽然我有点失望,但是没有放弃,因为周围的小伙伴说我做的东西还不错。于是我在午饭之前又去 ProductHunt 上厚颜无耻地提交了自己的项目。没想到当天就上榜了。于是 star 数开始不停的长,第二天上了 GitHub Trending 之后就涨得更快了,完全超出了预期。

除了上面的这些网站,如果你英语不错的话,可以直接向 DailyJS 提交自己的文章,也可以让 JavaScript Weekly 推荐,总之渠道多多,就看你的项目如何了。下面是我发布一周后的主页 Google Analytics,可以看出上周一共有 4.5k 的人来访,周四即我发布的第二天是人来的最多的一天,而且程序员果然都喜欢凌晨学习,哈哈。

写在最后

有一些事我们不去做是因为我们对它有偏见,比如推广。有一些事我们做不好是因为我们没有认真思考该怎么做,比如推广。禁锢我们的不是技术手段,而是思维。这是我这次发布 markvis 得到的一些人生经验,共勉。欢迎新朋友来和我交流,我的博客是 http://geekplux.com ,会一点前端,懂一点数据可视化。