目前我有五个热门项目(在Github的Trending页面),所以我想分享一些我的经验和方法。如果您曾经开源过代码,您就会知道让其他人对您的工作感兴趣是多么困难。很奇怪,不是吗?我们为此至少花费了数百小时,免费赠送,但没有人感兴趣!!在经历了几次相对幸运的经历之后,我慢慢发现了如何让其他人对我的开源作品感兴趣。如下图所示:最后,你想要得到使用你的Repo(Github上的开源项目)的开发者的好评和star。但是第一步你需要获得一些加星,你就是本文的目的。首先,让我自我介绍一下。我目前主要是一名iOS开发人员,六个月前我开始发布我的开源作品。至此,我应该可以出现在Github的全球顶级iOS开发者名单上了。?其实我并没有Github上展示的那么厉害(谢天谢地,不要嫌弃我~)我觉得我在开源社区能有一些影响力,因为我可以同时做一些设计工作(稍后你会看到),以下是我的热门项目:TinderSimpleSwipeCards(650+stars,6个月内)RKSwipeBetweenViewControllers(400+stars,4个月内)RKDropdownAlert(500+stars,4个月内)RKCardView(500+stars,2一个月内)RKNotificationHub(500+stars,一周内)以上5个项目都已经上了热门的Githubpage,我把怎么做分为6个步骤。六个步骤(主要秘密在步骤4到6)。为简洁起见,将简要讨论步骤1至3,并详细说明步骤4至6。项目是最重要的。阅读和研究。启动项目存储库。用好图片写一个好的自述文件。注意反馈回路。项目是最重要的Repo是您作为开发人员正在构建的产品。既然是产品,就一定要解决用户的问题。你可能听说过,许多著名的产品都是在创始人遇到一些需要解决的问题时诞生的。同样,大部分开源代码也需要解决开发者的一些问题。所以,如果你不是一直在创造新的东西,你怎么会遇到那些需要解决的难题呢~Twindr(Twitter+Tinder)是一个愚蠢的商业项目,我只是为了取悦我的朋友和我自己而做的。但最终它带来了RKCardview(500+星),商业项目也是如此,参加编程马拉松,在周末与同事打交道。找出你重复的代码,这样你就可以构建其他人也需要的模块化东西~阅读和研究大多数问题已经被解决了数百万次,并将继续得到解决。每当您想到可以作为Repo开源的东西时,首先看看是否其他人已经做过类似的事情。如果它真的存在并且很多人已经在使用它,那说明它还不错,所以拿起它来使用它而不是自己动手做。如果问题还没有解决,或者没有得到妥善解决,请开始您的研究。看看现有的方案,找出您不喜欢它们的地方。我喜欢浏览现有项目的GithuIssues,以寻找如何构建我自己的类似解决方案的灵感。如果我有足够的时间,我会亲自使用这些项目来记录我遇到的一些问题(或糟糕的文档),虽然我自己没有这样做过,我只是听说过这个解决方案并认为它真的很好。最后,开始实际查看他们现有的代码。例如,我喜欢SVProgressHUB项目。特别是,我喜欢它可以只用一行代码调用而无需创建和维护对象。我最终以类似的方式实现了RKDropdwonAlert。启动项目仓库,赶紧把这句话说5遍:“简单,直接,好用”!我意识到我的最新项目比我的旧项目更快地受到关注和加星。可能是因为认识我的人越来越多(感觉自己很有名气哈哈哈),但我觉得是因为我越来越懒了。当我刚开始写开源项目时,我会为不太明显的优化写很多代码,因为那些很重要也很有吸引力。但是现在我构建了一些优雅和可用的东西,但是却花了很多时间来清理界面/界面。RKNotificationHub汉堡菜单按钮的左上角。我们以RKNotificationHub(RKNH)为例。一开始,我想在我的项目的菜单按钮中添加一些东西时就想到了RKNN,因为我认为这会是一个非常好的想法,可以吸引用户查看新功能。这非常有效,我继续在其他项目中使用它。一开始我以为这个Repo可以支持大量的后端万能通知系统。例如,链接到集合、数组、字典、APIhit、APN等,并在每次值更改时更新它。但是最后我实现了简单的UI逻辑,把具体的业务逻辑交给用户自己去实现,让他们有更细粒度的控制。为什么?因为我越来越懒了,但我觉得它也有它的优点:足够简单,轻巧直接,非常好用。用一句话概括就是:如果没有人知道如何使用你的代码,就没有人会使用它。WriteReadmeReadme(Github允许你创建这个文件,通过markdown等语法在项目首页展示你项目相关的内容)是你整个项目中最重要的内容。如果最后你只能从这篇文章中学到一件事,我想应该是:只要你花在代码上,那么就花同样的时间写你的README。我是认真的!事实上,我认为我在Github上的成功很大一部分来自于我仔细设计我的README使其更美观(并证明我只是一个普通的程序员)。以下是我如何布局我的README文件:一些要点是:这是大多数人会留下或离开的关键。让它变得更好,以便开发人员在他们离开之前为它加注星标。加星的人越多,就会有越多的人认可/相信您的项目。图片,图片,图片!使用类似LICEcap的东西来创建gif。如果它们是动画的,请将创建的图像放在imgur帐户中。展示,而不是讲述。不要用文字说它如何优雅地解决任何问题,用一张GIF来展示它,它比长篇大论的废话好用多了。向他们展示代码示例。您必须有一个HOW-TO部分。使用它的人不会通读你的代码,所以你必须为他写例子。使用图片辅助您的代码示例,以更好地展示效果。如果有人提出问题,请尽快解决。如果有人多次问同一个问题,请考虑是否将此写入README。配一张好图,图片效果比文字好。回购协议中确实需要好的代码。但我敢打赌,如果我不放代码就画一些漂亮的图,我现在仍然可以获得60%的星星。有了好的技术,就会有好的设计(无论技术走到哪里,设计最终都会随之而来)。消费类硬件、应用程序、网站、登陆页面等都说明了这一趋势。技术我们的目标是Github浏览器用户,而不仅仅是开发人员。以下是您在绘图时需要考虑的一些要点。我还是以RKNK中文形象为例。考虑如何传达您的回购协议的目的。您希望他们了解回购协议为何有用。RKNK致力于创建简单的通知图标,因此我决定使用Facebook的通知中心作为中心图像。请注意,该空间在顶部的标题部分和末尾的我的Twitter中有一个特定的短链接。然后将中间部分分成两部分。左图显示了如何使用RKNH。它居中(有很多空白),大多数人是从左到右阅读的,所以左边是主要概念。右侧的图形通常居中并留空。如果说左边是解释它是什么产品,那么右边就是解释你为什么需要使用它。动画很吸引人,所以我想用它来展示。最终结果:这张图片不仅是开始一个好的README的简单有效的方式,而且也适合分享。简单介绍一下当前的工具。我的大部分设计工作都是用Sketch3(这是一个非常简单的图形设计软件)完成的,GIF是用LICEcap录制并在GIMP中编辑的。其中一些不太好用,但它们是迄今为止我能找到的最好的免费解决方案。专注于反馈循环迭代!开始!可操作的指标!现在我们有了图片和记录良好的代码。我将向您展示如何通过您演奏整个洗涤。先介绍一下Github的Trendingpage的机制。?这是您尝试进入的页面。?数据是Github提供的,时间窗口不清楚,我觉得应该是一周。这就是为什么。90%以上的页面流量和跳转都来自于Github本身,极有可能来自于热门人气榜单页面。成千上万的开发者前往Github的热门页面,看看开发社区中流行什么。更棒的是,这些人都有Github帐户并已登录。如果你喜欢获得Github星标,这些人就是最好的资源。热门页面的算法也很简单:就是看一段时间内被star的次数。这对于一天和一周都是如此。反馈循环是我用来吸引更多观众参与的方式(尽快回复并重复他们的建议)。这是受到精益创业以及我如何获得前30颗星的启发。反馈循环看起来像:发布带有图像的链接(比单独使用Github更有效)在几分钟内获得反馈并及时回复这些反馈重复两到三次,直到初始传播完成我不太喜欢它并且我很提防王婆在我的个人社交网络上卖瓜宣传自己的东西。所以除了这个帖子,你很少看到我在Facebook上的状态。对我来说,Reddit是获得匿名反馈的好地方(因为那些人??也喜欢学习和接受新事物)。这确实是一个积极向上和增强自信的好环境。当然,你不一定要选择Reddit作为主要平台。我只是觉得它对我有用。你可以更倾向于ProductHunt、Twitter、Facebook、同事、本地计算机科学用户组,如黑客马拉松组等。一定要记住这个经验法则:如果你的工作很糟糕,反馈也可能很糟糕,如果你的文档很糟糕,如果你还在和那些花时间给你建议的人争论,那么反馈就不好,那么你几乎会失去他们的跟进。我们看上面源站的截图,可以发现Reddit给我带来了58个人,所以我需要从这58个人中获得最初的30+stars。这是我们之前的工作(例如项目文档README和插图)发挥作用的地方,因此请加倍努力以获得这颗初始星。如果我犹豫不决,我总是求助于我的一些开发人员朋友。他们都会帮我解决难题,所以请留意他们。结束语感谢那些阅读到这里的人,我希望你能很快得到你想要的效果,但记住这不是一蹴而就的魔法。您仍然必须完成您的工作,可能需要数百小时。我并不夸张(当我说编码和文档时间应该是1:1对应时),越是复杂和大规模的项目,越需要更清晰易懂的文档。你可能会因为你写的小东西而获得数百颗星,但如果你真的想有所作为,你需要做大项目。我个人将在接下来的几个月里继续维护现有的开源项目,试图了解开发人员使用我的repo的目的。建造和创造很有趣,但解决问题同样重要。