摘要:作者韩子迟不知不觉间,源码解读系列进入了真正的尾声,也请允许我最后一次下项目的原始地址这半年以来,花费了大量的业余时间,共计写了篇随笔包括此文,也给的源码加了差不多行注释,对于当初说的要做史上最详细的源码剖析,至此我也觉得问心无愧。
作者:韩子迟
What?不知不觉间,「Underscore 源码解读系列」进入了真正的尾声,也请允许我最后一次 po 下项目的原始地址 https://github.com/hanzichi/u...
这半年以来,花费了大量的业余时间,共计写了 25 篇随笔(包括此文),也给 underscore-1.8.3 的源码加了差不多 1500 行 注释,对于当初说的要做「史上最详细的 underscore 源码剖析」,至此我也觉得问心无愧。
本文不想说我在这个过程中学到了什么,学到的东西,能写的都在前面 24 篇随笔中了,只能意会的我也说不出来(感触最深的是闭包的强大)。本文是一篇「水文」,不谈技术,抛开代码,听楼主扯扯淡。
Why Underscore?早期的几篇随笔都有「Why Underscore」这一节:
阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多。为什么是 Underscore?最主要的原因是 Underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者。从中,你不仅可以学到用 void 0 代替 undefined 避免 undefined 被重写等一些小技巧 ,也可以学到变量类型判断、函数节流&函数去抖等常用的方法,还可以学到很多浏览器兼容的 hack,更可以学到作者的整体设计思路以及 API 设计的原理。
其实这并不是直接原因,「导火索」是当时(三月末)学习函数节流和函数去抖的时候,发现很多文章混淆了这两个概念,了解到 Underscore 封装了这两个函数,但是一用却发现了它的 BUG!(详见 一次发现underscore源码bug的经历以及对学术界『拿来主义』的思考 一文)
Underscore 早些年就接触过,对其的了解也仅限于「一个轻巧的工具库」,会不会还有其他的 BUG?同时源码这么短(之前想过看 jQuery,被接近 1w 行吓回来了),耦合度低(可以一个个方法分开看),也进一步激发了通篇解读的兴趣,想着这一路下来肯定能学到不少东西。好东西要与大家分享,同时确定了写系列文章的 idea。
Where to write?哪里写?想都没想就确定了主战场 GitHub。之前我是不玩 GitHub 的,现在已经离不开了,每天不刷个几十次都手痒。为什么确定在 GitHub?理由很简单,GitHub 有逼格啊(毕竟是全球最大的同性交友社区)。
当然,酒香也怕巷子深,写完了没人看无疑是对自信心的极大打击,同时也需要大家来提出宝贵的意见。为此,几乎每一篇完成后,都会在以下渠道分享:
开发者头条
掘金
segmentfault 头条
极客头条
干货集中营
其实主要就是前三个,后面两个用了一段时间感觉不大好就不用了。极客头条个人感觉分类有点乱,同时因为是 CSDN 旗下的,个人对 CSDN 没太多好感;干货集中营的话,维护者是「daimajia」大大,感觉移动开发者关注的会比较多。
分享的话,如果脸皮厚的话,也可以在微博艾特一些圈内大大们(楼主脸皮比较薄 ...)。
当然,我不仅在 GitHub 的 issue 里写,还在以下一些渠道写:
博客园
segmentfault
伯乐在线
简书
简书的话,后面断断续续不更了,个人喜欢专门的 IT 类博客,而且觉得简书的 Markdown 渲染有问题,为什么都说它的 Markdown 体验好 ... sf 和 伯乐在线 的话,阅读量还是可以的,只是它们不是专门做博客系统的,基础的分类归档功能都没有(或许是我没找到?),以后应该还是会以博客园为主要战场。
Then?underscore.js 的源码解读画上了句号,接下去干嘛?其实楼主对以下几个库也挺感兴趣的。
lodash(Underscore 的完美替代品,据说效率比 Underscore 高好多)
underscore.string(Underscore.js 没有为 String 扩展方法)
underscore-contrib(Underscore-contrib 是一个 Underscore 的代码贡献库)
Underscore.php / API
underscore.php(Underscore.js 官网 推荐)
End那就这样吧,749 Star / 140 Watch / 153 Fork 算是对我的肯定和鼓励吧 ^_^
也许我韩子迟还会回来的!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/88001.html
摘要:支持形式的调用这其实是非常经典的无构造,其实就是一个构造函数,的结果就是一个对象实例,该实例有个属性,属性值是。 前言 终于,楼主的「Underscore 源码解读系列」underscore-analysis 即将进入尾声,关注下 timeline 会发现楼主最近加快了解读速度。十一月,多事之秋,最近好多事情搞的楼主心力憔悴,身心俱疲,也想尽快把这个系列完结掉,也好了却一件心事。 本文...
摘要:年,阿里巴巴在上开源,许多开发者及公司都青睐于使用来解决服务化问题。首先阿里巴巴将开源提到了新的战略高度,去年云栖大会上阿里云宣布了加大技术投入拥抱开源的策略。自去年开源重启以来,上的数增长接近,达到了。 摘要: 罗毅,花名北纬。这个名字,如果是混过天涯论坛的大龄网民应该都不陌生,北纬67度3分周公子(简称北纬)虐杀易烨卿MM的世纪大战至今还是天涯神贴 ,当时更是有看客赋诗形容:目睹此...
摘要:随着年上半年的临近尾声,我们有必要重新回顾一下云计算之战,看看这一年将如何发展。毫不奇怪,这三家公司分别是,微软和谷歌云,它们进入了领导象限。边缘计算即服务。此举是边缘设备上机器学习的有趣测试平台。和打磨他们的云计算并关注。 随着基础设施领域的差距缩小,上半年最有意思的发展围绕着软件即服务展开。然而,物联网,...
摘要:随着年上半年的临近尾声,我们有必要重新回顾一下云计算之战,看看这一年将如何发展。毫不奇怪,这三家公司分别是,微软和谷歌云,它们进入了领导象限。边缘计算即服务。此举是边缘设备上机器学习的有趣测试平台。和打磨他们的云计算并关注。 随着基础设施领域的差距缩小,上半年最有意思的发展围绕着软件即服务展开。然而,物联网,人工智能和机器学习也形成了差异。随着2018年上半年的临近尾声,我们有必要重新回顾一...
阅读 2100·2023-04-26 00:00
阅读 3072·2021-09-24 10:37
阅读 3425·2021-09-07 09:58
阅读 1470·2019-08-30 15:56
阅读 2187·2019-08-30 13:11
阅读 2240·2019-08-29 16:38
阅读 878·2019-08-29 12:58
阅读 1808·2019-08-27 10:54