【原】读博有感(javadoop)

【引言】标题的读博可不是博士的博,而是博客的博;最近关注到一位博主(博客地址: https://javadoop.com/ ),虽不知这位博主姓甚名谁,但从他分享的博文里,颇有些领悟和收获,所以特地写这么一篇感言,谈谈当下的一些想法吧…


  相信大多数像我这个年岁的同学(渐渐被称为老年人的80后),小的时候都有收集的经历吧!
  记得上小学的时候,那会儿普遍的家庭条件都不怎么样,那还是5分钱就能买一袋小零食的年代,周围能见到最好的方便面也不过几毛钱一包。虽然那个年代没有电脑,没有手机,但我觉得那时的单纯而美好的快乐,可能是现在正在逐渐流失的珍品了。
  扯得有点远了,回归正题,那时我们的娱乐活动是什么?女生大多数是跳皮筋(小皮球,香蕉梨,马兰开花二十一,二八二五六,二八二五七,二八二九三十一……)如今听起来依旧是美好的味道,男生的活动就比较多了,斗鸡啊,跳房啊,警察抓小偷啊,打纸帕啊,弹珠啊等等等等。当然那时还有一个必不可少的活动,集各种卡,其实说到收集,集邮是比较多听到的,但是成本太高,像我们穷乡僻壤的小地方根本没有这个可能,所以我们集各种卡(大多数是方便面里面送的),比如108将,小浣熊卡,西游记;后来再大一点开始出各种当红电视剧的卡片(这一类的巅峰应该就是还珠格格和神雕侠侣了)。
  言归正传,最近读了这位博主的几篇关于Java并发相关的源码解读文章,虽然前前后后在别的博客或者论坛也有看过零零散散的一些这方面的介绍,但始终是零散的一些知识,这位博主的解读确给人耳目一新的感觉,虽然文章都比较长,但是耐下性子看下去,你会发现别有洞天,内部逻辑的衔接很流畅,该解释的点也基本做到了滴水不漏,当然JUC这块儿的代码本身就很玄妙,可能初看这方面的源码解析有些费劲,但耐心的前后对比多看几遍,都会有意想不到的收获。
  所以回归到自己身上,能从别人的长处有所借鉴,想也是不错的收获;最近趁着工作交接的这段时间,也整理了一些东西,在职场摸爬滚打也有些年头了,很多时候自己都只是盲目的干着重复的劳动,工作于我们来说虽是分内之事,但在工作中如没有任何的成长,对自己也是一种耽误。
  通过这段时间的整理,涉及到细节才发现自己掌握的太肤浅,比如集合的扩容,不同的集合有什么不同,不同的线程安全方式有什么区别,当然其实很多人会认为说这些知识实际开发中未必用得到,但是实际上我们很多开发人员的工作心态是把东西做出来,而不是做好;能用和好用之间可能差的就不是一星半点了。可能在java开发环境磨炼一年半载,大多数人都能达到做的东西能用这个级别(当然也有少数例外),但是要达到做的东西好用,除了自身对技术细节的钻研,更多的还要设计需求以外(也就是架构师的职责之一:更多的关注非需求功能点)。
  最近正好这段时间也参加过几场面试,到了这个阶段你会发现,人家根本不会问你ArrayList和LinkedList哪个检索快,哪个插入快;更多的是问到一些更底层或者更高层面的东西,比如线程池是如何实现的?比如Redis集群扩容的方案?HBase的Rowkey设计原则?等等等等……
  所以,如果在技术之路上还有更高的追求,还是要多出去看看,眼界这东西,真的要有。
  谈回自己的技术整理思路,其实前面也有一些考量,如今思路可能会更加的清晰一些;技术资料的整理,我个人的理解就是一个从立到废,然后再立的一个过程;第一遍立是为了让自己沉入进去,先掌握这个技术,而后废则是在阅尽千帆后针对自己先前所立的不足之处进行废止,及时的纠正自己的错误比学习新的知识意义更重大,而后的立便是站到另一个高度从整体上来审视自己对这个技术的掌握程度。
  正如我们经常提到的代码需要重构一样,知识体系也是需要不断的去重构更新的,知识的积累是从一个繁到简的过程,其实我们的老祖先早就有这个觉悟了,正所谓大道至简,现在随便翻翻一些讲架构讲优化的书,其主题总是离不开简这个字,不写重复的代码,不写臃肿的方法,是简;降低模块的耦合,比如如今大热的微服务,也是简;所以最终业务可以很复杂,但是结构必须要简,炫技在我们这个领域,没有太大的必要。
  所以,借用一个看起来挺大俗的综艺语结束这篇文章,Keep Running!技术之路是一条常学常新的路,唯有保持阿甘的那种持之以恒的奔跑毅力,才能踏入更高的境界。

------2019 Lin.C ------