谈谈如何组织线上的静态资源

本文来自我在知乎 前端打包如何在减少请求数与利用并行下载之间找到最优解? 下的回答。 这可以是一个脑洞很大的问题,优化到极限是所有程序员的理想,但我觉得并不现实,也无必要。 我经历过的一些方案点评网:那是2013年,点评网的前端技术还算是比较前沿的。我们有异步的模块加载器 kaelzhang/neuron · GitHub,有私有的包管理方案 Cortex · GitHub。我们几位技术的理想主义者,Kael、+1、 小马哥我们多次开会

阅读

为什么我讨厌 Static Zombie

我说有种静态资源叫做:static zombie——引用的地方添文件名加了时间戳或者 MD5,源码中又找不到这类文件,但测试或者生产环境上又有这个文件,不过是经过压缩的,一般这类文件时间都比较久远。深深地刺痛着我。 前两天发了这条微博,目的就是吐槽一下我司静态文件管理的混乱(历史原因就是很多 Web 项目之前不是由前端负责的)。造了个词 Static Zombie。在重构这些项目的时候,我发现源码中很多地方的源码就像下面这样: 1&

阅读

我的 RSS 订阅列表

可以到这里复制,存储为 xml 格式。 通常会碰到下面两个问题: 我不知道目前在流行些什么新技术,也不知道从哪里获取? 你们《专栏》的文章都是从哪里找的? 我的回答就是我一直在维护一个自己 RSS 列表,订阅了国内外一些有意思的前端(包括 Node.js)相关的列表。 大概是六年前我就开始使用 Google Reader (记得还是受到女友的启蒙)订阅一些相关的资讯,后来慢慢集中到技术上来。毕业后开始从事专业的前端工作,业余时间

阅读

测试驱动编写 React 简易计算器

本文的源码和 DEMO 都可以点击链接找到。 在5月30号 Teambition 组织的 React 的分享会中,我分享了如何对 React 组件进行单元测试,本文将做一些介绍和记录,以飨读者。 单元测试的重要性 此处省略十万字。 模块范式和测试方案React 的开发并不脱离前端的开发范式。下表总结了 React 开发各个环节的一些可选方案。 Code Runtime Unit

阅读

Node.js 异步编程之 Callback的问题

在上一篇中,我们使用 Callback 的方式来实现了我们需求,将一个 IP 列表转换成了具体的城市和天气。可以看出回调嵌套并不是 Callback 作为异步处理方案的真真问题。那正真的问题是什么呢? 可靠性上篇文章发出来,就被 @朴灵 吐槽,我还浑然不知。看上一篇文章中的这段代码: try { data = JSON.parse(data) callback(null, data) } catch (error) { ca

阅读

Node.js 异步编程之 Callback

Node.js 基于 JavaScript 引擎 v8,是单线程的。Node.js 采用了与通常 Web 上的 JavaScript 异步编程的方式来处理会造成阻塞的I/O操作。在 Node.js 中读取文件、访问数据库、网络请求等等都有可能是异步的。对于 Node.js 新人或者从其他语言背景迁移到 Node.js 上的开发者来说,异步编程是比较痛苦的一部分。本章将由浅入深为大家讲解 Node.js 异步编程的方方面面。从最基础的

阅读

前端模块化杂谈

在模块化方面,Node.js就显得游刃有余。 作为用户,我们把代码放到一个个JavaScript文件中,然后Node.js就有一套规则帮我们把这些代码组织起来,Node.js还有包的概念,于是我们就可以使用npm将代码放到一个个包中,放到这里那里的node_modules中使用。很方便不是?感谢Node.js。 可在浏览器端,模块化这事就没那么简单了。 前端的模块前端的一个模块包含很多东西,JavaScript、CSS、图片字体等等。甚

阅读

CoffeeScript编译器(一)

CoffeeScript越来越流行,接触CoffeeScript也已经一年有余,最近正在看它的编译器实现,在这里把体会记录下来。 目前,CoffeeScript编译器是使用CoffeeScript编写的,很多人会问,这是蛋生鸡呢,还是鸡生蛋?其实CoffeeScript编译器最初是使用Ruby编写的,CoffeeScript团队于2010年2月21号发布了v0.5.0,使用CoffeeScript重写了编译器。 CoffeeScript

阅读

豆瓣阅读《CoffeeScript小书》上架啦!

今天D2,豆瓣的石岩给我们带来豆瓣阅读在开发方面的心得,有一张PPT还用到了上周我在豆瓣阅读上架的一本书《CoffeeScript小书》。其实就是本博之前翻译的the-little-book-on-coffeescript的中文合集。 豆瓣阅读的体验真的很不错,这是本书在豆瓣阅读Web版上的一张预览图: 在其他平台上,比如说Android,iPad,Kindle Fire上体验也很好。大家可以访问《CoffeeScript小书》试读,

阅读

可选择样式表

可选择样式表这个问题,有点绕,之前看懂了,后来忘记,现在就把它记下来。 这个问题与样式表的rel和title属性的值和组合有关: 1.默认样式表,指定rel属性为stylesheet,会在页面上一直存在的样式,不受用户选择其他可选择样式表的影响: <link href=”default.css” rel=”stylesheet” type=”text/css”> 2.可选择默认样式表,指定rel属性为stylesheet,指

阅读