前言 面向对象的三大特性 封装 继承 多态 原型链的知识 原型链是面向对象的基础,是非常重要的部分。有以下几种知识: 创建对象有几种方法 原型、构造函数、实例、原型链 instanceof的原理 new 运算符 创建对象有几种方法 方式一:字面量 var obj11 = {name: 'qianguyihao'}; var obj12 = new Object(name: 'qia
在看本文之前,我们可以先复习上一篇文章:《03-JavaScript基础/12-对象的创建&构造函数.md》 原型对象 原型的引入 function Person(name, age, gender) { this.name = name; this.age = age; this.gender = gende
Redux 可以用这三个基本原则来描述: 单一数据源 整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store 中。 这让同构应用开发变得非常容易。来自服务端的 state 可以在无需编写更多代码的情况下被序列化并注入到客户端中。由于是单一的 state tree ,调试也变得非常容易。在开发中,你可以把应用的 state 保
问题 你想排序类型相同的对象,但是他们不支持原生的比较操作。 解决方案 内置的 sorted() 函数有一个关键字参数 key ,可以传入一个 callable 对象给它, 这个 callable 对象对每个传入的对象返回一个值,这个值会被 sorted 用来排序这些对象。 比如,如果你在应用程序里面有一个 User 实例序列,并且你希望通过他们的 user_id 属性进行排序, 你可以提供一个以
结构、样式、行为分离 尽量确保文档和模板只包含 HTML 结构,样式都放到样式表里,行为都放到脚本里。 缩进 统一两个空格缩进(总之缩进统一即可),不要使用 Tab 或者 Tab、空格混搭。 文件编码 使用不带 BOM 的 UTF-8 编码。 在 HTML中指定编码 <meta charset="utf-8"> ; 无需使用 @charset 指定样式表的编码,它默认为 UTF-8 (参考 @ch
前言 在项目复杂的业务场景,有时候需要在前端跨域获取数据,这时候提供数据的服务就需要提供跨域请求的接口,通常是使用JSONP的方式提供跨域接口。 实现JSONP demo地址 https://github.com/ChenShenhai/koa2-note/blob/master/demo/jsonp/ 具体原理 // 判断是否为JSONP的请求 if ( ctx.method === '
前言 一个http请求访问web服务静态资源,一般响应结果有三种情况 访问文本,例如js,css,png,jpg,gif 访问静态目录 找不到资源,抛出404错误 原生koa2 静态资源服务器例子 demo源码 https://github.com/ChenShenhai/koa2-note/blob/master/demo/static-server/ 代码目录 ├── static # 静态资
简单例子 const Koa = require('koa') const app = new Koa() app.use( async ( ctx ) => { let url = ctx.request.url ctx.body = url }) app.listen(3000) 访问 http://localhost:3000/hello/world 页面会输出 /hello/wor
由于常常使用简单的方式来执行原始/已经准备好的SQL查询,因此可以使用 sequelize.query 方法. 默认情况下,函数将返回两个参数 - 一个结果数组,以及一个包含元数据(例如受影响的行数等)的对象. 请注意,由于这是一个原始查询,所以元数据都是具体的方言. 某些方言返回元数据 "within" 结果对象(作为数组上的属性). 但是,将永远返回两个参数,但对于MSSQL和MySQL,它将
2.1 交易,区块,挖矿和区块链 比特币系统与传统的银行和支付系统不同,是基于去中心化的信任。在比特币中,信任不是通过中央权威机构授权而来,而是通过比特币系统中不同用户相互交互自发达成,这是比特币的一个显著特性。 在本章中,我们将通过较高层面跟踪比特币系统中的一笔交易,观察交易如何通过比特币分布式共识机制变得“可信”,被接受,并且最终记录在区块链,这个区块链就是所有交易的分布式账簿。 随后的章节将
关于本书 我第一次偶遇比特币是在2011年年中,当时的反应大概是“哈!书呆子的钱嘛!”因为没能领会它的重要性,我忽视它长达六个月之久,而让我稍感宽慰的是,许多我认识的一些聪明绝顶的人也是这种反应。在一次邮件列表讨论时,我再次接触到了比特币,于是决定阅读中本聪(Satoshi Nakamoto)写的白皮书,研究比特币的权威解释,看看到底是怎么一回事。我仍记得刚刚读完那九页内容的那一刻,那时我才终于明
云原生是一种应用开发风格,鼓励在持续交付和价值驱动开发领域轻松采用最佳实践。相关的学科是建立12-factor Apps,其中开发实践与交付和运营目标相一致,例如通过使用声明式编程和管理和监控。Spring Cloud以多种具体方式促进这些开发风格,起点是一组功能,分布式系统中的所有组件都需要或需要时轻松访问。 许多这些功能都由Spring Boot覆盖,我们在Spring Cloud中建立。更多
Service是应用运行的理想状态的描述,task在这个理想状态下完成工作。工作按照下面的流程在Swarm节点之间被调度: 使用CLI运行命令docker service create,或者使用UCP web界面。 请求传递给manager节点。 manager节点在特定的节点调度service的运行。 每一个service可以由多个task来执行。 每一个task都有一个生命周期,生命周期的状态
Docker内置了PKI,使保障发布容器化的业务流程系统的安全性变得很简单。Swarm节点之间采用TLS来鉴权、授权和加密通信。 当我们运行docker swarm init命令时,Docker指定当前节点为一个manager节点。默认情况下,manager节点会生成一个新的根CA证书以及一对密钥。CA证书和密钥将会被用在节点之间的通信上。也可以通过参数--external-ca来指定其他CA证书
为了部署一个应用的镜像到Swarm模式的Docker Engine中,我们需要创建一个service。通常service是拥有大型应用系统上下文信息的微服务镜像。例如,一个服务可能包含一个HTTP服务器、一个数据库、或者其他的软件,我们需要这些软件运行在一个分布式环境中。 当创建service时,我们需要指定用什幺镜像运行container,以及container内部运行什幺样的命令。我们还需要定