程序员不可不知的职业风险
说到高危职业,你首先可能会想到挖煤工人、战地记者,或者是经常在新闻中读到的被病人家属砍砍杀杀的医生护士。但是谈起程序员,在众人的认知中他们除了脱发、过劳死以及孤独一生以外
HTML5 手势检测原理和实现
随着 Hybrid 应用的丰富,HTML5 工程师们已经不满足于把桌面端体验简单移植到移动端,他们觊觎移动原生应用人性化的操作体验,特别是原生应用与生俱来的丰富的手势系统。HTML5 没有提供开箱即用的手势系统
为什么这么多程序员和IT公司讨厌敏捷开发?
这些都是一些企业和人对于敏捷方法最常见的抱怨。然后你会惊讶地发现,关于敏捷被抱怨最多的实际上来自于敏捷宣言(Agile Manifesto)和四个价值观点?正是这些价值观导致了大多数人的误解。
JavaScript 异步进化史
JS 中最基础的异步调用方式是 callback,它将回调函数 callback 传给异步 API,由浏览器或 Node 在异步完成后,通知 JS 引擎调用 callback。对于简单的异步操作,用 callback 实现,是够用的
用 JavaScript 写一个超小型编译器
这是一个用JavaScript编写的编译器,虽然是一个很小很小的并没有什么卵用的编译器,但可以向我们展示编译器的很多东西。今天我把它翻译了出来,供大家学习和讨论。
AngularJS 指令实践
指令(Directives)是所有AngularJS应用最重要的部分。尽管AngularJS已经提供了非常丰富的指令,但还是经常需要创建应用特定的指令。这篇教程会为你讲述如何自定义指令,以及介绍如何在实际项目中使用
让你变成优秀程序员的几个小习惯
首先开发spike解决方案——这是我早期敏捷/极限编程所养成的习惯之一。spike解决方案是一次性原型,可以帮助你在投入大量时间和精力之前验证你是否走对路。区别就在于原型,因为你遵循这样一个规则
window.requestAnimationFrame 使用方式
window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数
对undefined的精准判断
使用 !运算符,他会将undefined,null, 0,false, 变为true,即(obj为undefined,null, 0,false时, !obj === true), 但是当使用void 0 时,他只会全等于undefined。