本节书摘来异步社区《开源思索集》一书中的第2章,第2.1节,作者: 庄表伟 责编: 杨海玲, 更多章节内容可以访问云栖社区“异步社区”公众号查看。

如何更有效地学习开源项目的代码?

开源思索集
说说我的开源学习经历:

1.下载源代码之后,首先要跑起来。编译通过、正常运行。

2.在你觉得最有可能的运行到的地方,设置断点或者抛出异常,这样,就能够找到一个项目在正常运行时的入口点。

3.从入口点所在的那个源文件开始阅读,逐步把握整个项目是如何启动起来的。

4.随便改点代码,看看会不会报错,如果报错,会从哪里报错。

5.试着把报错屏蔽、修复、或者绕开。

6.尝试理解一个系统的内部结构,多少组成部分,主线模块是哪些?辅助模块是哪些?

7.从实际需要出发,修改这个项目,满足自己的某一个小的需求。

在此之前,尽量不要在网络上找答案。

8.看看相关的讨论与心得,看看是否与自己的理解相一致。

9.提交bug fix或者某个新的功能代码。

在学习开源的过程中,有以下几个方面会获得大量的收获:

1.架构与模式

2.开源社区常见的一些惯用法

3.相关领域的结构与算法

总结一点是:学习开源,就尽可能在代码里找答案,而不是在代码之外找答案,那些都是二手的,而且很可能是不准确的。

《开源思索集》一如何更有效地学习开源项目的代码?相关推荐

  1. 《开源思索集》一黑客的胜利——读《增长黑客》有感

    本节书摘来异步社区<开源思索集>一书中的第1章,作者: 庄表伟 责编: 杨海玲, 更多章节内容可以访问云栖社区"异步社区"公众号查看. 黑客的胜利--读<增长黑客 ...

  2. 《开源思索集》一欢迎来到异步社区!

    本节书摘来异步社区<开源思索集>一书中的第1章,作者: 庄表伟 责编: 杨海玲, 更多章节内容可以访问云栖社区"异步社区"公众号查看. 欢迎来到异步社区! 开源思索集 ...

  3. 《开源思索集》一Source Code + X

    本节书摘来异步社区<开源思索集>一书中的第1章,作者: 庄表伟 责编: 杨海玲, 更多章节内容可以访问云栖社区"异步社区"公众号查看. Source Code + X ...

  4. Linux下开源pcb设计软件,KiCAD更好用的开源免费的原理图、PCB设计软件

    有没有一款PCB设计工具非常适合初学者?它最好满足以下条件: 可以永远免费使用全部的功能 - 从建库到布局布线,生成各种需要的文件,企业的产品设计也可以放心使用: 除了Windows下,还能够运行在M ...

  5. 如何有效的学习开源代码

    导读:对于开发者来说,社区里丰富的开源代码其实是笔极为宝贵的财富.如果能充分利用好开放源代码的资源,不仅可以掌握多种编程方法,提高实践能力,还能获得好的思想,激发编程灵感.开源代码怎么学以及怎样才能学 ...

  6. 在集群的操作机上执行命令为什么会出现权限被拒绝_如何使用 TDengine 2.0 最新开源的集群功能?

    导读:8月3日,TDengine 发布了 v2.0 版本,这次更新最大的亮点是,我们将分布式集群功能开源.开源后,引起了很大反响,又连续几天在 GitHub 趋势榜排名第一.不少关注TDengine的 ...

  7. VEGA:诺亚AutoML高性能开源算法集简介

    摘要:VEGA是华为诺亚方舟实验室自研的全流程AutoML算法集合,提供架构搜索.超参优化.数据增强.模型压缩等全流程机器学习自动化基础能力. 本文分享自华为云社区<VEGA:诺亚AutoML高 ...

  8. 掌握了开源框架还不够,你更需要掌握源代码

    摘要:本篇文章将以解决 Element Plus 问题的经历开始,循序渐进讨论开源项目或开源框架的问题,进一步讨论驾驭开源项目源代码的方法和技巧,分享自己阅读.理解和更改源代码的思路. 本文分享自华为 ...

  9. 女程序员在GitHub提交PR更易被拒?开源世界“她”力量

    据2021年全球软件开发者调查显示,绝大多数开发者为男性并占所有受访者的91.67%.女性开发人员仅占所有受访者的5.31%: 基于全球 183 个国家或地区的 31743 名开发者,2021 Jet ...

最新文章

  1. 大数据,正在到来的数据革命——涂子沛
  2. html自定义datajs,科技常识:HTML5的自定义属性data-*详细介绍和JS操作实例
  3. 需求:整个网站不能出现以下两个链接。思路:检索到网站中凡是出现该链接的都让它的href值为空...
  4. Delphi 中将对象作为参数传递的使用
  5. 从实验现象详细分析BGP的路由策略与选路原则
  6. python给出数据点进行插值_Python对数据进行插值和下采样的方法
  7. 2012年I / O之后
  8. wu** C语言注意点
  9. 书单丨5本书带你学习Kubernetes,掌控云计算的未来
  10. OpenGL学习笔记_图形渲染管线及典型渲染流程(绘制一个三角形)
  11. 【2018.9.26】K-D Tree详解
  12. excel服务器bom修改,物料清单BOM表的实现方法_勤哲Excel服务器 - 勤哲app应用之家...
  13. Bex5文档服务器,WeX5/BeX5 UIServer的缓存机制
  14. 基于微信小程序 校园跑腿小程序毕业设计毕设开题报告参考功能
  15. Golang defer、panic和recover
  16. 【程序员面试金典】有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。注意这次的网格中有些障碍点是不能走的。
  17. vlookup使用步骤_VLOOKUP函数的使用方法详解
  18. Java金额大写转换
  19. 力扣88 - 合并两个有序数组【归并排序思维】
  20. 【leetcode】2248. 多个数组求交集(js实现)

热门文章

  1. 均匀白噪声的定义及特点_噪声的物理本质是什么?
  2. jquery生成一个li_jquery-创建元素和添加子元素
  3. java map判断是否有键_检查Java HashMap中是否存在给定键
  4. 什么时候html的过渡版本,CSS过渡与转换
  5. 先进制造技术论文_干货分享:新能源汽车先进制造技术
  6. PHP提高redis命中率,怎么提高redis缓存命中率
  7. mysql 临时表增加主键_MySQL之重建表
  8. 大学生创业交流会计算机二级,我校召开第三届“互联网+”大学生创新创业大赛选题交流讨论会...
  9. java连接摄像头_Java实现 海康摄像头抓拍图像(示例代码)
  10. java Socket(二)