引言
当今软件的开源,已形成一种潮流,庞大的开源软件,是一个巨大的宝藏。因此,作为一个软件开发人员,如果希望在这条路上持续耕耘,必须要持续学习新知识(不仅仅是为了一份工作,而且可以从中获得很多乐趣和成就感),而开源软件,就是非常好的学习途径。
为什么学习使用开源项目
- 可以了解当今业界某个领域的问题的解决方案,而这个解决方案往往不止一种,可以大大扩展我们的视野。
- 可以了解某种语言的发展趋势,是一个不错的获取语言最新变更的途径。
- 因为优秀的开源项目,往往有业界一些顶尖的牛人参与,能够实际看到出自他们的作品,机会非常难得。
- 一些实现手法的学习。相信很多人可能会有过类似的感受,就是设计出来的软件,不能够优雅地使用当前的编程范式实现出来,要么实现的冗余笨拙,要么难以理解。通过开源项目,多看看别人是怎么写的,有助于提升自己的软件实现能力。
学习开源项目
- 阅读项目文档,如 getting started,example 等,学习如何开源项目下载、安装和基本使用方法;
- 如果项目提供 example 工程,尝试运行,解决运行过程中遇到的问题;
- 尝试根据理解和需要修改 example,通过调整各种参数观察表现结果,验证我们对项目的猜想和假设,加深对项目的认知;
- 在了解基本使用后,需要根据用户指南深入了解项目,例如项目的配置管理,高级功能及最佳实践;
- 如果时间允许,尝试从源码构建项目,根据项目构建指南,搭建一个可以用于开发、调试和验证的环境。
阅读开源项目源码
- 阅读源代码的第一步为抓住干,尝试理清楚代码运行的调用路径,通过 debug 来观察运行时的变量和行为,加入日志和打印可以更好的理解代码,大部分的细节需要在调试中理解;
- 画逻辑关系图帮助理解源码,将代码主干画成流程图或 UML 图,帮助记忆和下一步阅读,大幅度提高对框架的理解速度;
- 挑感兴趣的枝干代码来阅读,深入实现细节,包括使用的库、设计模式等;
- 重视单元测试,加深对程序模块功能的理解;
- 发现有可改进的地方,对项目开发者提出改进意见或者 Issue。
- 写笔记与写文章,通过写笔记记录学习的收获和经验,供以后使用,通过写文章对于问题进行深入和系统的思考。
常见的开源代码托管平台
其它国内的一些专有的平台如:
华为开源云
阿里云
百度效率云
腾讯coding
另外一些不同的开源平台:
sourceforge
网友评论