前端架构
文章平均质量分 89
又拍云 UPYUN
这个作者很懒,什么都没留下…
展开
-
又拍云 Redis 的改进之路
作为推出国内首创可编程 CDN 服务的专业云服务提供商,又拍云利用 CDN 边缘网络规模和性能,允许客户自定义编写规则来满足常用业务场景。原创 2022-06-29 10:22:53 · 821 阅读 · 0 评论 -
关于 GIN 的路由树
GIN 是一个 golang 常用的 Web 框架,而“树”则是 一种优化的数据结构。 因为在 GIN 这个 Web 框架中的路由树是前缀树,所以我们今天会围绕前缀树来讲解。原创 2022-06-22 10:19:30 · 660 阅读 · 0 评论 -
【实操干货】做好这 16 项优化,你的 Linux 操作系统焕然一新
又拍云的操作系统优化方案。简单说,我们使用的 Linux 操作系统主要都是基于 CentOS6/7 的精简和优化。往复杂说,则是我们有两套系统,业务上使用的定制 Linux 系统和数据中心使用的优化版 Linux 系统。...原创 2022-06-13 10:27:16 · 750 阅读 · 0 评论 -
Golang 常见设计模式之单例模式
Golang 设计模式里最简单的单例模式的作用是确保无论对象被实例化多少次,全局都只有一个实例存在。根据这一特性,我们可以将其应用到全局唯一性配置、数据库连接对象、文件访问对象等。原创 2022-06-01 10:27:26 · 411 阅读 · 0 评论 -
Change Buffer 只适用于非唯一索引页?错
最近在网上看到一些文章里说:“change buffer 只适用于非唯一索引页。”其实这个观点是错的原创 2022-05-26 10:04:32 · 321 阅读 · 0 评论 -
一文带你了解 Base64 编码知识
开发工程师肯定对 Base64 毫不陌生了,那么你知道 Base64 究竟是什么,为什么要使用 Base64,以及 Base64 的优缺点吗?原创 2022-05-25 14:26:02 · 393 阅读 · 0 评论 -
面试官问:Go 中的参数传递是值传递还是引用传递?
在 Go 语言中有两种传递变量的方式值传递和引用传递。其中值传递会直接将变量内容附在变量名上传递,而引用传递会将变量内容的地址附在变量名上传递。原创 2022-05-19 10:34:18 · 330 阅读 · 0 评论 -
一文聊透 IP 地址的那些事
IP 地址,是一个大家都耳熟能详的名词。自 1981 年 Jon Postel 在 RFC791 中定义了第一次定义了 IP,到现在 IP 已经是现今互联网技术的基础。原创 2022-05-12 09:59:25 · 278 阅读 · 0 评论 -
javaScript 内存管理机制
通过 js 内存管理与 js 垃圾,常见的 GC 算法,V8 引擎的垃圾回收三部分讲述 JavaScript 内存管理机制原创 2022-04-14 10:31:49 · 1247 阅读 · 0 评论 -
OpenShift 与 OpenStack:让云变得更简单
OpenStack 的存在时间要比 OpenShift 长。这两个项目的演变代表了从虚拟机到应用程序容器的转变。原创 2022-03-24 16:33:20 · 3366 阅读 · 0 评论 -
Golang 常见设计模式之选项模式
Go 语言从语法上是不支持默认参数的,为了实现既能通过默认参数创建对象,又能通过传递自定义参数创建对象,我们就需要通过一些编程技巧来实现。原创 2022-01-11 10:38:57 · 374 阅读 · 0 评论 -
云原生灰度更新实践
现在的云原生是个很宽泛的定义,可以简单理解为你的服务是为云而生,或者说因为现在云原生都是以 Kubernetes 容器技术作为基础设施,那只要你的服务运行在 Kubernetes 上,它们就可以算云原生。原创 2021-12-09 14:45:04 · 984 阅读 · 0 评论 -
服务端渲染基础
渲染本质其实是字符串的解析替换,实现方式有很多种。但是我们这里要关注的并不是如何渲染,而是在哪里渲染的问题。原创 2021-12-07 11:11:04 · 592 阅读 · 0 评论 -
Ansible:Ansibl项目生产环境快速布局
但是实际生产环境中一个服务往往有多个组件,比如部署大数据服务时,常常需要部署一个“大数据全家桶”:Hadoop、 Zookeeper、 Hive、 Mysql、 Flink 等。今天的文章着重解决一下这个问题:如何科学正确地划分 Ansible 应用的目录结构?原创 2021-12-02 14:46:02 · 1723 阅读 · 0 评论 -
CSS 盒子的边距塌陷
tip:为能更直观地学习,本文章已省略部分 css 样式代码。我相信下面的情形大家在日常工作中常常碰到:在制作静态页面中,为了页面整体的协调与美观,我们想让子盒子 image-div 的上边沿距离父盒子 header-div 的上边沿有一定间距。现页面效果:目标页面效果:为了达成上图的效果,我们首先就能想到给子盒子设置一个上外边距:<style> .image-div { /*子盒子*/ margin-top:25px; }</styl原创 2021-11-02 11:38:26 · 212 阅读 · 0 评论 -
Python Type Hints 从入门到实践
Python 想必大家都已经很熟悉了,甚至关于它有用或者无用的论点大家可能也已经看腻了。但是无论如何,它作为一个将加入高考科目的语言还是有它独到之处的,今天我们就再展开聊聊 Python。Python 是一门动态强类型语言《流畅的 Python》一书中提到,如果一门语言很少隐式转换类型,说明它是强类型语言,例如 Java、C++ 和 Python 就是强类型语言。同时如果一门语言经常隐式转换类型,说明它是弱类型语言,PHP、JavaScript 和 Perl 是弱类型语言。当然上面这种简单的示例原创 2021-10-26 11:00:25 · 160 阅读 · 0 评论 -
一文读懂浏览器存储与缓存机制
浏览器存储CookieCookie 是 HTTP 协议的一种无状态协议。当请求服务器时,HTTP 请求都需要携带 Cookie,用来验证用户身份。Cookie 由服务端生成,存储在客户端,用来维持状态。通常 Cookie 由以下值构成: 名称(name) 值(value) 域(Domain) 值(value) 路径(Path) 失效时间(Expiers/Max-Age) 大小(Size) 是否为 HTTP 请求(HttpOnly) 安全性(Secure) 提示:域、路径、失效.原创 2021-10-19 10:57:17 · 252 阅读 · 0 评论 -
实战经验分享:使用 PyO3 来构建你的 Python 模块
PyO3 主要用于创建原生 Python 的扩展模块。PyO3 还支持从 Rust 二进制文件运行 Python 代码并与之交互,可以实现 rust 与 Python 代码共存。在一些对性能要求较高的模块上,可以考虑使用 PyO3 构建对应的功能模块。PyO3 的功能分离,不用过多担心模块之间的耦合性,并且在速度上能有一定的提升。github地址: https://github.com/PyO3/pyo3版本规定如下:Python 3.6+Rust 1.41+接下来我们通过一个小的 d原创 2021-10-14 14:29:40 · 859 阅读 · 0 评论 -
TypeScript 枚举指南
枚举是受 TypeScript 支持的数据类型。枚举允许您定义一组命名常量。使用它们可以更轻松地记录意图或创建一组不同的案例。枚举大多数用于面向对象的编程语言(如 Java 和 C#)中,现在也可以 TypeScript 中使用。它们是 TypeScript 的少数功能之一,它不是 JavaScript 的类型级扩展。接下来我将要演示 TypeScript 枚举的基础知识以及用例,各种枚举类型和学习的后续步骤。TypeScript 中的枚举是什么许多编程语言(例如 C,C# 和 Java)都具有 en.原创 2021-10-12 14:58:39 · 391 阅读 · 0 评论 -
亿级流量系统架构演进之路
海量用户同时进行高频访问对任何平台都是难题,也是行业乐此不疲的研究方向。但值得庆幸的是,虽然业务场景不同,设计和优化的思想却是万变不离宗。本文将结合业务与高并发系统设计的核心技术点,对系统架构调优方案进行深度剖析。文章根据 Authing 身份云高级工程师罗杰林,在又拍云 Open Talk 技术沙龙北京站所作主题演讲《亿级流量系统架构演进之路》整理而成,现场视频及 PPT 可点击阅读原文查看。相信大家都同意,互联网发展势头的逐渐凶猛改变了我们很多的生活方式。比如网购、银行转账等业务,不再需要我们必须线原创 2021-09-23 15:12:10 · 815 阅读 · 0 评论 -
性能优化:如何更快地接收数据
从网卡到应用程序,数据包会经过一系列组件,其中驱动做了什么?内核做了什么?为了优化,我们又能做些什么?整个过程中涉及到诸多细微可调的软硬件参数,并且相互影响,不存在一劳永逸的“银弹”。本文中又拍云系统开发高级工程师杨鹏将结合自己的的实践经验,介绍在深入理解底层机制的基础上如何做出“场景化”的最优配置。文章根据杨鹏在又拍云 Open Talk 技术沙龙北京站主题演讲《性能优化:更快地接收数据》整理而成,现场视频及 PPT 可点击阅读原文查看。大家好,我是又拍云开发工程师杨鹏,在又拍云工作已有四年时间,期间原创 2021-09-14 10:42:52 · 191 阅读 · 0 评论 -
灵魂画手:漫画图解 SSH
OpenSSL 本身是一个软件库,这个软件被广泛的应用在系统服务器当中,他的主要功能是在网络通信的过程中,保证数据的一致性以及数据传输过程中的安全性。软件本身是由C语言编写,这使得他具备了跨平台的特性,OpenSSL 主要包括如下三大功能:加解密: OpenSSL 具有丰富的加解密算法库,支持不同的加解密方式以及存储秘钥的方式,如对称加密,非对称加密,信息摘要等内容SSL 协议: OpenSSL 实现了 SSL 协议的的 SSLv2 和 SSLv3,支持了其中绝大部分算法协议证书操作: O原创 2021-09-09 10:21:52 · 152 阅读 · 0 评论 -
非VIP用户下载限速,原来是这么实现的
在日常工作之余,二狗子其实还是个隐藏的大触,一手素描画得出神入化,不少看过的小伙伴嗷嗷叫着求分享。为了让更多小粉丝能看到自己的作品,二狗子开发了一个提供有版权的素描稿件的下载网站。二狗子的小网站,只要是注册用户就可以无限速下载素描稿。这原本是一件好事,但随着访问量的增多,带宽成本成为了二狗子不可承受之重。于是就有小伙伴建议做一个 VIP 服务,让 VIP 全速下载,免费用户稍微限速一点。二狗子觉得这是个很好的办法,于是打开百度找了找具体操作方式。百度说传统的一些设置,都是在本地设置限制下载速度,如果是需原创 2021-08-31 15:16:48 · 479 阅读 · 0 评论 -
简略图解:输入 url 到出现页面,浏览器做了什么?
应该有很多前端开发人员都思考过这么一个问题:从输入 URL 到页面加载完成,中间都做发生了什么?这个问题涉及的面非常广,每个涉及的点又很深入。从触屏/键盘如何到 CPU?CPU 如何到系统内核?如何从操作系统 GUI 到浏览器?浏览器如何向网卡发送数据?数据如何从本机网卡发送到服务器?服务器接收数据后如何处理?服务器返回数据后浏览器如何处理?浏览器如何将页面展现出来?等等等等,每一个过程都包含了大量且深入的知识体系,很难一以贯通。但作为前端开发人员,浏览器是我们的主要工具之一,浏览器是如何将页面展现出来原创 2021-08-24 15:35:43 · 197 阅读 · 0 评论 -
go-zero:微服务框架
go-zero 是一个集成了各种工程实践的 Web 和 rpc 框架,它的弹性设计保障了大并发服务端的稳定性,并且已经经过了充分的实战检验。go-zero 在设计时遵循了 “工具大于约定和文档” 的理念,所以 go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 API 文件一键生成 Go、iOS、Android、Kotlin、Dart、TypeScript、JavaScript 代码,并可直接运行。如上图所示,不同客户端的请求都会先进入 go-zero 的 API 端。AP转载 2021-08-19 14:38:19 · 1011 阅读 · 0 评论 -
不一样的图片加载方式
在浏览网页的过程中,图片最容易吸引用户的注意力,它即能给用户直观感受,又能清晰地表达意图,所以在制作网页时,如何快速有效地加载图片资源显得尤为重要。常见的图片加载方式一般而言,最常见的图片加载方式是 HTTP URI Scheme 简称 HTTP URI。例如:某图片存储在又拍云存储上,链接为 https://f.lxpzyy.top/upyun/upcdn.svg。我们可以通过引入图片 HTTP 链接的方式,如: 来加载图片。除此之外,我们可以通过 Data URI Scheme 的方式来引入图片原创 2021-07-27 15:38:54 · 258 阅读 · 0 评论 -
MySQL 那些常见的错误设计规范
依托于互联网的发达,我们可以随时随地利用一些等车或坐地铁的碎片时间学习以及了解资讯。同时发达的互联网也方便人们能够快速分享自己的知识,与相同爱好和需求的朋友们一起共同讨论。但是过于方便的分享也让知识变得五花八门,很容易让人接收到错误的信息。这些错误最多的都是因为技术发展迅速,而且没有空闲时间去及时更新已经发布的内容所导致。为了避免给后面学习的人造成误解,我们今天来看一看 MySQL 设计规范中几个常见的错误例子。主键的设计错误的设计规范:主键建议使用自增 ID 值,不要使用 UUID,MD5,HASH原创 2021-07-15 14:39:59 · 171 阅读 · 2 评论 -
webpack 从 0 到 1 构建 vue
前端领域框架百花齐放,各种优秀框架出现(react,Vue,ag)等等框架。为了方便开发者快速开发, 开发对应的 cli 脚手架,来提高产出。然而初中级的前端工程师对项目里的 webpack 封装和配置了解的不清楚,就容易导致出问题不知如何解决,甚至不会通过 webpack 去扩展新功能,对 webpack + vue 项目究竟是怎样搭建起来的感到一脸困惑,下面我们就来解决这个问题,揭开 webpack 构建 vue 的面纱。什么是 webpack ?酷炫动画的页面,高度复杂的页面功能,页面内容支持预加原创 2021-07-13 15:07:22 · 192 阅读 · 1 评论 -
Ansible 快速入门
Ansible 是什么?Ansible是一个配置管理和配置工具,它使用SSH连接到服务器并运行配置好的任务,服务器上只需要开启ssh,所有工作都交给client端的ansible负责。当我们有批量部署的需求时,我们可以自己写脚本,但是更推荐使用 Ansible。使用 Ansible 无需编码只需要配置 yaml 文件即可,并且 Ansible 已经内置了幂等性、并发度控制等功能,大大减少了批量部署时的工作量。Ansible 原理示意图如上,我们需要关注以下 3 点就能掌握 Ansible 的大致原理原创 2021-07-06 10:51:04 · 116 阅读 · 1 评论 -
没登录网页也能个性化推荐?一文详解浏览器指纹
日常生活中,生物识别技术已经是多数智能手机的标配,大多数手机具备人脸识别、指纹识别等功能,目前的指纹识别技术已经非常成熟。但我们今天要聊的并不是生物识别技术中的指纹识别,而是浏览器指纹。很多人对这项技术是又爱又恨,这究竟是为什么呢?那我们今天就来深入了解下浏览器指纹。什么是浏览器指纹浏览器指纹可以通过浏览器对网站可见的配置、设置信息,来跟踪 Web 浏览器,它就像我们人手上的指纹一样,具有个体辨识度,只不过现阶段浏览器指纹辨别的是浏览器。浏览器指纹辨识的信息可以是 UA、时区、地理位置或者是使用的语言原创 2021-06-30 10:28:35 · 296 阅读 · 0 评论 -
私有化仓库的 GO 模块使用实践
本文以又拍云团队私有化模块处理的实践案例为基础,介绍如何使用私有化模块,以及 go get 工具背后的细节,其中包括如何让 go 正确的源获私有化 gitlab 上源代码以及认证等问题。文章根据又拍云资深开发工程师刘云鹏在 Open Talk 公开课直播分享进行整理,回放视频请下拉文末点击“阅读原文”。关于 Open Talk:由又拍云发起的综合性技术沙龙,秉承又拍云“让创业更简单”的初衷,以全干货的形式为技术开发者提供包括技术、运维、产品、创业等多维度的知识分享,帮助企业成员提升专业技能,推动企业更好更原创 2021-06-24 15:43:41 · 396 阅读 · 0 评论 -
开箱即用的微服务框架 Go-zero(进阶篇)
之前我们简单介绍过 Go-zero 详见《Go-zero:开箱即用的微服务框架》。这次我们从动手实现一个 Blog 项目的用户模块出发,详细讲述 Go-zero 的使用。特别说明本文涉及的所有资料都已上传 Github 仓库 “kougazhang/go-zero-demo”, 感兴趣的同学可以自行下载。Go-zero 实战项目:blog本文以 blog 的网站后台为例,着重介绍一下如何使用 Go-zero 开发 blog 的用户模块。用户模块是后台管理系统常见的模块,它的功能大家也非常熟悉。管理用原创 2021-06-23 10:56:19 · 7814 阅读 · 1 评论 -
go-zero:开箱即用的微服务框架
go-zero 是一个集成了各种工程实践的 Web 和 rpc 框架,它的弹性设计保障了大并发服务端的稳定性,并且已经经过了充分的实战检验。go-zero 在设计时遵循了 “工具大于约定和文档” 的理念,所以 go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 API 文件一键生成 Go、iOS、Android、Kotlin、Dart、TypeScript、JavaScript 代码,并可直接运行。如上图所示,不同客户端的请求都会先进入 go-zero 的 API 端。AP原创 2021-06-16 11:00:05 · 1085 阅读 · 0 评论 -
个推异常值检测和实战应用
日前,由又拍云举办的大数据与 AI 技术实践|Open Talk 杭州站沙龙在杭州西溪科创园顺利举办。本次活动邀请了有赞、个推、方得智能、又拍云等公司核心技术开发者,现场分享各自领域的大数据技术经验和心得。以下内容整理自个推资深算法工程师令狐冲现场分享:令狐冲(花名),个推资深算法工程师,目前负责个推深度学习相关研发工作,对 AI 算法有深入的了解及丰富的实践经验,擅长将大数据分析与深度学习神经网络相结合,为业务落地输出算法产品化能力。大家好,我是来自个推的令狐冲,今天主要分享大数据中的异常值检测和实战原创 2021-01-28 18:05:05 · 431 阅读 · 0 评论