十多年来,我们一直使用 XMLHttpRequest(XHR)来发送异步请求,XHR 很实用,但并不是一个设计优良的 API,在设计上并不符合职责分离原则,输入、输出以及状态都杂糅在同一对象中,并用事件机制来跟踪状态变化。并且,基于事件的模型与最近流行的 Promise 和 generator 异步编程模型不太友好。
Fetch API 旨在修正上述缺陷,它提供了与 HTTP 语义相同的 JS 语法,简单来说,它引入了 fetch() 这个实用的方法来获取网络资源。
在 Fetch 规范中对 API 进行了定义,它结合 ServiceWorkers,尝试做到如下优化:
改善离线体验
保持可扩展性
写这篇文章时,Fetch AP
继续阅读 »
原文连接:Intro to Aspect Oriented Programming
本文简单地介绍了 AOP 的原理,以及 AOP 与其他方式的异同,并没有涉及太多的复杂逻辑,另外推荐下面两篇文章,这些文章中都间接或直接提及了 AOP:
用 AOP 改善 JavaScript 代码
使用 JavaScript 拦截和跟踪浏览器中的 HTTP 请求
面向切面编程(AOP)是一种非侵入式扩充对象、方法和函数行为的技术。通过 AOP 可以从“外部”去增加一些行为,进而合并既有行为或修改既有行为。
虽然有很多技术可以用来增加和合并行为,例如继承、组合、委托,然而,在很多情况下,AOP 被证明是更灵活和更少侵入的方式,非常值得将其纳入我
继续阅读 »
Heat中对外提供服务的进程有:heat-api, heat-api-cfn, heat-api-cloudwatch,内部进程只有一个heat-engine。这些进程都支持灵活部署。
访问heat-api时,在keystone鉴权时可以提供用户token,或者用户名和密码(此时不需要在系统中提供管理员token),需要配置:
[paste_deploy]
flavor = standalone
或者,使用第三方的云服务鉴权(不使用keystone),配置:
flavor = custombackend
此时,通过调用heat-engine中的authenticated_to_backend方法进行鉴权。
而heat-a
继续阅读 »
以下内容是基于HashMap源码注视的翻译
Hash表是基于Map接口的实现,这种实现提供了所有原始map的操作,允许null value和null key。
HashMap类大致相当于HashTable,只是它是不同步,并允许使用空值。
此类对map秩序的维护不做任何保证;尤其是,它并不保证顺序随着时间的推移,将保持恒定。
此实现提供常数时间复杂度的get和put操作,假设散列函数妥善分散桶与桶之间的元素。
迭代集合视图需要的时间复杂度与HashMap实例 的 "capacity"(存储桶的数目)再加上它的key-value 映射的数量 成正比,
因此如果迭代性能重要的话,非常重要的事情是一定不要把Map的初始容量设置得太高或
继续阅读 »
修改历史
2016-07-29 修改部分内容
如果项目很大,分为众多模块,并且需要对每个模块单独进行版本控制的时候,引入git submodule是一个非常不错的选择。尤其是对一些sdk+plugin的项目尤为适用。
more
继续阅读 »
写在前面的话
这两天一直在看JPA的相关内容,一下对最近的了解的信息进行整理,以前一直不了解什么是JPA,现在有了清晰的认识以作记录。
JPA是什么
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
起源
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。
JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它不囿于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。JPA的宗旨是为POJO提供持
继续阅读 »
[QuickAF]中使用Volley进行网络连接,使用Gson来解析响应数据。为了更方便地执行REST API网络请求,[QuickAF]对Volley+Gson进行了简单的封装。
more
接口请求与响应设计
继续阅读 »
写在前面
本系列是综合了自己在学习spark过程中的理解记录 + 对参考文章中的一些理解 + 个人实践spark过程中的一些心得而来。写这样一个系列仅仅是为了梳理个人学习spark的笔记记录,所以一切以能够理解为主,没有必要的细节就不会记录了,而且文中有时候会出现英文原版文档,只要不影响理解,都不翻译了。若想深入了解,最好阅读参考文章和官方文档。
继续阅读 »
顾名思义,主从复制就是将主库中的数据复制到从库中。从库可以有多个,同时主库和从库之间的网络拓扑有很多种组合方式,这里不做介绍。
为什么需要主从同步?
负载均衡
通过Mysql主从同步,可以将读操作分不到各个从库服务器上。实现对密集型应用的性能优化,并且实现方便。
容灾
避免单点故障,数据恢复,高可用性
Mysql升级测试
可以在从库上使用高版本的Mysql,保证在升级全部实例前,查询能够在从库正常执行。
同步原理
继续阅读 »
Python 是一种极少数能兼具 简单 与 功能强大 的编程语言。你将惊异于发现你正在使用的这门编程语言是如此简单,它专注于如何解决问题,而非拘泥于语法与结构。
官方对 Python 的介绍如下:
Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入之特性,加之其解释性语言的本质,使得它成为一种在多种领域与绝大多数平台都能进行脚本编写与应用快速开发工作的理想语言。
继续阅读 »