2019年四月份总结与五月份计划

Posted by AlstonWilliams on April 30, 2019

老骥伏枥,志在千里

技术

先来看四月份的计划,技术方面的:

  • 学习ES(√)
  • 研究Hadoop,HBase(√)
  • 实践Flink(×)
  • 多读一些技术文章,多看一些技术演讲(√)

学习ES的过程有点坎坷.找了《ElasticSearch: The Definitive Guide》这本大块头来读,但是发现有点困难.

要是照我以前那种读书方式,我估计读完以后,还是什么收获都没有.现在我在读这本书的时候,是先看了序言和目录,重新组织了一个架构来读的.第一阶段先搞懂有哪些操作,然后第二阶段再搞懂背后的原理,第三阶段了解一些高阶的用法,至于运维等方面,大概过一下就好了.

读了半个月左右,只把第一阶段和第二阶段的一部分搞清楚了.感觉原书其实架构还是有点混乱,所以打算边读边画思维导图.然后画了好几个早晨了,还是没画完,大概还剩三分之一.手动捂脸.

学习这些东西还是有些挑战的,毕竟之前没深入了解过,对我而言是一个比较陌生的领域,跟Flink一样,学习起来都会有点费劲.

至于第二个计划么,”研究Hadoop, HBase”这方面,做了不少,但不是通过JIRA或者Mail Listing来做的,因为翻了好几遍,没发现什么有趣的东西.于是就把自己工作过程中遇到的每个问题都记录下来,深入研究.所以倒是解决了好几个跟HBase,ZooKeeper,Spark,Spring Boot和RabbitMQ集成等方面的问题和疑问.感觉这样子蛮有意思的,很多诡异的问题,读了这些项目的源码,才会发现解决起来其实那么简单,比Google和在StackOverflow上面搜索要省事的多.

所以现在其实解决问题,以及原理性的问题,更习惯直接读源码了,而不是先从Google或者StackOverflow上面搜索.再回过头来看我们项目的源码,是那么简单与混乱.

实践Flink这一条没有做,本来说有一个功能需要用到Flink,本想跟着蹭点经验,结果这个月也没开始做这个功能.

技术文章么,也读了不少.杂七杂八的都读点.

除了上面计划中写的一些,技术方面还做了一些其它的沉淀.

一个是严格按照上个月制定的编码规范,强制自己对每一块代码做单元测试,并设计的简洁,可扩展.所以这个月我开发的两个功能,每个功能测试同学仅给我提了一个bug(有些bug根本不是我的原因,实际跟我相关的每个功能只有一个).这是一个非常显著的提高了.而这两个bug还都是因为同一个问题,即Spark中repartitionpartitionBy方法有区别,之前我总是用repartition,而我实际想要的效果是把key相同的数据聚到同一个Partition中,应当用partitionBy方法.后来读了repartition方法的源码,才明白其背后的原理.

其实以前其它项目写的源码,单元测试一般都很充分.从来没记得其他同学告诉我代码里有bug.

但是,其实在单元测试的过程中,也很疏忽.最常用的测试方法是happy-path.这是一个非常差的实践,我只考虑到了正常的输入,根本没有考虑到异常的情况.这一点以后需要改进.但是其实要考虑到各种情况,特别烦人,需要构造各种测试数据.

单元测试带来的另一个好处是编码的时候充分考虑了代码复用等问题,所以我这两个功能中,很多代码是直接可以复用的,并且非常容易扩展.下个月要做的一个功能,也可以非常简单的复用这些代码,就可以完成.

另一个是比较了主流的OLAP框架.我们现在项目中也有一个相当于是OLAP的功能,为了寻找解决方案,大体翻阅了一下《Apache Kylin权威指南》以及《Druid实时大数据分析原理与实践》这两本书,并且充分对比了这两个框架的优缺点,虽然最终发现我们的场景不能简单地通过引入一个新的框架实现,但是也为以后的技术选型做了储备.

翻阅这两本书的过程中,发现中文技术书籍和英文的差距真是大.给我的感觉是中文的一般都粒度比较粗,我指的不是英文翻译过来的,是只有中文版的书籍.这种书比较适合简单了解.而英文的书,特别是The Definitive Guide系列,往往都非常详细.不可能简单地读个两三遍就能吸收其中的精华,往往需要重新组织全书的架构,每次从不同的点切入进去读.

读这些书的时候,我也非常感谢从《如何阅读一本书》中学到的阅读技巧.这些技巧,大大提升了我的读书效率.

苹果系列的产品上,有一个非常好用的软件,叫做Notability,我往往会在网上下载电子版,然后导到这个软件来读,这样子非常适合做笔记,加深自己的印象.还可以在读完以后,翻看自己做的笔记,并做思维导图.

这个月还重新整理了一下Java微服务领域以及大数据领域比较常用的框架.因为反思下来发现,以前简单了解了一个东西,但是过两天就忘记了,是因为不明白它能解决我们的哪些痛点,以及没有跟自己了解的类似的产品做对比,为以后的技术选型做准备.所以这个月就重新整理了一下,基本上每次看到一个新的框架,都能加到对应的模块中去.

还写了不少技术博客,虽然都是一些非常具体的问题,但是积少成多,积累的越多,对开源项目的了解也就越深.

工作

这个月工作也很忙,做了很多事情.比如规范化文档,完善自动化部署等很多事情.

现在开发设计文档的编写,比以前也有了很大的进步.以前是实现功能就好了,根本不会在乎代码质量,以及性能等问题.而现在则会在开发设计阶段,充分考虑实现算法的复杂度,需要读取HBase的次数等问题,以及随着数据增长,对内存的需求是否会出现平方级甚至指数级的爆炸现象等问题.并且会充分考虑两三个解决方案,对比各个方案在上述各个方面的优缺点,最终选择一个使用资源最少,并且数据增长的影响也很小,效率也不低的方案.做到了通过复用对象,使用很少的资源,完成一个任务.并且也根据数据量计算了需要使用的资源,做到了对集群资源的有效分配,不至于只需要10GB内存的任务由于算法的问题却使用了1TB的内存.

这个月对产品的主人翁意识也增强了很多.开始考虑如何让我们的产品更加完善,如何让我们的代码更好,如何让我们的部署更加简单,如何提升性能等问题.这个转变让我非常兴奋.

工作的方式也更加合理了.现在会每天更新自己的待办事项,分成紧急&重要,紧急&不重要,不紧急&重要不紧急&不重要这四类,即番茄工作法.然后会从上往下开始处理.不过开始在什么事情重要上面浮沉了好久.我开始认为能直接产生经济效益的事情才是重要的.然后发现这样子其实没有什么事情是重要的.跟朋友聊下来,她说她觉得对她有价值的事情就是重要的.深以为然,然后进行了扩展,认为对产品,对项目有帮助的事情,就是重要的.

而有的时候,会有一些不紧急&不重要的事情等待着我做,一般都是重复性的工作.虽然这种事情一般不多,但是以后如果发现这种事情占了很多,我会主动跟同事交换工作,换进来一些有意义的事情去做.

这个月也开始更加外向了.一个人独处的时间长了,或者有些忧愁善感的时候,整个人就会有些内向.不合群.

这个月接手了电影社,以前在社团里划水的心态一去不复返.看到各位小伙伴对电影的热情那么高涨,便非常想把电影社办好.

生活

这个月的各种转变,真是让我自己又惊又喜.

还买了烤箱,学会了烤牛排,鳕鱼,鸡胸肉,叉烧肉,奥尔良鸡翅等.还学会了沙拉意面和番茄意面.买了面包丁,本想做沙拉,也没做.

还学会了做排骨汤.不过这个月吃中餐好像不多,大多数时候都是吃牛排等东西.

我闭南楼看道书,幽帘清寂在仙居

《中国经济2019》

这本书介绍了2018年中国发生的各种事情.比如国内金融圈的乱象,房地产,股市,国企改革等事情.

非常不错的一本书,看完后能把我们身边发生的一件件事情串起来,并且看到国家政策的走向.

书评在《中国经济2019》书评这儿.

《世界是红的:看懂中国经济格局的一本书》

这本书同样非常不错,配合上《中国经济2019》来看,效果更好.

这本书介绍了国际的基本形式,各个国家面临的困难,当前世界的格局,各个国家跟中国的关系,中国的发展机遇等.

而且书写的还很通俗易懂,比如写到美国和中东,俄罗斯以及中国的关系时,用斗地主来形容.美国是地主,中东和俄罗斯以及中国是农民.美国要搞倒中东和俄罗斯以及中国,现在中东倒了,俄罗斯在坚持,中国在憋大招.

从这本书中,我们更能了解很多国际事件的本质.比如为什么美国要制裁伊朗,中东为什么那么多战争,以及现在特朗普建长城的本质,英国允许华为参与其5G建设意味着什么等.

这本书,应当买来多读几遍.书是18年完成的,可以看到,现在发生的很多事情,就跟书中说的基本一模一样.

很喜欢书中的一段话,大意是,有三种人,一种是操控形势的人,一种是顺应形势的人,一种是抗拒形势的人.我们最应该做的,并且最可能做到的,是做顺应形势的人,从中收获自己的利益.

但是这本书还没来得及写书评,因为最近在写《ElasticSearch: The Definitive Guide》的思维导图,五月份会把书评补上.

《你的灯亮着吗?》

书评在《你的灯亮着吗》书评

书中很多观点醍醐灌顶.比如,我深以为然的几句话:”不要把别人的解决方案作为定义问题的方法,特别是这个解决方案是你提出来的时候”,”当你沿着定义问题的道路疲倦前行时,过一会儿就要回头看看,确认自己没有走错路”.我们在解决问题的时候有多少次都走进过这些弯路啊!

但是这本书不太好实践,至少我感觉实践起来特别困难.解决问题的时候总是没有自觉按照其中的方法来做.

《深度工作:如何有效使用每一点脑力》

这本书中介绍了如何进行深度工作.

我只是大体翻了一下,因为我自认为是能做到深度工作的,书中的方法我不需要.

其实全书的观点就是,抛弃无用社交,或者尽可能减少社交,特别是网络.而我除了工作用到的群,其它的群基本上都屏蔽了.并且手机会设置成Block模式,在锁屏状态下,不接收任何通知,包括微信消息,这样很容易进入深度工作状态.

但是这本书的评分好像蛮高的,有不少人推荐.

《浮生六记》

这本书,适合在一个清净的地方,细细品读.

这本书,是让我在心境上最靠近《瓦尔登湖》的一本书.

其实这些书,在脑海里画成画,总是那么简单:一叶扁舟,一身蓑衣,一只狗,一壶酒,一本书,足矣!

我不理解的是,微信读书上有大量的人喷这本书,说沈复的各种坏话,甚至连人家的生活也要喷.我很好奇,这些人会怎样评价李太白?

这种书,如果还是带着尘世间的喧嚣来读,是一点感受不到其中的雅致的.没有那种幽静的心境,没有那种对超脱于世外的追求,是不可能读懂作者的内心的.

《瓦尔登湖》这本书,能读懂的人太少,因为他们的内心太喧嚣.

而我,每次读《瓦尔登湖》,甚至于深夜想起书中的只言片语,都会两眼微酸,恨自己不能如梭罗一样,也去追求这种一样扁舟,一身蓑衣,一只狗,一壶酒,一本书的生活.

如果有一天,我只能留下一件能代表我的物品,我会留一本《瓦尔登湖》.

对酒当歌,人生几何

清明节,去苏州转了一圈.本想体验一下不食人间烟火的小桥流水人家,却看到一个个被严重商业化的商圈.

很失望,于是只呆了一晚上便回来了.

我不明白,为什么现在的旅游业这么千篇一律.不管去哪个地方,基本上都是一个模样.

苏州早已不是诗人笔下那怡人的乐园了!

凡事预则立,不预则废

五月份计划.

技术方面:

  • 坚持四月份的好的习惯
  • 研究Docker的kerberos问题,如果能搞定,我们的离线就可以Docker化了
  • 完成ElasticSearch第二阶段的学习
  • 学习机器学习,彻底搞懂四五个算法,找个框架玩下图片识别

生活方面:

  • 学做披萨
  • 学做慕斯蛋糕
  • 月底分析每月的消费数据,逐渐减掉一些不理性,没有意义的消费
  • 分析两三种理财产品,要分析清楚其利弊,收益等各项指标,为以后理财做准备

阅读方面:

  • 阅读《好好讲道理》
  • 阅读《思考,快与慢》
  • 阅读《欧亨利短篇小说》
  • 阅读《AI·未来》
  • 阅读《呐喊》