初识开源
1.基本情况
1.1什么是开源
以手机操作系统为例。ios是闭源的,安卓就是开源的,区别在于源代码是否是公开的。开源不等于免费,在现有某些情况下,使用开源的代码,需要遵守开源协议里的条款。该协议类似“君子协定”,但场内大玩家基本都遵守,秩序比混乱更有利于发展。虽然开源不一定免费,但开源一定透明,能增加“信任”,信任体现在两方面,一是防范外部危机(凝聚集体智慧的代码更具有健壮性),二是服务提供方没有有意收集我的信息(留后门)。最开始重点在共享(在网上发布),后来重点更进一步,转移到了协作上。可以看作最开始是单纯的共享信息,现在是在共享信息的基础上,更好地协作。
思考点:在github上,开源项目归发布者所有,其他contributer(贡献者),为何愿意贡献,如何改良这个模式,良性循环,使贡献者也能得到收益?
1.2.为什么要开源
开源对个人地意义:锻炼技术,炫技
创新工作的目的:降低门槛;提高工作效率
要做一件事,
- 首先要明确目的是什么?也就是问题是什么?
- 其次,要有相关的信息
- 再使用决策模型处理相关信息,
- 最后得到最终结果
其中,如何解决可以封装成黑盒,输入问题和信息,输出解决方案。
开源级服务和企业级服务
1.3.开源协议
MIT和阿帕奇协议(完全开放协议)
GPL协议(强制使用者开源协议)
1.4.为什么大厂在搞开源
通过开放代码,从而建立生态,将生态中其他开发者的代码连接到提高的服务上,服务是可以收费的。基于开源服务的代码谁都可以卖,大厂的自信基于两点:一是软实力,技术实力,资金实力,二是硬实力,强制某些代码更适配自身硬件,从而获得竞争优势。
两种思路:1,技术是护城河,因此要保护源码 2.放弃垄断,开放生态,依靠生态卖服务
2.如何学习开源
2.1开源项目下载
优先使用码云,github下载会慢一点
下载后解压,先不着急运行
观察:
- 用了哪些技术
- 是否有数据库
- 你的环境是否匹配
通过了,再考虑运行
2.2、跑起来
1.安装数据库,执行SQL
2.前端依赖安装
3.后端项目导入
4.等待所有的成功,启动后端项目:只要发现了Swagger,跑起来的第一步就是先进入Swagger- ui 页面,这里都是接口
进而查看配置文件,默认端口等,有哪些配置需要改为自己的项目和环境地址
前端就是安装依赖,启动测试运行,看接口是否正常
2.3、前后端分离项目于的固定套路
1.从前端开始分析。打开控制台,点一个接口,分析调用关系
2.前后端端口调用不一致 8013 -- 8000,
- 封装了接口请求 ajax axios
- 找到配置
- 前后端分离项目的重点:找到接口的调用关系
- Springboot 提供服务,前端调用接口,vue 负责渲染页面。
- 前端项目固定套路
- 通过抓取前端的请求,找到后端对应的接口
- 后端分析:Controller -- Service -- Dao
- 接下来分析如何渲染,vue标准套路
2.4、如何找到一个好的开源项目
1. 找分类
2.看收藏
3.看具有价值
4.根据自身的理解情况去看
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?