摘要:
Programming目录1. 增加行为1.1 修改所有的调用点1.2 修改源代码1.3 使用继承2. 分离关注点3. 引入 AOP3.1 AOP 应用示例4. AOP 实践04 September 2013 面向切面编程(AOP)是一种增强对象和方法的行为的技术,可以无侵入地增加功能。AOP 允许你从“外部”增加新行为,以及合并和修改既有的行为。虽然有多项技术可以用于增加或合并行为,例如继承、组合和代码,但是 AOP 在许多情况下被证明更具灵活性和低侵入性,可以是你技术工具箱的一项有益补充。让我们用一个简单的例子来看看它是如何工作的。假设我们的代码中含有下面的简单对象。function Th 阅读全文
摘要:
目录1. Promises2. 典型的 XHR 示例3. 调用栈3.1 恢复调用-返回编程模型3.2 移除回调函数3.3 完成了吗?4. 对调用者如何?5. 别着急6. 怎么处理 try/catch/finally?27 August 2013 在 凌乱的异步编程 一文中,当为一组简单的函数调用引入回调函数时,我们看到的是一副尴尬的局面,即使是用这种方式来处理单个异步操作。快速回顾一下,看看我们最初的代码、使用回调函数时的凌乱结果,以及我们为了回到正途而想要解决的几个问题:我们再也不能使用简单的调用-返回编程模型。我们再也不能使用 try/catch/finally 来处理异常。我们必须为可能 阅读全文
摘要:
目录1. 异常和 try/catch2. 面向异步3. 更多异步4. 如何处理 finally?5. 总结28 August 2013 1. 异常和 try/catch ⬆当执行可能失败的操作时,异常和 try/catch 是一种直观的操作。通过这种方式,我们可以从失败中恢复,也可以不捕获异常,或者明确地将异常再次抛出,让异常沿着调用栈向上传播到调用者。下面是一个简单的例子:function thisMightFail() { //... if(badThingsHappened) { throw new Error(...); } return theG... 阅读全文
摘要:
目录1. 阻止扩展1.1 检查对象是否可扩展2. 封闭对象2.1 检查对象是否是封闭的3. 冻结对象3.1 检查对象是否是冻结的4. 参考文献02 September 2013 这篇博客旨在快速复习如何在 JavaScript 中保护对象。有 3 种程度的保护:最弱的是阻止扩展,稍强的是封闭对象,最强的是冻结对象。1. 阻止扩展 ⬆Object.preventExtensions(obj)使对象不能再添加属性。例如var obj = { foo: 'a' };Object.preventExtensions(obj);现在,在宽松模式下添加属性会静默失败:> obj.ba 阅读全文
摘要:
目录1. API 设计:善恶之争2. 在 JavaScript 中,API 设计尤为重要3. 出色 JavaScript API 的秘诀4. 原则1:一致 & 协调5. 原则2:平衡6. 原则3:相衬7. 原则4:突出重点8. API 设计:不仅仅适用于库作者9. 比别人多做一点点9.1 三省吾身 谓予无愆9.2 上士闻道 勤而勉之10. 扩展阅读24 September 2013 原文:Secrets of Awesome JavaScript API Design, YouTube, PDF,其他翻译版本设计是一个具有普遍性的概念。正如牛津英语字典中 所定义的“拟定执行计划或执行方 阅读全文
摘要:
开源软件正在逐步改变全球软件开发的格局,越来越多的企业开始使用开源软件,并反过来为开源项目贡献力量。 一提到开源,大部分人首先想到的是免费。但其实价格并不是开源软件唯一的优势,其他优势还包括:避免重复造轮子:对于企业来说,有现成的工具可用,节省了重新开发的成本;质量更高、更安全:由于源码开放,其他开发者可以参与共享,安全漏洞的发现和修复将会更加及时;自由、可定制:企业可以摆脱软件厂商的束缚,并可以根据自己的需求很方便地进行定制。下面就来看看全球著名的一些互联网企业使用了哪些开源项目。1. FacebookFacebook是全球第一大社交网站,拥有约9亿用户,同时也是世界排名第一的照片分享... 阅读全文