作家
登录

为什么我们要阅读源码?

作者: 来源: 2017-04-06 11:42:08 阅读 我要评论

累积素材是基本,被启发出来的思路将这些素材串成线,这就形成了常识(knowledge)。书读得越多,越勤于思虑的人,常识也就越丰富。而常识的融合贯通,最终形成读书的第三大年夜功用:经由过程懂得,接收别人的思惟,去芜存菁,最终形成本身的思惟,或者说聪明(wisdom)。

我的文┞仿除几篇告白外,全部是原创,而原创中 99% 是我本身原创。这些原创完完全满是我「原创」么?我在 『若何选择工作』一文中借用了『黑客与画家』的思惟:可测量性和可放大年夜性。我赞成这个思惟,同时将其融入了我本身的思虑;在『法度榜样员和拉便条』一文,我其实是写了个现代版的伙头解牛;『代码重构之道』我借用了松本行弘,Martin Fowler,荀子等人的思惟,形成了我本身的看法。当然,我书照样读得太少,所以,真正有价值的思惟还贫瘠得很。

同样的,浏览名家的优良的代码最终的归宿是形成你本身写代码的思路。我客岁撰写的一个基于 node restify 的 API framework(见:再谈 API 的撰写 - 总览 系列),固然有很多不完美的处所,但内核照样相当稳定,一年多来只是些许小修小补。撰写它的过程,是我对之前所读各类项目标一个融合贯通:为了肯定我是否该基于 restify,我通读了它的代码(没若干),融合进了 hapi 和 loopback 的一些思路,供给了一套类似于 rails 的 CLI,再加上早年在 parser 上的一点经验,把 framework 逻辑上搀扶了:compile time(严格讲 nodejs 没有 compile time,但 configuration 的处理,route / middleware / model / task 对应的内部数据构造的生成,算进了 compile time 中),load time 和 run time,用前两个阶段的「低效」换取后一个阶段的高效(其实也类比了我的老本行,路由器/防火墙上的 control plane / data plane,first path / fast path 的设计)。如不雅没有之前各类源码浏览的累积,我很难做出如许的设计。

同样的,浏览 elixir unicode 实现的过程在两年前激发我做了一个应用同样思路的汉字的 slugify,或者汉字转拼音(解决多音字问题)的暴力办法(see github: chinese_translation),这一思路在本年事首?年代进一步发扬光大年夜成了我们如今在 Tubi TV 应用的 policy engine 和 content engine,为每日弗成胜数的内容请求保驾护航。我们应用了 code as cache 的办法,把数据库里的内容的不必在运行时髦的 transformation 都在 compile time 完成,然后在 run time 结合记叙文三要素,获得最终的结不雅。以前我们体系中我们最慢的 API,采取新的 engine,如今快了至少数十倍 —— 尤其是在低并发下就惨不忍睹的 95 percentile response time(高并发都无法完成测试),如今在高并发,没有任何 failure 的情况下,99 percentile response time 都能控制在 500ms 阁下。

所以你说,浏览优良的,有启发性的源代码,多重要?

解决了 why 的问题,过两天我们讲讲 how。

【编辑推荐】

  1. vue2.0源码分析之懂得响应式架构
  2. 2016年谷歌开源了这些超酷的开源项目
  3. 大年夜Chrome源码看浏览器若何构建DOM树
  4. JVM源码分析之Java对象的创建过程
  5. 大年夜Chrome源码看浏览器若何layout构造
【义务编辑:51CTO_OS TEL:(010)68476606】

  推荐阅读

  AI席卷全球各方加码布局 应用领域比拼升级

腾讯日前购入特斯拉5%股权的消息引爆业界,两边将来在人工智能(AI)范畴的合作激发存眷。其实,2016年人工智能家当就已站在全球注目标风口,多达20家人工智能公司被微软、特斯拉、谷歌母公>>>详细阅读


本文标题:为什么我们要阅读源码?

地址:http://www.17bianji.com/lsqh/34590.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)