技术的进步太快,新框架总是不断涌现,如果想每个都去学会是很困难的。
学习mybqtis,他有xml和注解两种配置方式,各种配置属性层出不穷。记忆各种配置吗?不需要刻意,用的多了自然会记住。因为一个框架是有生命周期的,只学会这个框架的用法,如果框架被淘汰,就会和技术发展脱轨了。
那么应该如何学习框架呢?
- 它是做什么的:O/RM框架,处理映射与数据交互
- 怎么使用它:配置链接,定义实体,执行sql,结果处理,这些功能都是与其它orm框架一样,我们要知道它与其它框架不同的地法。学会怎么使用还是为了让代码跑起来,方便下一步学习。
- 重点看源码,跟踪代码,知道它是如何执行以上各种功能的。在这里我们要重点学习它的设计思想,这个东西才是可以复用的。知道思想以后就可以对其做优化或者定制了,也可以参与开源项目了。
- 项目实战,这个步骤的重要性只在于当下,也许是几个月,更可能是几年。因为这个框架的流行就是因为它能很好地解决目前所遇到的大部分问题。首先可以看看视频,书籍,知道别人是怎么使用它的,解决了什么样的问题,然后在自己的项目中可以模仿。这一步骤其实是对1、2步骤的增强,对框架使用上的更深入理解。只有当我们需要用到它时才有必要这样做。
对于新技术,我们应该浅尝辄止,首先快速浏览官方文档和API接口,这是在进行以上的1、2步骤。然后就可以研究源码了,当然也是要先选择重点去进行,也就是这个框架的核心。当有必要进行第4步时,我们不妨再投入更多的时间去研究它。这样我们就可以做到跟上时代的脚步了。
开源框架应该属于计算机基础技术的很高层了,它不关乎具体业务,它是全能的,生活中的需求大都可以用他实现。开源框架就好比一个ps软件,做出这个软件的人很厉害。
使用开源框架做项目应该是另一个方向的技术了,就像使用ps软件一样,它就和实际客户需求相关了,在这个地方技术能力有很大的区别。使用ps技术的能力可以通过熟练度,技巧,审美等方面去评判。
使用框架的能力拿sql语言来说,只会写crud是刚入门,这个算最低吧;能写出效率最好的sql算最中间;知道sql的执行过程,了解sql语言的设计思想算最高吧。能力最好的看一切都是那么通透,它可能会觉得当前的框架思想落后,然后自己开发了一个新的,这里的重点还是在于思想。
思想,也就是解决问题的思路,这个思路是一直在变化的。那么什么是不变的呢?软件层面,最底层的01肯定不变,从机器,到汇编,到编程,这些语言越底层,变化越少。那我们的学习重点越针对底层越好,这样的投入会有长久的回报。
这一篇主要讲了对框架的学习,下一篇应该思考一下对编程语言的学习。