十年踪迹的头像

十年踪迹

  • 译文
    58
  • 积分
    9470
  • 粉丝
    4

TA很懒,连一句话简介都没有留下

最新译文

从 webpack v1 迁移到 webpack v2

resolve.root, resolve.fallback, resolve.modulesDirectories 上述配置项被一个单独的配置项 resolve.modules 取代。详见 resolving。 resolve: { - root: path....

征服 JavaScript 面试: 什么是函数式编程?| Eric Elliott

函数式编程在 JavaScript 界已经成为了一个非常热门的话题。而仅在几年之前,还几乎没有 JavaScript 程序员了解函数式编程是什么,但在最近三年里,我看到非常多的应用程序代码库里大量使用着函数式编程思想。 函数式编程 (通常简称为 FP)是指通过复合...

征服 JavaScript 面试:什么是闭包?| Eric Elliott

“征服 JavaScript 面试”是我写的一系列文章,来帮助面试者准备他们在面试 JavaScript 中、高级职位中将可能会遇到的一些问题。这些问题我自己在面试中也经常会问。 在我面试时问出的一系列问题里,闭包通常是我问的第一个或最后一个问题。坦白地说,如果...

配置一个简单而实用的 JavaScript 开发环境

在一个框架、库和工具无处不在的时代,可能很多人都会面临选择困难症。 根据我的经验,写一个模块或 CLI 工具前你所要做的第一件事就是设置一个开发环境。对这个步骤有人喜欢有人愁。但不管怎样,它可能总是花掉你很多时间,你得不停地调整你配置的方方面面。 当然,你可能使用...

在 2017 年将会更加流行的 6 个 Web 开发趋势

每到年底,人们总喜欢展望下一年,Web 开发领域也不例外。在 Web 开发领域,技术革新的速度堪比光速,未来总是超乎我们的想象,我们只能尽自己所能做一些合理的预测。 以下是我们需要关注的一些趋势: 1.更加移动优先 响应式设计显然是目前 web 开发领域的主要趋势之一...

一封写给 JavaScript 女神的信

亲爱的 JavaScript, 我想要与你谈谈我们的社区里需要解决的一个问题。 我为这个社区里的许多开源项目做出了贡献(包括 Babel、Flow、Yarn、Lerna,等等)。作为这些流行项目的维护者,我在社区里经历了温暖的阳光,也承受了猛烈的暴风雨。 参与社区的最...

为什么总有人黑 JavaScript?

我真的不理解为什么一些人总是黑 JavaScript。我喜欢 JavaScript,它不是万能的,但它最接近于我们所期望的能“运行在任何地方” —— 关于这一点别和我提 Java。 使用 JavaScript,你可以编写应用让它运行在: 你的浏览器上(几乎所有浏览器...

ES6 虽好,使用需谨慎

几天前我看到一条令人忍俊不禁的 tweet。 看到上面那段代码,我脑补了一个场景: “让我们使用新潮的 ES6 解构” “它看起来好难懂” “别怕!我会为它添加一个注释” 这的确搞笑,但同时它这是一种典型的货物崇拜编程 —— 盲目而仪式性地使用代码或程序结构。...

HTML5 元素选择流程图

...

只在需要的时候 Polyfill 你的 JavaScript 代码

本文转载自 Pascal Klau,他是一名来自德国南部的实习生,他讨厌不必要的 HTTP 请求,也不爱吃西兰花。Pascal 将说明使用 polyfill 服务的一种方式,在这种方式下你可能可以完全不必使用它。 现状 我们想要用 ES6 语法来写 JavaScri...

假新闻与 Facebook

在 2001 到 2003 年间,Judith Miller 在纽约时报上发表了一批文章,宣称伊拉克有能力和野心生产大规模杀伤性武器。这是假新闻。 回顾当年,我们无法确定 Miller 写的这些故事在美国 2013 年做出发动伊拉克战争的决定中扮演了怎样的角色;与 M...

带有 TouchBar 的 新 MacBook Pro 好用吗?

带有 TouchBar 的新版 MacBook 几周之前已经问世,许多顾客入手了这一版本。同时,新的 MacBook 的测评禁令也被取消了。那么,一台带有触屏的电脑值 1799 美元吗?让我们看看测评人对此怎么说。 TouchBar 实用吗? 顾名思义,带有 Touc...

Web 重在当下

在过去的20年里,web 从简陋的文档分享网络进化为一个大平台,具有了当初创建它时我们无法想象的能力。自诞生之日起,web 一直在努力适应用户需求,web 的成长过程中,也走过弯路,许多错误都是在后来才被解决的。由于 web 本身还在蹒跚学步,Flash 和 Sil...

巧用 CSS 变量实现自动前缀!| Lea Verou

最近,当我在制作 markapp.io 这个小网站的时候,我想出一个巧妙的技巧用在 CSS 变量上,我们可以天然地使用它们的动态本质。让我们看一下当你想使用一个属性,但是这个属性有不同的版本,一个无前缀的标准版和一个或多个有前缀的版本的情形。在这里我举一个例子,比如我...

前端是 🤘 而 JavaScript 是 👑

前端将要统治世界,让 JavaScript 君临天下,而码农们则在争论着我们的技术究竟变得有多复杂。 现代前端技术饱受争议,但是我们只顾争吵,似乎忘记了我们所得到的回报。我们,web 王国的劳动人民、web 设计师、前 Wordpress 工程师和吟唱代码的诗人,将要...

是什么使一名好程序员变得伟大

别满足于足够好 —— 来自一位技术总监的忠告。 作为一名年轻的程序员,我渴望在我的职业生涯中成长,我想要知道为了成为一名高级程序员,我们的目标要怎么设定。我询问过我的经理和导师,并惊讶地发现,要成为高级程序员,不仅仅是依靠学习和掌握技术(当然你需要不断学习,要...

Chrome 的 V8 JavaScript 引擎得到调整 | InfoWorld

V8 团队和俄罗斯开发者为浏览器引擎提供了内存优化和代码改进 V8 是 Google 的 Chrome 浏览器的 JavaScript 引擎,由 V8 团队和俄罗斯科学院提供性能改进和代码优化。 V8 团队发布了 5.4 版本,它是引擎的一个新的分支。“V8 5....

少写代码少填坑 – Medium

我不是这个世界上最有才的程序员。是的,我知道这是真的。所以我尝试尽可能少写代码。我写得越少,破坏越少,调整和维护的工作量也就越少。 我也很懒,所以觉得一切过得去就行了。 然而,事实证明让 Web 变得高效的唯一行之有效的方法也只是少写代码。精简代码?压缩代码?缓存?...

一家初创公司的 CTO 应当做什么?

你的首席技术官(CTO)整天都在做什么?很多时候,在一般人眼里的 CTO 形象等同于“那个拿着高薪坐在角落里,对‘技术’进行深层次思考的家伙” 或者 “那个在最后一刻突然一时兴起,跳起来重新安排我的项目的家伙”。我已经努力不让人产生这种印象,但这不容易做到。我们缺乏一...

Hover 已死,永垂不朽

在 2013 年 2 月,web 在使用方式上经历了一个巨大的变化,而直到 3 年之后,这一变化依然不被工程师和设计师们意识到。在那个月,两台笔记本电脑问世:Chromebook Pixel 和 Microsoft Surface。它们是第一批带有触摸屏支持笔记本电...

为什么我要说 JavaScript 对象字面量很酷?

在 ECMAScript 2015 之前,JavaScript 里的对象字面量(也叫对象初始化器)功能很弱。它只能定义两种属性: 普通键/值对 { name1: value } Getters { get name(){..} } 以及 setters { set...

选择一个 HTTP 状态码不再是一件难事 – Racksburg

有什么能比 HTTP 响应状态码更简单呢?页面渲染了吗?好极了,返回 200。页面不存在?那么是 404。想要跳转到另一个页面?302 或者可能是 301。 我喜欢把 HTTP 状态码想象成无线电波传输的 10 码1。“呼叫,呼叫,我是 White Chocolat...

前端开发者的悟性 | CSS-Tricks

最近有一个想法一直在我的脑海里(大体上来自于这个小组讨论),即前端开发者需要怎样的悟性。一般而言,前端开发者位于其他许多工作的中心环节。在一个 web 开发团队里,其他角色的工作依赖于前端开发。这可以理解。前端开发者创建产品中与用户实际交互的部分。用户所能感知的一切都...

物联网世界的前端开发

本周是 SitePoint 的 IoT 主题周!整整一周我们都在发布关于物联网与物理世界的文章,所以请持续关注 IoT 标签来阅读最新文章。 万维网不断发展和演变,至今已经有 27 年历史。我们如何展现内容和给内容添加样式在万维网发展的不同阶段有不同的形式,最近新...

7 个令人惊讶的 JavaScript “特性”

在过去的几个月里,我对 JSHint 做了一些改进,主要是,学习 ES6(我最自豪的是重新实现了变量作用域)的过程中我碰到了几个特性,它们让我惊讶,其中大部分是关于 ES6 的特性但也有一部分是 ES3 特性,这些特性我以前从未用过,而现在我将开始使用它们。 从任何...

那些差一点成为了 CSS 的语言

事实上,对我来说在过去的一年里,一直有一个快乐源泉是,不断告诉人们,如果你们想同 TeX、Microsoft Word 以及其他常见的文本处理环境那样地控制你们的网页文档:“对不起,你搞砸了”。 —— Marc Andreessen(Netscape 公司创始人、硅...

别把 (Flexbox) 栅格想得太复杂

四年前,我发布了一篇文章“别把栅格想得太复杂”,引起了一些人的共鸣。甚至在更早的时候,我们可能就已经把栅格发挥到极致了。那时候几乎每星期都有人推广新的栅格框架。 那篇文章中我的观点是:“怕什么!你可以自己实现一个栅格!你不需要一个复杂的框架。” 这个主张虽然没啥特别的...

使用 ES6 来为异步函数记录执行时间

在这篇文章里,我会实现一个可重用的函数来处理 JavaScript 延时异步操作。 calc 是一个我们想要做剖析(性能分析)的异步函数。按照惯例,它的最后一个参数是一个callback。我们像这样使用 calc: calc(arg, (err, res) =>...

关于控制 Referer 你想要知道的一切(和更多的)

本文是一篇技术文章,目的是对其他有安全意识的网页应用实现者提供有用的参考资料。普通的 FastMail 用户也能读一读,也许可以找点乐子,但也可以忽略它。这篇文章无关你的 FastMail 账号或者 email 软件。 什么是 Referer 头 Referer 头可...

我所知道的关于 script 标签的一切

正如你可能知道的,script 标签是用来指定在网页上执行哪个 JavaScript 的。Script 标签可以直接包含 JavaScript 代码,或者指向一个 JavaScript 外链 URL。 Script 标签按照它们出现的顺序被执行 下面的代码很直观地说明...

给 Web 开发者 3 个更有效地工作的建议

开发者倾向于停留在他们所了解和喜欢的领域,做那些让他们舒适和感觉良好的事。这在一个团队环境中可能会成为问题。回顾我的职业生涯,我在这方面犯了一些错误。 现在想一想你喜欢的框架:是否项目里添加了它就万事大吉? 想一想你喜欢的那些设计模式:将它堆砌在历史遗留代码上有帮助...

建立更好的可访问性原语

随着我们建立的网站逐渐变得更像 app,web 平台也需要跟上,提供给开发者所需的创建高可访问性用户体验的工具,这一点很重要。 最近,我遇到两个场景,在这两个场景下我添加合适的键盘支持到我所创建的组件上是极其困难的。在经过很多实验和研究之后,我比较清晰地意识到可能在...

Spying on the DOM

我一直是对 TDD(测试驱动开发)和代码测试持怀疑态度的。我发现它很难做到而且很耗时间。尽管如此,有比测试难得多而且更耗时间的事情。你可能已经猜到了,改 bug!。当代码库变大了,开发团队来了新人,你会发现晚上越来越难睡个安稳觉,因为你不知道一周前写的代码在明天的需求...

Emoji 可以如何改进你的代码——严肃地讨论

谁不喜欢 emoji?如同大量的 emoji 用户在聊天和 email 中使用它,我开始尝试看我是否能将它用到每天的软件开发中去。 虽然这咋一听起来像是在开玩笑,但我发现在开发工作的某些场景中, emoji 将会是真正有价值的。为什么呢? 我们,作为开发者,通常查看大...

关于静态类型令人震惊的秘密

TypeScript 最近迅速流行起来。我喜欢 TypeScript,我也喜欢静态类型。尽管我不使用 TypeScript,但由于 TypeScript 的类型系统,它获得一些非常棒的特性。TypeScript 的静态类型是结构不是名义,意味着它基本上像自动鸭子类型...

操蛋的开放 Web

九年前我是一个理想主义的 web 拥护者,想要将 web 从大鳄的暴政中拯救出来。我们将网络身份认证视为 web 未来的核心部分,并且努力为它创建 web 标准。这就是我如何被卷入开放标准和 web 规范的虚妄世界的。我们不择手段地呼吁在大厂工作的其他开发者们采纳我们...

在行内元素前注入一个换行 | CSS-Tricks

我遇到了一个小问题,我有一个 span 在 header 中,而我想要在 span 的前面产生一个换行。郑重声明,在 span 前面插入一个 <br> 标签当然没问题(而事实上,你还可以显示/隐藏这个标签,这非常有用)。但是...不得不用 HTML 去做一...

无穷集合与 ES6 生成器

动机 无穷和惰性求值的集合对于许多语言来说是稀松平常之物,而它也开始被主流 JavaScript 支持。随着新的迭代器和生成器特性被广泛采用,现在你可以将它们用于你的项目中。它们拥有一些非常具体的应用场景,这些场景也许不会每天出现,但是在某些情况下它们会非常有用。这些...

粘连 Footer 的 5 种方法 | CSS-Tricks

一个简短的历史,如果你愿意那样说的话。 粘连 footer 的目的是让它“支撑”在浏览器窗口的底部。但不总是在底部,如果有足够的内容将页面撑开,footer 可以被撑到网页下方去。但是,如果页面的内容很短,粘连 footer 仍然会出现在浏览器窗口的底部。 在 wr...

为什么 YouTube 和 Netflix 在 HTML5 里使用 MPEG-DASH

最近的新闻说 YouTube 选择 HTML5 替代之前的 Flash 作为他们首选的播放方案。这个消息引起了广泛关注,关注者包括 TechCrunch 和 TheVerge 等媒体。不过,很多人不知道 YouTube 在支持 HTML5 的浏览器中(例如 IE11,...

我从用 JavaScript 写斐波那契生成器中学到的令人惊讶的 7 件事

生成器(generator)函数是 ES6 的新特性。为了更加深入研究它,我决定写一个斐波那契数列的生成器函数。 以下是我所学到的。 采用新特性 有时候,当一个新的语言特性出现,我就毫不犹豫地开始全面使用它。在 ES6 的一些新特性上就是这种情况。我将最喜欢的 ES6...

用 CSS 隐藏页面元素的 5 种方法

用 CSS 隐藏页面元素有许多种方法。你可以将 opacity 设为 0、将 visibility 设为 hidden、将 display 设为 none 或者将 position 设为 absolute 然后将位置设到不可见区域。 你有没有想过,为什么我们要有这么多...

3 种不同的原型继承: ES6+ 版本

这篇文章改编自 《Programming JavaScript Applications》 相关章节,我在这基础上扩充了一些内容,并新增了 ES6 部分。 为了更好地发挥 JavaScript 的能力,很重要的一点是理解 JavaScript 的 原生继承能力。这是一...

每个单元测试必须回答的 5 个问题 | Eric Elliott

大多数开发者不知道如何测试 每个开发者都知道我们需要写单元测试,这是为了防止出现线上问题。 大多数开发者不知道每个单元测试应有的主要内容。我不想统计我所目睹的单元测试失败的次数,只能说我发现太多失败测试,这些测试我完全不知道开发者究竟在测什么,更别说测出它是怎么出错和...

使用 Generator 构建一个内置于浏览器中的 JavaScript 虚拟机和调试器

长文预警(tl;dr) 我用 JavaScript 创建了一个 JavaScript 虚拟机和调试器。你可以查看例子或是在 Github 下载源码。你可以继续阅读深入它的技术细节。 更新:使用 debug.js 我实现了一个 Bret Victor 的 Learnab...

Facebook 第六感 · Alexandre Kirszenberg

我每天都使用 Facebook,也许太着迷了,以至于我总想潜入他们内部。我说的“潜入”指的是研究他们用来实现许多用户界面和交互的 JavaScript。 几个月之前,我开始思考在聊天中,当对方正在打字时,出现的那个正在输入的指示符。这只是一个 UI 的小细节,但是能透...

使用 <pre> 标签样式的注意事项

你可能正在使用 <pre> 标签。这是一个 HTML 中非常特别的标签,它允许其中的空格真正显示出来。例如:四个空格将真实显示成四个空格。这不同于其他标签通常的做法,其他标签会将之间的空白压缩成一个。从这一点来说,<pre>标签真的是很有用。...

延续性究竟是什么?

许多开发者听说过“延续性(continuation)”,知道它和解决 node.js 的“回调地狱”问题有关。但我不认为大多数人真正了解了什么是延续性。延续性并不只是一个个被异步调用的回调函数。 “延续性”指的是你的程序控制流在任意时间点上的表现形式。抽象地说,它表现...

用 JavaScript 实现单步调试

在我的上一篇文章中,我介绍了 Unwinder,它实现了 JavaScript 的“延续性(continuations)”。延续性和单步调试有什么关系呢?Unwinder 使用延续性实现了一个调试器,它可以保持状态,在任何时候暂停代码的执行。 这篇文章本来可以用“实现...

六个漂亮的 ES6 技巧

在这篇文章里,我将演示 6 种 ES6 新特性的使用技巧。在每个段落的末尾,我会指出它们在我的书 Exploring ES6 中的出处(你可以在线免费阅读这本书)。 通过参数默认值强制要求传参 ES6 指定默认参数在它们被实际使用的时候才会被执行,这个特性让我们可以强...

别责怪框架:我使用 AngularJS 和 ReactJS 的经验

在过去的几年里,网站进化成了复杂的网页应用。曾经的互联网只涉及到简单的商业信息展现,而如今,看看 Facebook、Slack、Spotify 以及 Netflix,互联网正在改变你的社交和生活方式。随着互联网的发展,前端开发这个行业达到了全新的高度,并得到了前所未有...

寻找头绪:编写可维护的 JavaScript

几乎每个程序员都有接手维护别人遗留项目的经历。或者,有可能一个老项目某一天又被重新启动。通常情况下,接手老项目都会让人恨不得抛弃掉整个代码库从头开始。老代码凌乱、文档缺失、需要研究很多天才能完全搞明白它。然而,通过合适的规划、分解和好的工作流,项目代码可以变得干净、有...

在 ES6 中 改良的 5 个 JavaScript “缺陷”

ECMAScript 6 (ES6) 新特性可以分为新增语法(例如:class),增强 JavaScript 功能(例如:import),以及改良 JS “缺陷” (例如:let 关键字)。大部分博客将这三类新特性混在一起介绍,往往让 ES6 新手晕菜。因此我决定写下...

Google 计划在今年第四季度默认支持 HTML5 取代 Flash

Google提出了一项计划推进HTML5默认取代Flash。Google计划在2016年第4季度,只允许10个域名默认支持Flash,其他域名默认显示HTML5,如果依然要使用Flash,浏览器将询问用户是否允许运行Flash插件。 Flash已经被使用了好多年了。...

当悲剧或失望来袭,要知道你们能扛过任何事

以下是谢丽尔·桑德伯格在加州伯克利大学2016年毕业典礼上的演讲: 感谢玛丽,感谢各位尊敬的老师们、骄傲的父母、忠诚的朋友和各位同仁。 祝贺你们所有人,尤其是2016届伯克利毕业生们! 很荣幸能站在伯克利大学,这所学校培养了许多诺贝尔奖得主、图灵奖得主、宇航员、国会议...

JavaScript 中的“纯函数”

本文讨论什么是“纯函数”以及为什么我们要在JavaScript中讨论纯函数? 什么是“纯函数” 纯函数是指不依赖于且不改变它作用域之外的变量状态的函数。 也就是说,纯函数的返回值只由它调用时的参数决定,它的执行不依赖于系统的状态(比如:何时、何处调用它——译者注)。...

V8 团队眼中的 ES6、ES7及未来

V8团队致力于让 JavaScript 演变成一门表达能力强,定义明确,更容易开发高效、安全、正确的Web应用的编程语言。2015年6月,ES6规范 经由TC39标准委员会的批准,成为 JavaScript 语言版本的一次最大的升级。这次升级为 JavaScript...

【译】女程序员的正能量

虽说身为女性吐槽在技术圈里遇到的性别歧视之类话题能吸引更多的关注度,但是,如果没有人写点正能量的故事,过分消极的画风就会让越来越多的女性远离技术工作。 如果我一开始就被人告知技术领域存在性别歧视,那我很可能会选择别的职业,毕竟我们不可能以一己之力打败成见。而对我来说幸...