想要阅读一些开源项目或框架的源代码,不知道从哪里入手?

简介: 有个朋友在知识星球上向我提问。

我的建议是从Spring的源代码入手。至少我自己也是这么做的,毕竟Spring里有大量的设计模式和OO编程的最佳实践。我之前在SAP使用SAP自己的开发语言ABAP进行日常工作,后来因为工作原因也需要用Java开发。虽然SAP之前大多数产品都是基于ABAP开发的,但是现在公司在向云转型,越来越多的云产品是基于Java Spring来开发了。我觉得Spring 5年之内都不会过时,值得程序员花力气去钻研。


请阅读知乎问题: 学习spring源码的意义是什么呢?


然后怎么去学Spring呢?如果一头扎进Spring的代码海洋,肯定就直接淹死了。


我的两个方法:


1. 边看书边看源代码。


我看的是这本书,边看书,边自己写读书笔记。




如果发现自己提笔却表达不清楚某个知识点,说明这个知识点自己其实还未真正理解,那么再回过头去看书。


下面是我写过的一些读书笔记:


Manage your test case with @SuiteClasses

How does @Autowired work in Spring framework

Run only given sets of your unit test via @Category

Use @Rule to define custom rules for your test method

How does annotation @Cacheable work

A simulation of Java Spring dependency injection annotation @Inject in ABAP

2. 边看源代码边自己写代码,调试代码


自己用Spring搭一个Hello World的应用,然后一点点往上添东西。可以参考我的这个Github Repository里的commit记录看我是如何添加新的功能的。




不断写代码,调试代码,把自己学到的新东西写出来。


为什么要写出来呢?


在我的微信公众号文章SAP成都研究院35岁以上的开发人员都去哪儿了?里提到,科学研究表明,在实战中学习,教别人,是最有效的学习方法。




您可以关注微信公众号”汪子熙“获得更多Jerry Wang的中文SAP技术文章。


相关文章
|
5月前
|
设计模式 存储 算法
C++从入门到精通:3.7阅读和理解开源项目——在实际项目中应用C++编程技巧和规范
C++从入门到精通:3.7阅读和理解开源项目——在实际项目中应用C++编程技巧和规范
114 0
|
11月前
|
设计模式 程序员 测试技术
阅读开源项目源代码的方法与心得
阅读开源项目源代码的方法与心得
89 0
|
JavaScript 程序员 API
程序员为什么会在开发中阅读源码?
作为程序员的大家想必都会在开发的时候,去阅读源码。在实际开发中,开发者经常需要阅读和理解源代码,阅读源码是一种非常有用的技能,它可以帮助程序员更好地了解代码、解决问题、学习新技术和提高编码能力。阅读源码的过程实质上是对软件构建技术和架构深度的一种持续学习和理解。阅读源码可以揭示代码的内在逻辑,这被看作是对技术深度理解的一种体现,它能提高我们对技术的理解程度。结合阅读《Node 中的 AsyncLocalStorage 的前世今生和未来》这篇文章之后,我深刻体会到了作为开发者阅读源码的重要性和必要性。通过阅读这篇文章,我对 AsyncLocalStorage 的实现原理和使用方式有了更深入的理解
187 3
程序员为什么会在开发中阅读源码?
|
消息中间件 设计模式 缓存
怎样更好地阅读源码?
最近,为了提高团队成员技术水平,考察了大家源码阅读情况。作为第一期任务,选择了spring框架,范围是spring-beans,spring-context,spring-core,以及spring-web。考核方式为:了解spring框架作用、核心概念,并选择感觉最重要的几个类进行详细阐述。
98 0
|
存储 Java 程序员
如何写好技术文档——来自Google十多年的文档经验
如何写好技术文档——来自Google十多年的文档经验
523 2
如何写好技术文档——来自Google十多年的文档经验
|
JavaScript 知识图谱
修改第三方插件或库的源码经验技巧总结
修改第三方插件或库的源码经验技巧总结
修改第三方插件或库的源码经验技巧总结
|
设计模式 Java 程序员
比心源码如何开发,这个功能要会实现
说到比心源码,不如讲讲比心源码实现聊天室功能该怎么做?
比心源码如何开发,这个功能要会实现
|
程序员 测试技术
阅读优秀代码是提高开发人员修为的一种捷径
导读:原文作者Alan Skorkin是一名软件开发人员,他在博客《Why I Love Reading Other People’s Code And You Should Too》中分享对软件开发相关的心得。
1196 0
下一篇
无影云桌面