现在要说学习资源网络上有太多,最为关键的就是 github 上边,个人不是只满足于能够使用上边的种种框架,而是想深入学习框架的源代码,各位大佬们你们都是怎么学习这些源代码的呢?git clone 下来然后从头开始阅读吗?我很迷茫
面对 github 上边大量的框架源代码如何学习呢?
-
GitHub
210 引用 • 2036 回帖
GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。
-
框架
47 引用 • 348 回帖 • 1 关注
-
代码
467 引用 • 586 回帖 • 9 关注
-
Q&A
8443 引用 • 38447 回帖 • 154 关注
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
相关帖子
-
-
wuhongxu • • 1
我一直依赖推荐的是以需求推动学习。以我学习 ioc、di 为例。首先是需求确定,为什么去学习他,有两个方向,一个是闲得发慌重复造轮子,一个是更好的在日常中去使用。接着先用用比较知名的框架,例如 spring 的 ioc,看看手感怎么样,想想它是如何实现的,翻翻官方文档,一般都有简单的实现原理,spring 的明确的提到了 beanFactory 之类的东西。接着,这个时候,如果你一股脑钻进去看源码,没有一定的经验,一定是不知所谓,茫然得一比,所以这个时候其一般鼓励先思考思考如何实现,先猜猜有些什么坑(比如我猜到了依赖会有循环问题,当然只猜对了一般,实际上只有 contructor 会有,而我猜的是所有情况下的注入都会有),然后想想自己怎么去实现它,没有把握就勤能补拙,动手去写一个,不要怕代码写的差,老实说,写得好也不会有人多看你一眼(笑)。人如果是菜鸟时期,又没有人教你,那么毫无疑问,勤能补拙,多动手,动手结合理论,就能够慢慢进入角色了,多看了几个框架,之后你就会慢慢积累一些套路经验,到那时,无论结构多么复杂的代码都能开始慢慢看懂了。我个人在 2018 最大的收获就是通过勤能补拙,进入了一个开始不那么依赖于动手也能看懂代码的阶段。
个人理解
2 回复 -
-
wmatrix • • 1 • 1 赞同
带着明确的问题去阅读源码。
直接阅读 clone 下来的项目源码,真的会感觉很枯燥无趣,而且也很难坚持下来,至少我自己是这样。一般来说,我是在工作项目中有需要的时候,去 github 上面找一些知名能够满足需求的开源框架/库,先熟悉阅读他们的使用文档和 demo 示例,掌握框架的功能接口和总体设计思想,然后就接入移植到工作项目中去,边应用实现需求边进一步熟悉框架和库的设计接口细节。只要是应用到了项目中,随着需求的发展,总是会出现接口应用的一些问题的,甚至会出现接口内部的问题,这个时候再一步步地去深入阅读源码就很自然和明确了,而且是各个点击破,最终连成一片把源码给看完掌握的。
我当时学习 live555 库的时候就是这样一步步阅读源码掌握下来的。总结起来就是:
- 从能够满足实际项目需求的框架出发
- 阅读框架的文档和框架的 Samples,运行示例,理解设计
- 使用框架的功能实现手头的需求,进一步掌握使用细节,这一点很重要,任何框架只有实际使用后才能了解细节。
- 基于应用中的遇到的问题去阅读对应部分的框架源码,先只读能够帮助解决问题这一部分的,最终总会连通起来的。
- 然后就是不断重复第 4 步了,最后你就会突然发现,整个框架你已经阅读完了,而且是掌握的差不多了。
学习贵在精不在多,鉴于重复造轮子的太多,掌握好最知名的一些框架和库就足矣。最重要的是要有耐心,这些框架都不是短时间开发出来的,自然也不要期望在很短的时间内读懂掌握,除非你自信你比框架的作者还更聪明。
-
-
-
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于