前言
本文章纯粹是个人对于一个新手如何在有一定基础的情况下开始看自己的第一个开源项目做一定的解析。所以选用的是技术架构并不难的项目,对于新手来说也更加友好,纯属分享希望对于已经有一定代码基础的小伙伴们有用!
1.理解开源
1.1.什么是开源?
一般来说,如果提及开源,人们首先想到的是,把代码公开出去,例如放到GitHub上。以下详细来聊聊开源这个概念的内含和外延,来快速的了解关于开源的概念以及延伸,关于开源的最权威解释可以参考 https://opensource.org ,这个网站是开源思想诞生的地方。而在国内也同样有 开源中国这样的开源网站
国内外开源社区推荐:开源中国、ChinaUnix、GitHub、Apache、SourceForge、
1.2.开源的定义
先来给开源一个定义,一个软件是开源的,最基本的含义是代码是公开的,任何人都可以去查看,修改以及使用。
首先,开源代码和闭源代码非常不同。闭源代码就是普通的商业版权软件,代码是封闭的,只有作者才能看到,出了问题也只有他能修改。而开源代码,任何人都可以查看和修改。关于开源思想的诞生,有一个很有意思的故事。Richard Stallman是有史以来最伟大的几名黑客之一,也是世界上写代码最多的人之一,他曾经买过一个商业软件,结果有一点小问题,于是他去找软件公司,问他们能不能帮忙修复一下,软件公司说不行,Richard 于是说,那能不能把代码给我,我来修复一下,公司也说不行。于是 Richard Stallman 很生气,创立了自由软件基金会,发布了大名鼎鼎的 GPL 协议,GPL 至今为止依然是最著名的开源协议。
第二点需要特别注意的是,开源不等于免费。软件代码虽然可以免费给别人,但是软件相关的服务,例如编译维护升级等,一样可以赚钱,例如 Redhat 就是家开源软件公司,不仅仅赚钱,而且很赚钱。同时,很多公司有把越来越多的开发者投入到公司的开源项目中,这些软件可以有力的支撑起公司的生态,所以如果你是一个开源软件开发者,也不用担心找不到工作。
1.2.1.开源软件优点
| 优点 | 说明 |
|---|---|
| 低风险 | 使用闭源软件无疑是把命运交给他人,一旦封闭的源代码没有人来维护,你将进退维谷;而且相较于商业软件公司,开源社区很少存在倒闭的问题。 |
| 高品质 | 相较于闭源软件产品,开源项目通常是由开源社区来研发及维护的,参与编写、维护、测试的用户量众多,一般的 bug 还没有等爆发就已经被修补。 |
| 低成本 | 开源工作者都是在幕后默默且无偿地付出劳动成果,为美好的世界贡献一份力量,因此使用开源社区推动的软件项目可以节省大量的人力、物力和财力。 |
| 更透明 | 没有哪个笨蛋会把木马、后门等放到开放的源代码中,这样无疑是把自己的罪行暴露在阳光之下。 |
1.2.2.经典开源软件案例
| 软件 | 说明 |
|---|---|
| Linux | Linux 是一款开源的操作系统,它的内核由多名极客共同维护。Linux 是开源软件的经典之作、代表之作、巅峰之作。 |
| Apache | 世界使用排名第一的 Web 服务器软件。 |
| MySQL | 世界上最流行的关系型数据库,适合中小型网站。 |
| Firefox | 火狐浏览器。在 Chrome 推出之前,Firefox 几乎是最快速的浏览器,直到现在也是 Web 开发人员的调试利器。 |
| OpenOffice | 套跨平台的办公软件套件,类似 Microsoft Office。 |
| GCC | C语言/C++编译器。 |
| Java、PHP、 Python | 开源的编程语言。 |
1.3.关于开源协议
开源软件在追求“自由”的同时,不能牺牲程序员的利益,否则将会影响程序员的创造激情,因此世界上现在有 60 多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开源工作者的权益。
开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么。
1.3.1.如何选择开源协议
世界上的开源协议有上百种,很少有人能彻底搞清它们之间的区别,即使在最流行的六种开源协议——GPL、BSD、MIT、Mozilla、Apache 和 LGPL——之中做选择,也很复杂。
乌克兰程序员 Paul Bagwell 画了一张分析图,说明应该怎么选择开源协议,大家看了一目了然,真是清爽。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iQKFVvVg-1627583726689)(img/1.gif)]](https://i-blog.csdnimg.cn/blog_migrate/db19a125c1ab0c1d5036e0f2bce7c8c5.gif)
2.如何查找开源项目
首先关于开源项目的查找要介绍的网站有两个,一个是 GitHub众所周知全球最大的同性交友平台,第二个则是国内近几年火热的代码管理平台 码云。想要寻找比较好的开源项目通常在这两个平台上面搜索即可,当然搜索也是需要技巧的。
代码管理平台常见关键字解析
watch:会持续收到项目的动态fork:复制某个项目到自己的仓库star:点赞数,表示对该项目表示认可,点赞数越多的项目一般越火clone:将项目下载到本地follow:关注你感兴趣的作者,会收到他们的动态
2.1.一个仓库项目的基本解析

一些关键性信息分析
Issues(问题单):用于对项目进行跟踪、增强和排错。它们就像电子邮件一样 —— 除了它们可以与团队的其他成员进行分享和讨论- 越火的项目
start和fork就会越多 commit:一般比较好的项目,维护会比较频繁,更新也会频繁,提交数就会多README.md文件是一个项目的入门手册,里面介绍了整个项目的使用、功能等等。所以

最低0.47元/天 解锁文章
4051

被折叠的 条评论
为什么被折叠?



