程序员如何快速掌握一个知识点——以中间件为例

面试官:来,老铁,你来说说中间件是什么? 求职者:嗯,,额,,,中间件好像是,,,一种连接redis用的东西,,嗯……平时老用,有点说不出来,不好意思。 面试官:紧张了,老铁? 求职者:也不是,平时真的经常用,就是说不出来。 面试官:对原理理解不到位哦! 求职者:.....

神奇吧? 平时老用,关键时刻说不出来。 类似的问题还有:来和我说说jvm是什么?java是什么?内存回收是什么?微服务是什么?SDK是什么?library和framework有啥区别?组件化是什么?……

求职者:能不能不要考概念,问我做过的东西好么?崩溃!

言归正传了,我们讨论下如何快速掌握一个知识点然后马上可以和面试官拽一拽,其实就是走个流程。

第一步:找到定义

找定义最好上维基百科,大家看到维基百科的定义是:是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软体,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。

第二步:定义拆解

把定义抄到一张纸上

中间件是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软体,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。

从定义中我们看到

1) 中间件是一类软体(软体就是软件咯 software)

2) 应用软件借助中间件共享信息和资源。

3)   中间件提供系统软件和应用软件之间的连接

4) 中间件便于软件各部件之间的沟通

5) 不同的技术架构之间可以利用中间件共享信息资源

第三步:找到生活中的例子-向定义映射

互联网上有很多人讲中间件,会用生活中的例子。大家可以搜索一下。

比如某乎,以开炸鸡店为例,然后发现中间件实际上是中间代理商!

模型映射

  • 提供鸡肉的代理商是一类软件

  • 你的炸鸡店也是一类软件

  • 屠宰场是一类软件

  • 屠宰场是系统软件,炸鸡店是应用软件(映射定义)

深层映射

  • 炸鸡店(应用软件)利用提供鸡肉的代理商(中间件)共享信息和资源(例如:发布求购单)

  • 多个屠宰场(不同系统架构)利用代理商(中间件)共享信息和资源(例如:向炸鸡店供货)

 

第四步:找到真实场景

搜索百度图片,中间件。

第一张图:

第二张图:

第一张图,用户的请求到了网关后,由中间件向用户提供「QA服务」「一卡通服务」「电子商务服务」。继续往定义上套:这些服务通过中间件向网关共享信息和资源。第二张图数据库中间件向应用服务器共享是信息和资源。继续套:当「数据库中间件」背后的底层(屠宰场)变化的时候,应用服务器无感知,每次数据库中间件给应用服务器提供最好的信息和资源。

 

第五步:Coding场景

知识到上面这种程度,不能算学会,记住:“Talk is cheap , show me the code”,一定要实践。

下面找到一个阿里云请求kafka中间件sdk的示例,就知道大神门是怎么封装中间件啦。

 

第六步:用自己的语言说出来

比如:中间件和代理商有点相似,中间件一方面集中了自己背后最优质的信息和资源,一方面向自己的用户(也就是应用程序)提供这些资源,这种情况是数据库中间件;另一方面,应用程序之间也可以通过代理商共享信息和资源,这种情况是消息队列。无论哪种情况,中间件让应用程序不再需要理解底层,这样提高了整个系统的可用性和服务质量。

 

总结

我觉得大家肯定是懂了, 学习其实就是一个流程,每个知识点都走一遍,你掌握到了,自然而然也就不怕面试啦。

好啦,伙伴们有哪些不清楚的地方可以留言评论哈!需要哪些课程资料也可以留言!


 

发布了249 篇原创文章 · 获赞 216 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qfluohao/article/details/105504669