javaScript核心原理
ECMAScript是一门高度抽象的面向对象(object-oriented)语言,用以处理Objects对象. 当然,也有基本类型,但是必要时,也需要转换成object对象来用。
An object is a collection of properties and has a single prototype object. The prototype may be either an object or the null value.
Object是一个属性的集合,并且都拥有一个单独的原型对象[prototype object]. 这个原型对象[prototype object]可以是一个object或者null值。
让我们来举一个基本Object的例子,首先我们要清楚,一个Object的prototype是一个内部的[[prototype]]属性的引用。
不过一般来说,我们会使用____ 下划线来代替双括号,例如__proto__(这是某些脚本引擎比如SpiderMonkey的对于原型概念的具体实现,尽管并非标准)。
作用域链(Scope Chain)
我们已经知道一个执行上下文 的数据(变量、函数声明和函数的形参)作为属性存储在变量对象中。
同时我们也知道变量对象在每次进入上下文时创建,并填入初始值,值的更新出现在代码执行阶段。
强大的原型和原型链
JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型。
虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大。实现传统的类继承模型是很简单,但是实现 JavaScript 中的原型继承则要困难的多。
由于 JavaScript 是唯一一个被广泛使用的基于原型继承的语言,所以理解两种继承模式的差异是需要一定时间的,今天我们就来了解一下原型和原型链
变量对象概念
JavaScript编程的时候总避免不了声明函数和变量,以成功构建我们的系统,但是解释器是如何并且在什么地方去查找这些函数和变量呢?我们引用这些对象的时候究竟发生了什么?
闭包概念原理
闭包(closure)。闭包其实大家都已经谈烂了。尽管如此,这里还是要试着从理论角度来讨论下闭包,看看ECMAScript中的闭包内部究竟是如何工作的
分布式架构中的幂等性
电商的很多业务,考虑更多的是 BASE(即Basically Available、Soft state、和Eventually consistent),而不是 ACID(Atomicity、Consistency、Isolation和 Durability)。即为了满足高负载的用户访问,我们可以容忍短暂的数据不一致。
那怎么做呢?
第一,不做分布式事务,代价太大。
第二,不一定需要实时一致性,只需要保证最终的一致性即可。
第三,“通过状态机和严格的有序操作,来最大限度地降低不一致性”。
第四,最终一致性(Eventually Consistent)通过异步事件做到。
12306分析,解决“高流量和高并发“的难题。
12306互联网售票系统在2011年下半年开始上线使用,但在2012年春运期间引发无数的争议。在2012年春运后,12306项目承接单位与多家IT公司联系,经过多次论证和POC 测试, 最终引入分布式内存运算数据管理云平台 - Pivotal Gemfire做试点,用以提高12306系统性能,解决“高流量和高并发“的难题。
架构师专业提升课程
成功的唯一方法便是,承认现实,超越现实,鼓起勇气并善用它。
学会平静的对待生活中的不完美之处,适应自己的情绪,了解如何让它们自然宣泄出去
学习如何把不完美的地方转换成我们的优势,激发我们的创造力
自我激励,不管外部条件是否有激励性,找到一种激发最佳状态的情绪,学习如何在我们的意识中制造一些波动来激励我们前进