年底了,年初定的目标没实现几个。今年一整年总体上都比较划水。学习热情减了不少,换工作前后都经历了低谷期。还好有前导师的游夏和快手的明鑫不断鼓励我,开始慢慢适应了新公司的环境、氛围。

刚入公司发现组内的同事无论履历或者经验都比我丰富很多。美团大佬、网易大牛,当时倍感压力,怕组里拖后腿。相处了一段时间后,发现大家都不错。幸运的是,呆过的公司里每个导师都很不错。在现在导师的code review和指导下,自己输出的代码质量感觉比之前好了一些。

技术

在这一年里,主动学习的技术很少。都是通过每周组内分享才去大致dump一下源码看了一下,datax、canal、mycat、transmittable-thread-local等等。业务时间看了一下tomcat。

随着经常和前导师聊天,慢慢意识到自己有些路子走错了,有些方法用错了。其实学技术不在多,在于精。并不是看了很多源码就觉得自己能力提升。实际上并不是,粗略的看了每个源码不如精读一两个源码。其实很多东西都是想通的。

tomcat为了各自处理不阻塞,提高整体并发和吞吐。将监听网络连接、网络连接读写、请求处理划分成了三个不同的线程池。至于监听网络连接可以使用非阻塞式的nio不断select也可以使用也可以直接进行阻塞,反正都是epoll操作。当连接建立后,就由其中一个线程建立起channel扔到负责网络读写的线程池中。线程间通过内存队列交互。网络读写完成后,第二个线程池职责也完成了,就扔到第三个业务线程池里负责具体的处理。各自线程处理各自的事,而不由于职责交互而导致线程阻塞进而导致资源没法充分利用。类比到netty、mina也是类似的、mycat网络部分代码也是差不多。datax基于插件扩展机制,利用多个线程并行同步数据也是基于内存队列做的线程交互,基于copyonwrite做的线程安全性保证。技术太多太多想通的。

慢慢想清楚几件事,技术不用涉及的非常多。围绕工作中有用到的技术去学习对自己的提升会比较大(但目前并没有这样做[Emm]),学习工作以外的技术,只能实践个demo,最多看看部分源码,但是技术Or框架本身的某些精华或者问题不经过工程实践或者生产考验是完全感知不到的。所以回头看,学很多工作中用不到的东西是一种非常错误的学习方式。

应该是在遇到一个新技术后,结合之前学的技术想想如果自己去实现这个新技术自己会怎么做,然后再去对比查看新技术的源码看看是否是自己想的那样,如果不是,那么新技术的实现方式将给自己带来另外的收获。如果是,就看看这个这个新技术的实现上是否有自己没有想到的细节等等。感觉这种方式学习才是比较有效的。比如,自己看了sumk的ioc部分,就猜想spring的是不是也这样实现,但后面发现spring的ioc实现比sumk复杂的多(emm…还没看完)

在技术上,今年先定了几个目标,精读dubbo、netty、skywalking、apollo(公司一位大佬经常说这个设计的很好)、elasticsearch。前几个目标必须完成,没得商量,elasticsearch有点难先放一放

sumk长期追 💪

待提升的技术软实力

  • 所有的业务到功能实现都需要有这几步
    • 需求转化(业务需求-用户需求-功能需求的转化过程);
    • 技术选型(大概那些技术能够实现这个功能);
    • 功能实现(依托技术实现业务功能);
    • 底层技术研究;
  • 文档功底,需求文档,解决方案,概要设计,详细设计,ppt能力

运动

体检后发现自己又胖了不少…现在有事没事都去跑跑步,游泳基本没去了。这些运动习惯还是要持续下去,至少把体重先减下来…

读书

趁着双11又买了3本,加上刚找同事购的共4本。到现在竟然1本都没看完…今年先把这4本消化了,基础还是不能丢的,基本功还不够扎实….

学习小组

在工作外,去年年末加了一个学习小组,从加入至今,小组内前前后后的共分享了二十多次(当然自己也分享了一次,但是讲的不好),小组里还是有很多大厂的大佬的,技术能力的相同强,新的一年里多向他们学习学习,希望早日成为在公司里能独当一面的人,给组长多减轻一些负担。

最后修改日期: 2021年7月19日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。