1. 如何动手抉择开源我的项目并奉献代码?
对于如何动手开源我的项目,能够从 opensource.guide 中找到最详尽的解答,这里简要概括一下所波及的重点,并联合本人的了解陈说一下如何找到奉献指标。
1.1 如何找到适合的我的项目
首先从本人我的项目中所波及的开源轮子以及本人筹备应用的轮子中找。关注一下我的项目的 README 中是否有待实现事项,关注一下 issue 列表中他人反馈的 bug,尝试看是否修复个别简略 bug,就像新入职一家公司,很多时候也会从修简略的 bug 作为上手我的项目的办法。除此之外,关注我的项目的文档是否足够欠缺,如果不够发现有缺点(甚至是一些错别字),都是能够不便上手批改的。如果是国外的我的项目,看看是否有中文版文档,如果没有可尝试将其 README 翻译出一个中文版本。
如果的确没有指标,那么能够依据本人善于的编程语言,从这里找找看有没有能够奉献的我的项目
- GitHub Explore
- Open Source Friday
- First Timers Only
- CodeTriage
- 24 Pull Requests
- Up For Grabs
- Contributor-ninja
- First Contributions
- SourceSort
在抉择一个开源我的项目之前,还有一些注意事项:
- 看看这个我的项目沉闷水平怎么样?作者是否常常保护,如果好几个月没更新过的,就没必要节约精力了。
- 看看这个我的项目的贡献者散布状况,如果绝大部分奉献都只有作者自己,那么这个我的项目不适宜参加。
- 看看 issue 列表和 pull request 列表,看他人反馈的问题,以及作者对问题的态度是否踊跃。
- 看看我的项目的 start 数。
以上就是对于对于如何抉择奉献指标的简略介绍,更具体的内容能够 opensource.guide 中仔细阅读。
2. MimeType 我的项目奉献过程
2.1 为什么抉择 mimetype
第一次开源奉献,自己依据本身状况抉择应用 Go 语言,并明确此次奉献目标在于练手,基于上述准则和网站所列举的我的项目中抉择了 mimetype .
什么是 mimetype ?
媒体类型 (通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型)是一种规范,用来示意文档、文件或字节流的性质和格局。它在 IETF RFC 6838 中进行了定义和标准化。
互联网号码调配机构(IANA)是负责跟踪所有官网 MIME 类型的官网机构,您能够在媒体类型页面中找到最新的残缺列表。
mimetype 我的项目的工作原理是什么?
通过建设 magic number 与文件类型名称的映射关系,来判断文件的类型(比方 mp4, png, jpeg 等)。
什么是文件的 magic number?某些类型文件会在结尾前几位应用固定的字符,以此来表明本人的身份,那么对于这些文件,只有读取文件前几位,就能晓得它是什么类型的文件了。然而并非所有类型的文件都有 magic number,这不是一个 100% 牢靠的失败文件形式,因而首先要先确保指标文件类型反对 magic number。
基于以上起因,只有找到 README 中尚未被收录且反对 magic number 的文件类型,就能够为该开源我的项目奉献代码了。
2.2 我如何为 minetype 奉献
首先能够通过各种渠道找到反对 magic number 的文件列表,比照 README,确定还没被收录的文件类型。这里参考了 这个列表,确定了 xpm。
其次就是 fork 我的项目,奉献代码,而后提交 pull request。至于这部分如何操作,能够参考官网指引。
这里自己的代码存在一些缺点,被我的项目作者犀利指出。通过一点细节批改和探讨,再次提交 commit。
最终如图中所见,代码被合并到骨干,即实现了本次开源代码奉献。
3. 总结
对于开源我的项目参加,可先从最简略的动手,最重要的是跨出第一步。
4. 参考资料
How to Contribute to Open Source | Open Source Guides
List of file signatures – Wikipedia
Detect file mime type using magic numbers and JavaScript | by Andreas Kihlberg | The everyday developer | Medium
MIME 类型 – HTTP | MDN
zpage.mime.types.title
File Magic Numbers
File Converter – video converter, audio converter, image converter, eBook converter
gabriel-vasile/mimetype: A fast golang library for MIME type and file extension detection, based on magic numbers