摘要: Programming目录1. 增加行为1.1 修改所有的调用点1.2 修改源代码1.3 使用继承2. 分离关注点3. 引入 AOP3.1 AOP 应用示例4. AOP 实践04 September 2013 面向切面编程(AOP)是一种增强对象和方法的行为的技术,可以无侵入地增加功能。AOP 允许你从“外部”增加新行为,以及合并和修改既有的行为。虽然有多项技术可以用于增加或合并行为,例如继承、组合和代码,但是 AOP 在许多情况下被证明更具灵活性和低侵入性,可以是你技术工具箱的一项有益补充。让我们用一个简单的例子来看看它是如何工作的。假设我们的代码中含有下面的简单对象。function Th 阅读全文
posted @ 2013-10-19 11:13 agile30353 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 目录1. Promises2. 典型的 XHR 示例3. 调用栈3.1 恢复调用-返回编程模型3.2 移除回调函数3.3 完成了吗?4. 对调用者如何?5. 别着急6. 怎么处理 try/catch/finally?27 August 2013 在 凌乱的异步编程 一文中,当为一组简单的函数调用引入回调函数时,我们看到的是一副尴尬的局面,即使是用这种方式来处理单个异步操作。快速回顾一下,看看我们最初的代码、使用回调函数时的凌乱结果,以及我们为了回到正途而想要解决的几个问题:我们再也不能使用简单的调用-返回编程模型。我们再也不能使用 try/catch/finally 来处理异常。我们必须为可能 阅读全文
posted @ 2013-10-19 11:13 agile30353 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 目录1. 异常和 try/catch2. 面向异步3. 更多异步4. 如何处理 finally?5. 总结28 August 2013 1. 异常和 try/catch ⬆当执行可能失败的操作时,异常和 try/catch 是一种直观的操作。通过这种方式,我们可以从失败中恢复,也可以不捕获异常,或者明确地将异常再次抛出,让异常沿着调用栈向上传播到调用者。下面是一个简单的例子:function thisMightFail() { //... if(badThingsHappened) { throw new Error(...); } return theG... 阅读全文
posted @ 2013-10-19 11:12 agile30353 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 目录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 阅读全文
posted @ 2013-10-19 11:11 agile30353 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 目录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,其他翻译版本设计是一个具有普遍性的概念。正如牛津英语字典中 所定义的“拟定执行计划或执行方 阅读全文
posted @ 2013-10-19 11:09 agile30353 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 开源软件正在逐步改变全球软件开发的格局,越来越多的企业开始使用开源软件,并反过来为开源项目贡献力量。 一提到开源,大部分人首先想到的是免费。但其实价格并不是开源软件唯一的优势,其他优势还包括:避免重复造轮子:对于企业来说,有现成的工具可用,节省了重新开发的成本;质量更高、更安全:由于源码开放,其他开发者可以参与共享,安全漏洞的发现和修复将会更加及时;自由、可定制:企业可以摆脱软件厂商的束缚,并可以根据自己的需求很方便地进行定制。下面就来看看全球著名的一些互联网企业使用了哪些开源项目。1. FacebookFacebook是全球第一大社交网站,拥有约9亿用户,同时也是世界排名第一的照片分享... 阅读全文
posted @ 2013-10-19 11:02 agile30353 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 目录1. 我是谁,以及我为什么写这个主题?2. 可以用 140 个字概述这篇文章吗?3. 究竟什么是“大型” JavaScript 应用程序?4. 让我们回顾一下当前的架构5. 想得长远一些6. 头脑风暴7. 架构提议7.1 模块化理论7.2 CommonJS 模块7.3 外观模式7.4 中介者模式7.5 应用外观:核心的抽象7.6 应用中介者:应用程序的核心7.7 整合7.8 超越发布/订阅:自动注册事件7.9 常问问题13 August 2013 今天我们要讨论大型 JavaScript 应用架构中的有效模式。这篇文章基于我最近在 LondonJS 的同名演讲,灵感则来自 Nicholas 阅读全文
posted @ 2013-10-18 18:37 agile30353 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 文章作者Juan Pablo Sarmiento收集了60个较为实用、高效的工具资源库,可以帮助开发者快速创建各种Web App和移动App。这些资源的特点是:简单、便捷、免费、高效、功能多。当你独自一人需要在短期内构建一个产品的时候,这些起关键作用的工具定会给你留 下更深刻的印象。(以下是编译内容)下面所列举的就是近期比较受欢迎的资源集合:1、Mmenu:这个jQuery插件能够为移动网站创造出灵活的、类似App的滑动菜单。2、Fabric textures:这5个布料纹理的背景可以以JPG的格式免费下载。3、Fitgrd:这是一个轻量级的、看起来很酷的响应式网格资源。4、Horizonta 阅读全文
posted @ 2013-10-18 18:10 agile30353 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 移动产业的兴起,给用户和开发者都带来了更多选择。目前,移动应用程序已经逐渐成为各类业务的重要组成部分之一。要让应用程序良好运行,必须选用正确的手机平台。目前领先的移动技术平台有iOS、Windows Phone、Android和黑莓。在不同平台上让不同应用都能提供丰富的应用体验,这对开发者提出了更高的要求。跨平台移动应用开发工具正好满足了开发 者不断增长的跨平台开发需求,它的优点是,开发者只要编写一次代码,开发的应用程序可适用于每一种智能手机;此外,跨平台开发工具通常使用更常见的语言, 比如JavaScript、HTML5和CSS,更容易找到开发人员,进而缩短开发时间。 跨平台开发工具有助于智 阅读全文
posted @ 2013-10-18 18:09 agile30353 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 优秀的工具,可以使你的开发工作事半功倍,帮助你创建出高品质的Web应用。本文整理了16款重要的Web开发工具,涵盖CSS、JavaScript、图像优化和其他方面的Web开发工作,希望对你的开发工作能有所帮助。一、CSS工具1.Simpless这是一个免费的离线LESS代码编译器。如果你使用LESS,这是一个伟大的工具,能够自动检测代码变化,并编译它。可在Mac、Windows和Linux平台上使用。2. CSSWrap 一个很酷的CSS文本路径生成工具。3.LayerStyles 不想去记新的CSS3特性和前缀?该工具使用类似于Photoshop图层样式的界面,让你轻松配置阴影、背景、边框和 阅读全文
posted @ 2013-10-18 18:06 agile30353 阅读(96) 评论(0) 推荐(0) 编辑