前言
本文纯粹是个人分析一个新手如何在有一定基础的情况下开始看自己的第一个开源项目。 因此,我选择了一个技术架构不难、对新手比较友好的项目。 我只是想分享一下,希望对已经有一定代码库的朋友有用!
1. 理解开源 1.1. 什么是开源?
一般来说,如果提到开源,人们首先想到的就是将代码公开,比如放到. 下面我们详细谈谈开源概念的内涵和外延,以快速理解开源的概念和外延。 开源最权威的解释,可以参考【新闻| 打开](知乎-安全中心)。 这个网站是开源的 创意诞生的地方。在中国,也有像【开源中国】(-中国开源技术交流社区)这样的开源网站
推荐国内外开源社区:【开源中国】(-中国开源技术交流社区)、【Unix技术网=专业Linux/Unix应用与开发者社区=IT人在线家园】、【 :凡世界),[](/),[](和免费开放),
1.2. 开源的定义
我们首先给出开源的定义。 软件是开源的。 最基本的含义是代码是公开的,任何人都可以查看、修改和使用。
首先,开源代码和闭源代码有很大不同。 闭源代码是普通的商业版权软件。 代码是封闭的,只有作者才能看到。 如果有问题,只有他可以修改。 通过开源代码,任何人都可以查看和修改它。 关于开源理念的诞生,有一个非常有趣的故事。 `` 是有史以来最伟大的黑客之一,也是世界上编写代码最多的人之一。 他曾经购买过一个商业软件,但是出现了一点小问题,所以他就去软件公司询问他们是否可以帮我修复它,但是软件公司说不可以,所以我问你是否可以给我代码和我会修复它,但公司也拒绝了。 于是我很生气,创立了自由软件基金会,并发布了著名的GPL协议。 时至今日,GPL 仍然是最著名的开源协议。
第二点需要注意的是,开源并不意味着免费。 虽然软件代码可以免费提供给他人,但软件相关的服务,例如编译、维护和升级,也可以赚钱。 例如,开源软件公司不仅赚钱,而且还赚钱。 与此同时,许多公司正在将越来越多的开发人员投入到公司的开源项目中。 这些软件可以有效支撑公司的生态,所以如果你是开源软件开发者,你不用担心找不到工作。
开源软件的优点
经典开源软件案例
1.3. 关于开源协议
开源软件在追求“自由”的同时,不能牺牲程序员的利益,否则会影响程序员的创作热情。 因此,目前全球范围内有超过60个被开源促进组织(Open)认可的开源许可协议,以保证开源工作者的权利。
开源协议规定了您在使用开源软件时的权利和责任,即规定了您可以做什么和不能做什么。
1.3.1. 如何选择开源协议
世界上有数百种开源许可证,很少有人能够完全理解它们之间的差异。 即使在六种最流行的开源许可证 - GPL、BSD、MIT 和 LGPL 中进行选择,也很复杂。
乌克兰程序员Paul画了一张分析图来解释如何选择开源协议。 众人一目了然,真是令人耳目一新。
2. 如何寻找开源项目
首先,搜索开源项目时需要介绍两个网站。 一是[](/),号称全球最大的同志交友平台,二是近年来国内流行的代码管理平台[码云](Gitee)。 - 基于Git的代码托管和研发协作平台)。 如果你想找到更好的开源项目,通常可以在这两个平台上搜索。 当然,搜索也需要技巧。
代码管理平台常用关键字分析
2.1. 仓库项目的基本分析
一些关键信息分析
2.2. 关于开源项目的高级搜索
有高级搜索功能,可以输入‘关键词’、‘代码库大小’,包括‘作者’、‘代码语言’、‘包含后缀文件名的代码’等。
注:搜索公式可以组合使用。 只需用空格分隔每个公式即可!
2.3. 根据仓库标题和描述进行搜索
in关键字限制搜索范围
基于‘in:限制搜索的具体内容’进行更精准的搜索
2.4. 按地区和语言搜索
很多时候我们的项目需要使用我们知道的语言。 你找到一个写得很好的项目,但是你没有学过,下载了也看不懂。 同时,为了更好的阅读.md帮助文档和项目笔记,我想很多同学都会想下载中文版的项目。 当然,如果你英文熟练,请忽略它。 此时,您可以按地区和语言进行搜索。
2.5. 根据仓库属性条件搜索
您可以根据您的个人需求限制项目的大小。 您正在寻找的项目可能不是那么大,只是一些小项目。
如果你想找一些较新的项目,不想找比较老的项目,可以根据项目的更新时间进行搜索。
2.6。 基于个人或组织的搜索
如果你想知道某位大师是否在网上提交了新项目,可以对他们进行精准搜索。
2.7. 根据仓库查找
开源项目(项目授权协议) 有些开源项目作者明确禁止商业用途,但如果在不知情的情况下下载使用,会很麻烦,所以如果需要搜索该项目,需要遵循相应的开源协议。 搜索项目。
增强搜索
它似乎已成为许多项目最喜欢的名称之一。 它往往会整合大量同一领域的信息,以便每个人都能更好地学习。
2.8. 受欢迎的
趋势页面总结了每日/每周/每月周期的流行总和。 可以看到某个时期流行的开发项目和开发商。
主题显示最新和最热门的讨论主题。 在这里你不仅可以看到开发项目,还可以看到更多非开发技术讨论话题。
3. 开源项目分析 3.1. 查找相关开源项目
根据不同的用户使用情况(中文[Gitee](Gitee - 基于Git的代码托管和研发协作平台)、全球[](/)),可以先从国内开源网站搜索开源项目。 以下开源项目案例 在Gitee中,您可以根据首页的开源软件查看并搜索最有价值的项目,也可以根据推荐项目进行观察和选择项目进行学习
3.1.1. 开源项目
这个开源项目来自Gitee(程序员二师兄/oasys)上的一个自动化【OA办公系统】。 感谢您的开源。 如果你喜欢的话,可以给他一个开始。 办公自动化(OA)是面向组织日常运营和管理的应用系统。 是员工和管理者最常使用的应用系统,大大提高了公司的办公效率。
3.2. 如何分析开源项目
3.2.1. 观察开源项目
首先,对于一个开源项目,首先要做的应该是观察开源项目的大致结构(如使用说明、sql文件、项目目录结构`maven`或`等),以及所使用的语言等基本信息。
3.2.2. 项目技术分析
查看文档-匹配技术栈和运行环境
根据开源项目的使用说明,你可以知道当前项目使用了哪些技术栈,并根据这些技术栈分析是否满足你的需求。 并检查当前项目的运行环境要求,以便进行下一步运行项目。
以目前开源案例为例,技术栈如下:
前端技术
后端技术
部署注意事项
1.下载项目并导入oasys.sql到本地数据库
2. 修改。
3.修改数据源,oasys——>你自己的本地库名,用户名和密码为你自己的
4.修改相关路径,配置图片路径、文件路径、附件路径。 (复制/image/oasys.jpg到配置的图片路径,否则会报n)
5、运行.java中的main方法时,控制台没有报错信息,只要启动数据就运行成功。
6.在浏览器中输入:8088/login
3.2.3. 安装环境导入项目
通过第一轮的观察,我们可以发现并找到运行相关项目所需要的文件。 那么第二步就是将项目导入到我们的IDE编译工具中并尝试运行项目。 , 查看。
1.导入相关sql文件
通常开源项目的作者会将项目的sql文件打包并放入开源项目中。 通常可以在主页目录中看到相关的`xxx.sql`文件。 如果没有的话,可以检查一下是否有==相关的名为sql==的文件夹。
找到相关数据库文件后,新建一个相关数据库并运行SQL文件。
2.使用IDE工具打开项目
准备好相关的IDE工具。 通常放置在代码托管平台上的项目不会使用指定的编译器,而是会保留Maven的核心文件。
通常情况下,打开IDE编译工具,导入相应路径下的工程。
3.分析目录结构
项目导入成功后,您可以简单查看一下项目的目录结构,看看能否了解其大致布局,然后再开始下一步的深入项目分析。
从上图可以看到,就连开源项目的目录结构也是按照平时学习过程中的标准来的。 它还按级别、功能和资源来划分。
关于信息.java
在查看开源项目的过程中,可以看到很多包下都有`-info.java`这个类。 `-info.java` 是一个 `Java` 文件,可以放在任何 `Java` 源代码包中执行。 但里面的内容有特定的要求,其主要目的是提供包级别的相关操作,比如包级别的注解、注解、公共变量等。
1.提供包级注解
在对应的源码包中提供包级别的注解。 一个简单的例子如下:
01.
02.
03.
如果整个包已废弃,可以直接在“-info.java”下添加注解“@”来表明源代码包已废弃。
2.提供包级变量
如果你想使用包中对应的变量,并且不希望其他包使用它,可以将变量放在`-info.java`下,实现“分包为己用”的理念。
3. 便捷的文档输出
使用``时,通过在`-info.java`中添加注释,生成对应包的``注释指令。
3.3.Debug分析项目
我们可以通过在程序项目上调试断点来分析项目的源代码功能。 例如,您可以对最常见的登录部分执行调试测试。
根据断点,你可以一步步感受到作者编写这些代码的用意。 这就是开源的意义。 思考和学习是非常重要的!
总结
所以我个人的结论是,如果有基础的话,开源项目的流程一开始并不是很复杂。 可以概括如下:
1.了解什么是开源
2.学会寻找适合你想要看到的技术架构的开源项目。
3.观察开源项目(即看.md文件)并下载开源项目
4、先分析下载的开源项目的目录结构,然后用IDE工具打开开源项目
5. 运行开源项目
6.通过断点运行项目(Debug)来思考作者的想法。 如果您觉得不错,可以作为自己的参考代码。
----------------------------------