【Java经验分享篇01】小白如何开始学会看开源项目?

前言

本文章纯粹是个人对于一个新手如何在有一定基础的情况下开始看自己的第一个开源项目做一定的解析。所以选用的是技术架构并不难的项目,对于新手来说也更加友好,纯属分享希望对于已经有一定代码基础的小伙伴们有用!

1.理解开源

1.1.什么是开源?

​ 一般来说,如果提及开源,人们首先想到的是,把代码公开出去,例如放到GitHub上。以下详细来聊聊开源这个概念的内含和外延,来快速的了解关于开源的概念以及延伸,关于开源的最权威解释可以参考 https://opensource.org ,这个网站是开源思想诞生的地方。而在国内也同样有 开源中国这样的开源网站

​ 国内外开源社区推荐:开源中国ChinaUnixGitHubApacheSourceForge

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)]

2.如何查找开源项目

​ 首先关于开源项目的查找要介绍的网站有两个,一个是 GitHub众所周知全球最大的同性交友平台,第二个则是国内近几年火热的代码管理平台 码云。想要寻找比较好的开源项目通常在这两个平台上面搜索即可,当然搜索也是需要技巧的。

代码管理平台常见关键字解析

  • watch:会持续收到项目的动态
  • fork:复制某个项目到自己的仓库
  • star:点赞数,表示对该项目表示认可,点赞数越多的项目一般越火
  • clone:将项目下载到本地
  • follow:关注你感兴趣的作者,会收到他们的动态

2.1.一个仓库项目的基本解析

在这里插入图片描述

一些关键性信息分析

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桌子椅子凳子。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值