为了账号安全,请及时绑定邮箱和手机立即绑定

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

2020.04.09 12:49 3037浏览

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


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

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

v2-e186682c2f82edfffbf93d0c9da2605e_b.pn

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


第一步:找到定义

v2-b720e8d6dccd6a339227d46d722567a5_b.pn

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

v2-755f3cfdfaef4c8c53a3f904ff527f5d_b.pn


第二步:定义拆解

把定义抄到一张纸上

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

从定义中我们看到

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

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

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

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

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


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

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

v2-878a8c97f2a1c617ec3bc04d14641bfa_b.pn

v2-0f8cbc99cdeea4131d2d309194f9255e_b.pn

点进去看到 @Gocy 大佬的回答,开炸鸡店的例子,然后发现中间件实际上是中间代理商。

模型映射

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

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

  • 屠宰场是一类软件

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

深层映射

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

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

第四步:找到真实场景

搜索百度图片,中间件。

v2-428e32ebe23c246bdb898a8ae9653041_b.pn


第一张图:

v2-29ded1721fb885493175a667ce73e477_b.pn

第二张图:

v2-76a3400a92423eca85800aeaad1e6b74_b.pn

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


第五部:Coding场景

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

v2-6e768cbe753f5e10e0fbc14f500d6a45_b.pn

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

v2-76ca1429d66ab4e5be2d821aa3b70cdd_b.pn


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

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

总结

怎么样?懂么嘛? 学习就是一个流程,每个知识点都走一遍,你就不怕面试啦。


点击查看更多内容
10人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消