最近这四个月

Catalogue
  1. 1. 读过的一些书
    1. 1.1. 《精通JavaScript(第2版)》
    2. 1.2. 《代码的未来》
    3. 1.3. 《只是为了好玩 : Linux之父林纳斯自传》
    4. 1.4. 《图解HTTP》
    5. 1.5. 《2016语录》
    6. 1.6. 《人类简史》
    7. 1.7. 其他
  2. 2. 学到的新技术
    1. 2.1. Vue
    2. 2.2. Webpack 打包结果分析工具
    3. 2.3. 使用 localStorage 进行离线缓存
    4. 2.4. 学到了一些新的面试题
    5. 2.5. Node.js 的调试技巧
    6. 2.6. Eruda.js
    7. 2.7. BigInt
  3. 3. 关于写作
  4. 4. 关于足球
  5. 5. 一些思考
    1. 5.1. 关于管理
    2. 5.2. 没有银弹
    3. 5.3. 不要忘记搜索引擎
    4. 5.4. 真理越辩越明
    5. 5.5. 关于房子与比特币
    6. 5.6. 俩人合租

2018 年过去了三分之二,自 4 月底来到美团出行事业部,到现在大约 4 个月。简单写写读过的书,学到的新技术,以及思考的事情。

读过的一些书

从 4 月至今,陆陆续续读了些书,技术类人文类都有。收获或大或小,在此列举一下~~
另外,最近也有点新感触,即如果只是读书,带来的技术实力提升虽然扎实,但是有点慢,效果也差一些,可以用“眼高手低”来形容。今后得多用一些别的方式,看源码、写非业务类代码等。

《精通JavaScript(第2版)》

这本书是 jQuery 之父 John Resig 与其他几个人合作所著。对我而言,已经没有什么亮点,温故而知新吧。的确不如《JavaScript忍者秘籍》好。

《代码的未来》

早在研究生阶段,就大略看了一下这本书中关于 JavaScript 的部分。今年把整本书能看懂的都看了一遍。比较有意思的是松本行弘对 CoffeeScript 的预言彻底失败。内存管理(各种垃圾回收机制)、闭包、并行计算、分布式计算、C10K、进程间通信也讲得很有意思。

TCP 通信实际上也是进程间通信的一种了,虽然是针对不同计算机上面的进程。

UNIX 管道是利用多核优势的一个好模型。

并行处理的性能提升上限由阿姆达尔定律给出。大概就是说,并行计算最终会因为总有一些计算是无法并行而达到性能极限。这就像生孩子一样,一个女人生一个孩子需要10个月,但并不意味着 10 个女人就可以在 1 个月内生完孩子。

《只是为了好玩 : Linux之父林纳斯自传》

豆瓣评论:Linus文笔普通,博客式自传罢了。译者的文字功底倒是不错。主角是林纳斯,地球上最牛逼的程序员~推荐所有的程序员都看一下~~

可以了解到 Linux 的诞生详情,林纳斯与 Minix 的恩恩怨怨,林纳斯与乔布斯的分歧、与微软的对峙。

《图解HTTP》

去年以来,自己对 HTTP 的基础知识已经掌握得不错了。读这本书的主要收获,大概就下面这几点:

  • HTTPS,大概了解了 HTTPS 的过程、非对称加密的思路。需要实践下。以及,以后有机会要再看看 HTTPS 传输过程分析。
  • HTTP 报文的结构,首部也是分类的,有只属于请求的首部,有只属于响应的首部,有请求体用的首部,还有的是通用首部。

《2016语录》

从 2010 年开始,每年都读的。2016年的那本,忙忘了。现在再读,有些事情都还依稀记得。特朗普的个人色彩在那时候就被抨击,而很多事情似乎那时候都预见到了。

读得很快,这本书最好的部分,其实还是国内的文化、社会、文艺相关的部分。快餐式阅读,花费总时间也不多。聊胜于无吧。

《人类简史》

这是今年读过的最好的人文类书籍。有点像看《这个男人来自地球》《彗星来的那一夜》这一类的电影带来的感觉。书中的许多内容与观点,貌似引发了不少的争议。而对于这本书的评价,更是贬褒不一。

就我个人而言,很喜欢。平时毕竟没有什么精力读专业的史书,《人类简史》则充当了普及历史知识的角色,而且是已一种很轻松、有趣的形式。

这本书提出了很多富有想象力的观点。例如,人类的未来很可能是全球统一的一个政体;人类是造成地球物种灭绝最多的因素;采摘生活其实也能够养活不少人,而且每个人都还挺轻松的,然而农业社会、工业社会虽然社会财富增加了,但是农民、工人都变累了,原因其实在于社会财富的分布变得严重不均衡了,统治阶层、精英阶层占据了更多的财富;佛教本质更像是心理学上的修炼,烧香、拜佛、斋戒等等,其实都只是为了让俗人便于理解而具体化的例子而已,只是表象。

其他

在读的还有下面这些:

  • 《网络是怎样连接的》,关注传输层、网络层等内容。可以说是简化版的《计算机网络》。
  • 《鸟哥的Linux私房菜》,一直在翻,最近懒了就翻得少了

读书这件事,自己开心就好。不必在意其他人怎么想。很多人只是抱着看小马过河的心态,冷嘲热讽几句。而问他们究竟读没读过这书,却又支支吾吾,原来根本就没有读过。想要批判一件事物,首先,要了解它。

学到的新技术

Vue

出行事业部主要使用 Vue 进行开发。组件化思路与 React 大同小异。数据的响应式比 React 的确方便不少。

之前写 React,现在换到 Vue 生态,阻碍非常少。

VSCode 在处理 Vue 组件文件的时候的确要比 Sublime 好一些。

Webpack 打包结果分析工具

之前一直使用 Webpack Visualizer 插件,现在了解了其他更好的工具:Webpack Bundle Analyzer.

使用 localStorage 进行离线缓存

前端资源的 md5,意味着资源可以根据内容进行版本控制。可以使用 JS 实现一个完全的 JS 加载器,并且利用 localStorage(以下简称 LS) 进行离线缓存。

HTML -> 解析本页面所需的 JS 路径及版本号 -> 读取 LS 缓存 -> 判断是使用缓存还是重新获取(要考虑加载顺序、依赖关系)

LS 缓存对性能的提升是非常明显的。

学到了一些新的面试题

主要是与 JavaScript 相关的。函数、任务队列的设计。

Node.js 的调试技巧

基于 Node 的 Inspect 协议,配合 Chrome 浏览器的 DevTools,可以非常方便地调试 Node 里运行的 JavaScript 代码。

Eruda.js

学习了 Eruda.js 的源码,并且向其贡献了一个小功能:NetWork 面板支持查看通过 XMLHttpRequest.prototype.setRequestHeader 设置的 HTTP 首部。

Eruda.js 是通过重写各种对象、函数的原型来实现网页调试的。

BigInt

了解了 BigInt 草案。写了个博文:http://borninsummer.com/2018/06/20/bigint-is-coming/。

关于写作

跟出版社约的书稿,目前接近 13 万字了。还是很多时候懒,以及忙,导致的进度缓慢。感觉很对不起编辑。

博客更新,貌似也……还正常吧。

今年开了个公众号,写了几篇。仅仅能够做到月更。

关于足球

今年踢的比赛比去年多,主要是 11 人制为主。

清超联赛打了 8 场。宇宙中心队还是经常缺人。自己踢得……凑合吧。

小葫芦队,队友实力平均比宇宙中心弱一些。练了一下自己的防守,以及保持一下比赛状态。也算不错。不过后来队长离京,队伍就解散了。

美团足球队,回归美团后,踢了很多场比赛。自己感觉提升比较大。但是依然有更大的提升空间。

谢的队。这个队是自己偶尔去踢。队费比较贵。。。目前没输过。庆哥也在这个队。希望能够好好在这里锻炼一下意识、传接球跑完、高压下的处理球。

野球。跟金松、新云等老朋友踢了很多次野球,节奏快,强度大,也有很好的锻炼。只是后来懒了,也渐渐去得少了。

一些思考

关于管理

学生时代,国内一直在声称与西方发达国家差距,强调管理体系、制度、理念、文化方面的不足。但是现在,我感受到了许多改变。

在学校里,即便在清华,管理理念虽然已经比大多数国内学校好,但还是不够开放与民主。本科时代可能还好,研究生阶段就要开始变惨了。如果跟了不好的老板(导师),那可要倒霉了,这种导师通常会采取封建时代那种管理制度。

毕业后去南京一家国企待了一年半,再之后在互联网公司待了两年半。二者管理方面的差异也是非常大。国企里,你基本上见不到领导,一旦见到领导,要快速反应过来,打招呼喊领导好。互联网公司里,几乎不存在“领导”这个词,可以叫老大,某某哥,或者直呼其名,而且他们一般离你的工位不远;大家都是很扁平化的关系,层级并不是那么明显。

没有在外企呆过,但是猜测美团这样的互联网公司的管理理念,应该是比较接近国外的了吧。

对于技术管理者,我有了一个新的认识,这个岗位的最重要意义在于,首先自己足够技术牛逼,然后通过一些团队管理技巧,使得大家都尽可能变得跟自己一样厉害(这个目标永远都到不了,只能无限逼近)。

没有银弹

当前方案是否为最佳方案?

如果说当前方案比之前方案明显好太多,那应该不用太犹豫,执行就好。除非也有明显更好的方案。

让人纠结的,往往在于技术方案 A 与技术方案 B 看起来差不多的情况。这种时候,花费过多时间也没有太多意义,因为很可能要解决的问题本身就是个不痛不痒的问题。没有什么法则说明哪种一定更好。如果有人要强调某个方案更好,那很可能是个人喜好因素在起作用。

有时候,“没有银弹”也会成为程序员变懒的原因。他们会说,“没有银弹,现在的方案也挺好”。这个可能值得警惕一下。

不要忘记搜索引擎

经验增长,阅历变多,自然很好。但是容易陷入一个误区,即越来越多地喜欢从以往经验里寻找答案、原因、解释、解决方案。

技术在不断变化,即便碰到一个老问题,也最好能够借助搜索引擎,再次更新一下自己的经验库。这个问题既然依然在现实中存在,那相应的解决方案很可能也发生了变化。

例如移动浏览器 300ms 点击延时问题,几年前还是问题,我们可能很快想到借助于 fastclick.js 这样的库来解决问题。但是如果稍微花点时间去搜索,会发现这个问题可能不必再关注了。因为很多移动浏览器已经取消了双击放大功能。

真理越辩越明

与上一点相关的,就是“真理越辩越明”。先入为主、经验之谈,有时候会很大地阻碍一个人认知水平的提升。

多与人讨论、辩论,发现意见差异,在其中寻找隐藏在深层的真相。

但要注意讨论时的气氛~~ 这一点并不好把控,一不小心就会引发人与人之间的矛盾。

关于房子与比特币

国内虽然已经说了房子不是炒的是住的,但是实际上,各种高层透露出来的信息表明,房产已经严重地跟金融货币体系挂钩了。房子如今更像是投资品。

自己反正是买不起房。就算以后买得起了,也要谨慎。

俩人合租

女友终于毕业了,来北京工作。工作内容是她喜欢的,挺开心的。我也挺开心的。

俩人合住比一个人有意思多了。有人说说话,嘿嘿。

然后做饭的次数稍微多了一些。。。偏荤。

Share