这里说的意思是,一个框架,作为学习者,学习设计框架中的知识,可能包含以下内容。
一 框架的使用。
好的框架肯定是容易使用的,想学习一个框架必须学会使用框架,使用框架包括框架的所有功能和框架的优化。很多时候,一个知识点,你没必要会用,但是你必须知道他存在,等你用的时候再去学习怎么使用也是来的急的。框架的功能点也是类似。无论是你设计一个框架,或者用一个框架,知道一个“功能点”的存在,意义很大。
二 框架的实现原理
这里的框架的实现原理,指的是功能点的原理。比如说,spring的aop怎么实现,往深入学习,你会学习到动态代理,动态代理有很多种,区别和联系是什么?动态代理的原理又是什么?面试中经常问的,就是框架的原理。包括jdk一些基础类的实现原理也是,比如说hashmap的实现原理是什么?等等,都是框架学习的核心。
三 框架的设计
有一些知识,是通过努力学习可以得到的。比如说,学习开车,学习打篮球都是。但是设计上的东西有时候未必如此,比如说写诗,让你去学习写诗,可能并不容易写出来。这类设计上的学习,往往伴随着大量的思考。框架设计也是如此。框架设计,伴随着功能的拆分,接口的定义,类的功能和类的组织。方法的提交。所以,学习框架,也要更多的学习和思考,框架如何定义类,如何组织类,如何组织功能,如何扩展等等。以下几点很重要:1,框架入口,框架的生命周期,框架的销毁。2 流程:流程包括启动流程和调用流程。3 模块划分,组件划分,组件之间的衔接。4 接口定义,接口的实现和抽象类的实现。 5 实现类的初始化。
四 框架和中间件学习笔记
如果我学习框架或者中间件,我可能会从以下角度出发去学习,也就是我可能会分为多个目录学习。
1 实战 ,在实战中又分为基础实战和高级实战。
2 业务流程,业务流程可能分为启动流程和调用流程。这里也可能会牵扯到线程模型的问题。因为在中间件中,经常是多线程运行的。
3 组件划分
4 代码技巧和技术原理,比如说jdk动态代理,javassis,spi就是技术原理性的东西。就好比以前学习一篇课文,有一些好的词语可能需要摘录出来
5 分层,中间件和框架一般做的好的会分为很多层,从代码中提炼层也很重要。
6 问答,比如说一些技术实现原理,细节,都可以在这个文档中记录一下。
五 框架解决了什么问题
框架解决了什么问题,框架是怎么解决这些问题的,这个也是比较核心的。举个例子,我们知道 微服务中有一个比较核心的技术点是负载均衡,很多人其实并不懂dubbo,但是懂nginx,懂python的技术,这个时候,可能会问你dubbo如何实现负载均衡,dubbo如何实现集群容错。而这些概念,其实和同类中间件是对等的,也就是我有这功能,你也是应该有的。
网友评论