前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一周技术学习笔记(第69期)-为什么研究过框架和中间件源码的面试者更受欢迎

一周技术学习笔记(第69期)-为什么研究过框架和中间件源码的面试者更受欢迎

作者头像
王新栋
发布2022-12-01 14:50:11
2230
发布2022-12-01 14:50:11
举报
文章被收录于专栏:程序架道

web分布式程序中常用的“武器”可以按照接入层、逻辑层、缓存层、存储层这样的结构去罗列出来。

服务接入层:反向代理 Nginx;

业务逻辑层:web容器Tomcat;应用框架spring;orm框架mybatis;

数据缓存层:redis;消息中间件kafka;

数据存储层:MySQL;文件存储hdfs;搜索存储elasticsearch;

可不要轻视了对这些内容的深层次了解,其中的每一层都要支持水平扩展和高可用,这两点正是我们在应用程序架构中不可忽视也永远绕不过的两点。

大多数人只是会用这些“武器”,用它们来开发应用程序,让应用跑在服务器上面。

但是,却对它们的原理性内容知之甚少。而阅读这些框架和中间件的源码可以帮助我们对框架和中间件有更深刻的理解。

能理解什么呢?

分布式系统最重要的两个关注点,一个是通信,一个是协调。

只要你能够理解了分布式通信、分布式协调,基本就掌握了分布式系统的基座。当然,其它还有分布式事务、分布式锁等等,不过有了前面两种内容作为代入,其余的分布式知识内容会较为容易理解。

通信方面比较著名的开源组件有netty,分布式协调方面的组件有zookeeper,其它的许多开源中间件内部很多也都用到了这两个基础组件。

TIP:zookeeper的网络通信模块也是通过netty来实现的。

有时候即使你阅读了大量原理性的文档,但如果不看源码,可能仍然会觉得还没有理解透。另外如果你能深入源码,招聘者从侧面也能感觉到你的学习热情和探索精神。

在这个学习源码的过程中,你会接连发现其它很多的宝贝,而且这些宝贝也都是作为一个java web程序员所必备的基础技能,恰恰是这些技能够让你和其他人拉开差距。

比如:网络编程、多线程、反射、类加载技术等等,这些内容作为通用的技术会在很多框框和中间件中被用到。而你,通过学习并积累了这些通用的技术,你的能力一定会比不具备这些通用技术的人强得多。

拥有这些技能的人,当然会被招聘者会喜欢了。另外你深入的学习过这些框架和中间件的源码,招聘者也刚好能从侧面感受到你的学习热情和探索精神。

另外,再谈一下学习这些开源的框架和中间件源码的方法。

那就是“骨架学习法”。

比如我们学习作为web容器的Tomcat的时候,我们弄清楚了Tomcat的核心功能是http连接和servlet容器的处理,那么我们就沿着请求处理这条线去一步一步摸。

然后,再会发现Tomcat的骨架类,从Server开始到Service,然后处理连接的类,接着容器类。

附一张图就更能够理解这个“骨架学习法”的概念了。

图自https://time.geekbang.org/column/article/99770

这个过程中你可能会接连发现更多的“挠痒痒”的知识,比如Tomcat是如何启动和停止的,类加载器是如何设计的等等。这些知识正是一般程序员所不具备的,在弄清楚这些知识点的过程中,你可能已经树立了攻克技术知识难关的信心。

这样的勇于探索,乐于钻研,热爱学习的程序员,哪一个招聘者不爱呢。

学习参考资料:

https://time.geekbang.org/column/article/99770

----END----

这里记录,我每周碰到的,或想到的,引起触动,或感动的,事物的思考及笔记。不见得都对,但开始思考记录总是好的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序架道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档