词法分析器 语法分析器 语义分析及中间代码生成 代码优化 代码生成
设计理念与分布式系统 分析和理解Kubernetes的设计理念可以使我们更深入地了解Kubernetes系统,更好地利用它管理分布式部署的云原生应用,另一方面也可以让我们借鉴其在分布式系统设计方面的经验。 API设计原则 对于云计算系统,系统API实际上处于系统设计的统领地位。Kubernetes集群系统每支持一项新功能,引入一项新技术,一定会新引入对应的API对象,支持对该功能的管理操作。理解掌
原理 ListView的实现离不开Adapter。可以这么理解:ListView中给出了数据来的时候,View如何实现的具体方式,相当于MVC中的V;而Adapter提供了相当于MVC中的C,指挥了ListView的数据加载等行为。 提一个问题:假设ListView中有10W个条项,那内存中会缓存10W个吗?答案当然是否定的。那么是如何实现的呢?下面这张图可以清晰地解释其中的原理: 可以看到当一个
网络爬虫使用的技术--数据抓取: 在爬虫实现上,除了scrapy框架之外,python有许多与此相关的库可供使用。其中,在数据抓取方面包括: urllib2(urllib3)、requests、mechanize、selenium、splinter; 其中,urllib2(urllib3)、requests、mechanize用来获取URL对应的原始响应内容;而selenium、splinter通
现代分词都是基于统计的分词,而统计的样本内容来自于一些标准的语料库。假如有一个句子:“小明来到荔湾区”,我们期望语料库统计后分词的结果是:"小明/来到/荔湾/区",而不是“小明/来到/荔/湾区”。那么如何做到这一点呢? 从统计的角度,我们期望"小明/来到/荔湾/区"这个分词后句子出现的概率要比“小明/来到/荔/湾区”大。如果用数学的语言来说说,如果有一个句子S,它有m种分词选项如下:$$A_{11
在数理统计里面,我们都知道相关系数这个概念。假设有两组一维的数据集X和Y,则相关系数$$rho$$的定义为: $$ rho(X,Y) = frac{cov(X,Y)}{sqrt{D(X)}sqrt{D(Y)}} $$ 其中$$cov(X,Y)$$是X和Y的协方差,而D(X), D(Y)分别是X和Y的方差。相关系数$$rho$$的取值为[-1,1], $$rho$$的绝对值越接近于1,则X和Y的线性
LLE属于流形学习(Manifold Learning)的一种。因此我们首先看看什么是流形学习。流形学习是一大类基于流形的框架。数学意义上的流形比较抽象,不过我们可以认为LLE中的流形是一个不闭合的曲面。这个流形曲面有数据分布比较均匀,且比较稠密的特征,有点像流水的味道。基于流行的降维算法就是将流形从高维到低维的降维过程,在降维的过程中我们希望流形在高维的一些特征可以得到保留。 一个形象的流形降维
作为开放平台,必须要提供API文档。 SOP采用微服务架构实现,因此文档应该由各个微服务各自实现。难点是如何归纳各个微服务端提供的文档信息,并统一展示。 SOP的解决思路如下: 各微服务使用swagger定义自己的接口信息 sop-website项目在启动时向注册中心获取所有服务实例,分别调用各个服务提供的swagger文档信息,保存到本地 sop-website前端页面负责展示swagger提供
Spring Cloud Gateway通过一系列的Filter来进行数据的传输,如下图所示: SOP网关在此基础上新增了几个Filter用来处理自己的逻辑,如:前置校验、结果返回。 过滤器 类型 Order 功能 IndexFilter 自定义 -2147483648 入口过滤器,获取参数、签名校验 ParameterFormatterFilter 自定义 -2147482647 格式化参数 L
"层"的概念 一个游戏里面包含了许多个元素,包括图片、声音、对象模型、相关数据(比如"游戏得分")、方向行为控制等等。游戏编程的实质就是把这些元素按照剧本有序的组合在一起,把这些元素“可控“化。 跟影视制作一样,游戏的每一个场景里面都有"背景"、"主角"、"配角"、"路人甲乙丙丁"、"道具"等。在影视拍摄中,导演指挥剧务布置场景,指挥演员按剧本表演动作和对话,后期制作中加入各种道具使用时产生的特效
人工神经网络 人工神经网络又叫神经网络,是借鉴了生物神经网络的工作原理形成的一种数学模型。下面是一张生物神经元的图示: 生物神经网络就是由大量神经元构成的网络结构如下图: 生物的神经网络是通过神经元、细胞、触电等结构组成的一个大型网络结构,用来帮助生物进行思考和行动等。那么人们就想到了电脑是不是也可以像人脑一样具有这种结构,这样是不是就可以思考了? 类似于神经元的结构,人工神经网络也是基于这样的神
Seata 可以支持多个第三方配置中心,那么 Seata 是如何同时兼容那么多个配置中心的呢?下面我给大家详细介绍下 Seata 配置中心的实现原理。 配置中心属性加载 在 Seata 配置中心,有两个默认的配置文件: file.conf 是默认的配置属性,registry.conf 主要存储第三方注册中心与配置中心的信息,主要有两大块: registry { # file 、nacos 、e
说到Seata中的配置管理,大家可能会想到Seata中适配的各种配置中心,其实今天要说的不是这个,虽然也会简单分析Seata和各配置中心的适配过程,但主要还是讲解Seata配置管理的核心实现 Server启动流程 在讲配置中心之前,先简单介绍一下Server端的启动流程,因为这一块就涉及到配置管理的初始化,核心流程如下: 程序入口在Server#main方法中 获取port的几种形式:从容器中获取
如何在升级 Sidecar(MOSN)的时候而不影响业务,对于存量的长连接如何迁移,本文将为你介绍 MOSN 的解决之道。 Service Mesh 中 Sidecar 运维一直是一个比较棘手的问题,数据平面的 Sidecar 升级是常有的事情,如何在升级 Sidecar(MOSN)的时候而不影响业务,对于存量的长连接如何迁移,本文将为你介绍 MOSN 的解决之道。 背景 本文介绍 MOSN 支持