我的第一个成功的开源项目是如何建立的?

Posted CSDN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的第一个成功的开源项目是如何建立的?相关的知识,希望对你有一定的参考价值。

【CSDN 编者按】作者用亲身经历鼓励大家从事开源活动,那我们应该怎样开始一个开源项目呢?看看作者是怎么做的。

作者 | joshua fonseca        译者 | 弯月
出品 | CSDN(ID:CSDNnews)

以下为译文:

我的第一个成功的开源项目名叫Vim Bujo(https://github.com/vuciv/vim-bujo),这是一个任务管理工具,可以直接在 vim 中使用。它既支持通用的待办事项列表,也可以支持项目专用的任务清单。

我的第一个成功的开源项目是如何建立的?


我的第一个成功的开源项目是如何建立的?

构思


我经常使用待办事项清单,但我觉得任何应用和工具都比不上笔和纸。我曾尝试使用最流行的应用,但觉得不好用。标记某项已完成的工作时,还要切换页面,感觉很败坏兴致。最重要的是,这些应用鼓吹的特征在我看来大可不必。

多年以来,我坚持只用笔和纸,但我一直在寻找数字化的工具。一定有某种工具可以让我满意地标记完成的工作,同时还不会打断我的工作!只不过,我还没找到……

去年,我开始接触 vim。俗话说,拿着锤子的人看什么都像钉子。比如说,我第一次学习力学的时候,每踏出一步,我就会思考所有相互作用的力。有一天,我正在写待办事项清单,突然一个想法冒了出来:“我可以直接从当前 Vim 窗口打开待办事项列表!”紧接着,“Vim 版子弹日记”的想法也冒了出来,而这正是我在苦苦寻找的 Vim 插件。


我的第一个成功的开源项目是如何建立的?

实现


我没有构建 vim 插件的经验,也没有使用 vimscript 的经验。于是,首先我阅读了 Steve Losh 的著作《 Learn Vimscript the Hard Way》中有关创建完整插件的说明。大致浏览了一下后,我对文件结构有了一个很好的了解,但仍然缺乏细节,老实说,我没有时间阅读整本书(足足有 40 章)。为了填补我的知识空白,我决定采用我最喜欢的方式:阅读其他人的代码!

我发现阅读别人的代码是非常好的入门方式。我的意思不是说复制别人的代码。你可以阅读功能代码、逻辑流程和高级组件。我决定看一看 Tim Pope 的一些项目。他是 Vim 插件大神,创建了很多优质的Vim插件,而且他的所有代码都是开源的!对我来说,这简直就是一个金矿!

后来,我构建了一个非常简单的版本。只做了必要的功能。当你输入“:Todo”时,Vim 就会打开一个新文件,然后显示在当前窗口旁边。接下来,你可以使用快捷键输入新任务,或将某个任务标记为已完成。我简单测试了一下,感觉终于找到了梦寐以求的工具。当然,因为这是我亲手创建的工具,自然感觉良好。


我的第一个成功的开源项目是如何建立的?

添加 Git 集成


项目进展到这里,我对一切都非常满意!后来,有人提出了一个很好的功能请求。他们问我是否可以添加git集成,这样就可以在操作某个 git 代码库时,直接打开相应的项目任务清单了。这个功能的实现很简单!

Git 有一个命令 git rev-parse --is-inside-work-tree。如果该命令返回true,则我们会使用 git rev-parse --show-toplevel 来获取顶层的目录名称,并创建一个 todo 文件,文件名称就是你所在的项目代码库。

添加 git 集成一点也不难,但是我认为这个功能很酷,应该添加进来!


我的第一个成功的开源项目是如何建立的?

To do 文件保存在哪里?


在添加 git 集成后,我需要考虑将这些文件存储在用户计算机的何处。最初,我在项目的根目录下创建了一个隐藏文件,但这不太理想。试想一下,我需要将这个文件添加到每个 gitignores 中,这肯定很烦人。幸运的是,有一个用户提出了一个非常简单的解决方案,甚至震惊到了我。只需要创建一个~/.cache/bujo文件夹,然后将所有数据都保存在里面!这个文件夹根本不会打扰用户,而且如果他们不喜欢的话,还可以在 vimrc 中设置自己的文件路径。


我的第一个成功的开源项目是如何建立的?

推销


不得不承认,我非常不擅长推销自己的产品。我很难找到合适的一群受众。幸运的是,我的工具很值得分享,在社区受到了好评。我没有向任何人发送垃圾邮件,我也不需要任何回报,我只是想分享自己的产品。我最成功的推广来自 Reddit:

我的第一个成功的开源项目是如何建立的?

我的 reddit 帖子收获了 300 多个赞,20 多条评论。他们提供了反馈给我,然后我也都实现了。积极地听取反馈是赢得用户的最佳方式。


我的第一个成功的开源项目是如何建立的?

总结


这是第一次有人实际使用我的产品。有人在 GitHub 上贡献代码、添加议题、提出功能要求,甚至有人建立了分叉!我收获了 100 多颗星,虽然不是很多,但对我来说是一个巨大的进步。

最重要的是,我学会了构建自己想要的产品。我觉得我的产品很有用,而其他人也都开始使用了!

原文链接:https://jerseyfonseca.com/projects/bujo

声明:本文由CSDN翻译,转载请注明来源。

我的第一个成功的开源项目是如何建立的?

60+专家,13个技术领域,CSDN 《IT 人才成长路线图》重磅来袭!

我的第一个成功的开源项目是如何建立的?