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

我的建议是从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技术文章。

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

  1. 如何读懂python代码_教你如何阅读 Python 开源项目代码

    作者: Destiny 来源:https://learnku.com/articles/23010/teach-you-to-read-the-python-open-source-project-c ...

  2. 【收藏】Android开源项目和 框架

    Android四款系统架构工具      http://dev.yesky.com/281/35399281.shtml AOSP   http://source.android.com/index. ...

  3. 年度大盘点:机器学习开源项目及框架

    我们先来看看Mybridge AI 中排名靠前的顶级开源项目,再聊聊机器学习今年都有哪些发展,最后探寻下新的一年中会有哪些有值得我们期待的事情. 顶级的开源项目 BERT BERT,全称为Bidire ...

  4. 手机python代码阅读_教你阅读Python开源项目代码!

    2021年FRM主要时间节点 2020年12月 第一阶段报名时间:2020/12/01 - 2021/01/31 首次注册:$1000 USD / 非首次注册:$590 USD 2021年02月 第二 ...

  5. 在线小说阅读网站开源项目地址整合

    项目开源地址 1. https://github.com/ShanaMaid/oho-reader 小说数据接口地址: 1.http://api.zhuishushenqi.com/book/5086 ...

  6. dva开源项目_dva 框架介绍

    dva 是基于 redux 最佳实践 实现的 framework,简化使用 redux 和 redux-saga 时很多繁杂的操作 数据流向 数据的改变发生通常是通过用户交互行为或者浏览器行为(如路由 ...

  7. bootstrap 开源框架demo_5 个接私活必备的 Java 开源项目!

    公众号关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub!大家好,我是 Guide 哥,一个三观比主角还正的技术人.今天推荐几个 Jav ...

  8. 蚁群算法python_想要学习启发式算法?推荐你看看这个价值极高的开源项目

    许多学习算法的开发者在刷题或者练习的过程中都会遇到启发式算法,如果你恰好也正在学习算法,那么今天 Gitee 介绍的这款开源项目一定能对你的学习过程有所帮助,帮你更好的理解启发式算法. 启发式算法(h ...

  9. 可用于电子书阅读器的开源阅读器软件项目

    可用于电子书阅读器的开源阅读器软件项目 经过2009年电子书市场红红火火的发展,计划进入电子书市场的品牌厂商及供应链上相关的厂商大概有二三十家,相信当下很多进行MP3.MP4/5.GPS 开发的Des ...

最新文章

  1. R语言merge函数全连接dataframe数据(Full (outer) join)、merge函数进行全连接必须将参数all设置为true(all=TRUE)、默认merge函数通过公共列名合并数
  2. xshell 安装yum_本地yum源配置及Xshell连接
  3. linux系统12,Linux操作系统12则经典应用技巧
  4. 控制是否展示_现场展示板管理不在于看,而在于管!
  5. 网络交换机的分类介绍
  6. 光端机与光纤收发器的区别
  7. 某中学要对学校运动会进行计算机管理,2020年新编高职入学考试适应性试卷信息技术试卷定稿名师精品资料....
  8. 腾讯游戏:元旦假期未成年人游戏限玩1小时/日
  9. Spring for Apache Hadoop 1.0发布
  10. 冲刺二阶段-个人总结04
  11. ios微信上无法自动播放音频的情况
  12. mysql安装显示挂起_安装SQL时提示有挂起的文件操作无法安装的解决
  13. 【组成原理-处理器】数据通路
  14. 雷达作用距离、干扰距离、侦查距离
  15. Error: pngquant failed to build, make sure that libpng-dev is installed
  16. Pytorch学习率调整策略
  17. 截图工具当前未在计算机上运行 请重启_一个顶十个的工具箱软件,这才是真正的装机必备。...
  18. python高端实现各国GDP动态轮换图
  19. 抖音终于活成了自己讨厌的样子
  20. 【Linux】Linux的挂载原理 |MOUNT|挂载NAS|自动挂载

热门文章

  1. 文献学习(part80-B)--Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?
  2. JupyterNotebook随记(part2)--更改JupyterNotebook主题
  3. 阿里大数据分析与应用(part4)--一站式大数据平台DataWorks
  4. 查看dataloader的大小_一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
  5. python去重复记录_Python列表去重复项的N种方法(实例代码)
  6. ng-template 使用过程中默认参数不能按照期望工作的问题单步调试
  7. 通过在操作系统中实际操作,学习和理解 Unicode 编码相关知识
  8. css里的positioning scheme, 即position property
  9. SAP Spartacus能够使用的theme
  10. 在SAP HANA Express Edition里进行文本分析