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

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

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

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

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

我的两个方法:

1. 边看书边看源代码。

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

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

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

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

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

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

为什么要写出来呢?

在我的微信公众号文章<u style="box-sizing: inherit; text-decoration: none; border-bottom: 1px solid rgba(68, 68, 68, 0.72);">SAP成都研究院35岁以上的开发人员都去哪儿了?</u>里提到,科学研究表明,在实战中学习,教别人,是最有效的学习方法。

image

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

image

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏idealclover的填坑日常

从零开始的 ubuntu 18.04 重装之路

接下来的日子要开一个大坑 还不是自己给自己开的大坑 因为自己的windows10+ubuntu18.04系统出了一些故障,所以被迫重新安装了ubuntu 18....

89120
来自专栏程序人生 阅读快乐

编译原理

《编译原理》作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界著名的计算机 科学家,他们在计算机科学理论、数据库等很多领...

14020
来自专栏斑斓

教会你何时定义领域服务

若遵循基于面向对象设计范式的领域驱动设计,并用以应对纷繁复杂的业务逻辑,则强调领域模型的充血设计模型已成为社区不争事实。我将Eric提及的战术设计要素如Enti...

11830
来自专栏微信公众号:Java团长

如何准备Java初级和高级的技术面试

本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不...

13530
来自专栏好好学java的技术栈

面试经验贴:哪怕事先只准备1小时,成功概率也能大大提升

13470
来自专栏程序员宝库

【收藏】如何准备Java初级和高级的技术面试

本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不...

10320
来自专栏Netkiller

竞猜活动区块链方案探索

中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com>

1.2K230
来自专栏程序人生

如何阅读一份代码?

上文谈到了像读书一样阅读源码的重要性,今天谈谈如何阅读一份代码。我所谓的一份代码,其范围可能从几千行到数万行,有时甚至可多达数十万行。这些代码作为一个有机体,共...

39770
来自专栏即时通讯技术

微信手机端的本地数据全文检索优化之路

基于本地数据的全文搜索(Full-Text-Search,FTS)在移动应用上扮演着重要的角色。与基于服务端提供的搜索服务不同,移动端受硬件条件限制,尤其在数据...

48020
来自专栏SpringBoot

spring cloud和dubbo的区别

最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论 微服务架构 。近期也看到各大技术社区开始组织一些沙龙和论坛来分享spring Clo...

32630

扫码关注云+社区

领取腾讯云代金券