Source Map 工作原理

简介

Source Map 是前端开发中非常有用的一种文件,它提供了源码映射的机制,使开发人员能够在本地开发过程或者线上环境基于源码进行调试或者错误堆栈分析。

Source Map 提案

JavaScript、CSS 代码的 source map 是根据 Source Map Revision 3 Proposal(这个文档在谷歌 Docs 里,如果打不开,可以下载 PDF)这个提案来实现的。提案里用一句话描述其特点为“Better bidirectional mapping”,即“更好的双向映射”。

按照提案一个 sourceMap 文件的内容实际上是一个 JSON 对象:

Read More

Share

Longest Valid Parenthese 问题的 DP 解法

来源:Leetcode: 32. Longest Valid Parentheses

Longest Valid Parentheses
Given a string containing just the characters ‘(‘ and ‘)’, find the length of the longest valid (well-formed) parentheses substring.

要求子序列的所有括号是连续的、无间断的。

Read More

Share

自己动手,更换2015年 Macbook Pro 15' 的电池

2018 年 4 月重新入职美团的时候,公司给配了一台 2015 年 8 月 6 号出厂的 15 寸 MacBook Pro,型号 A1398。已经是一台二手甚至多手的机器了。我用了不到一年,发现电脑的底部总是无法放平,原来是电池鼓包了。

然后我就从京东买了块电池,绿巨能的(链接)。不贵,原价 369 元,优惠后 339 元。下了单,第二天上午就到货了。包装里包括外壳、内部电路板的螺丝刀各一副,也比较用心。

第一步,关机后,拆掉外壳。

第二步,断开主板与电池的连接。电池的接口向上抬即可断开。

第三步,断开触摸板与主板的连接线(如下图所示)。需要慢慢地把线(图里“触摸板连接线”箭头指的地方)的接口平着抽出来。

Read More

Share

Goodbye, 2018

去年的总结:2017年度小结

Read More

Share

懒人理财法之基金定投(Automatic Investment Plan)

一些基本概念

基金定投(Automatic Investment Plan),号称是巴菲特非常推荐小白们使用的投资理财方式。基金定投这个概念,我最早是去年在猫眼的时候,从一位技术大牛做的理财知识讲座上了解到的。当初听后懵懵懂懂,今年下半年,则开始慢慢接触实操。

有几个比较基础的概念,理清楚比较好。

什么是基金

基金(fund)
从广义上说,基金是指为了某种目的而设立的具有一定数量的资金。主要包括信托投资基金、公积金、保险基金、退休基金,各种基金会的基金。
从会计角度透析,基金是一个狭义的概念,意指具有特定目的和用途的资金。我们现在提到的基金主要是指证券投资基金。
—— 百度百科

Read More

Share

《隐藏人物》:IT行业同学值得一看的电影

Catalogue

《隐藏人物》(Hidden Figures,2016)是一部根据真人真事改编的故事片。这部影片向 1962 年美苏航天军备竞赛中为美国载人航天默默做出贡献的黑人女工程师们进行了致敬。

影片中三位女主角简介:

  • Katherine Johnson,高智商,超级数学天才,14 岁高中毕业,18 大学毕业,取得学士学位。在 NASA 的工作中,曾负责载人飞船的再入点及降落点坐标的计算。
  • Dorothy Vaughan,NASA 历史上第一位黑人女主管。在自己因为肤色原因屡屡不能获得提拔的困境下,没有气馁,而是去图书馆顺了一本书,《21天精通Fortran编程》,在公司的 IBM 机器上面不断练习、操作,学会之后,教给了自己带领的团队所有人(全都是黑人女性,计算员)。借此,她们避免了自己的失业,甚至进一步获得了重用。
  • Mary Jackson,NASA 历史上第一位黑人女工程师。

NASA chose us not because we wear skirts, but because we wear glasses.
– Katherine Johnson

美国航天第一人,John Glenn,非常信任 Katherine。电影中,在点火之前,他在电话里与 NASA 的对话内容基本与历史真实情况一致。非常神奇~~

Katherine Johnson本人回忆道:“ 当John Glenn有可能成为美国第一位进入地球轨道的宇航员时,他们希望当他返回时可以降落在某个特定的区域,那就是我所做的工作,我计算了他的轨道。所以从那之后,只要有轨道计算的工作他们都拿到我这里,而我几乎都是用手算的方式完成了这些任务。

作者:SELVEN(来自豆瓣)
来源:https://movie.douban.com/review/8295989/

Share

书写良好的 Git 提交信息

在使用 Git 的过程中,可以发现 Git 是会强制每次提交都要写提交消息(commit message)的,这也算是 Linus 的良好编程习惯的体现。准确恰当的提交信息对于回溯项目开发历程、寻找特定功能的代码片段等等,都很有帮助。

Read More

Share

Acorn.js 原理与应用

Catalogue

Acorn.js 是个好工具,可以做词法分析和语法分析,生成 AST,配合 acorn-walk 以及 escodegen,可以完成许多高级的事情。在工作中用它解决了一些问题。顺便就做了个分享,关于 Acorn.js 的原理与应用。下面是分享的 PPT,在此备份一下。

PPT 下载

PPT 中部分代码示例:learn-acorn.js | zilong-thu’s github

有些示例是源码阅读,这个大家直接下载 acorn.js 的源码来看就好了。另外有部分代码是公司的项目,因此不能放出来,见谅~~

在我的电子书《Web前端工程化与组件化开发实践》 中,有一章专门对 JS 的解析器进行介绍,感兴趣的朋友可以移步:JavaScript 解析器

Share

最近这四个月

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

Read More

Share

BigInt is Coming

BigInt is Coming!

Read More

Share