Author: admin

使用 Docker 高效搭建本地开发环境(详细教程)

本地开发之痛苦

在开发之前,首先你需要安装各种开发工具和服务支持到你的开发环境当中,可能会出依赖问题,环境变量问题,端口冲突,经编译库问题等等。

开发途中,可能你又需要依赖一些其他的服务,你最好祈祷不会出问题,可能你又要重写来配置你的环境,因为你的所有的依赖服务都在你的唯一的工作空间里面。

如果你的伙伴的操作系统不统一,可能你还会遇到一些不同元字符解析不一致的问题。

然后上线之前,可能你在本地开发调试都可以完美运行,一但部署到服务器,就会出现各种问题。因为大多数情况下,我们的开发环境和生产环境并不相同。

可能你下次又有要用到一个新的开项目的开发环境。你又要重复面对上面这些问题.

你不得不去审视,你要话费大量的时间用在搭建环境当中来。

什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 对我们而言,我觉得只需要把他理解成一个便携的应用容器即可

Docker本地开发环境的好处

试错

对开发者而言,每天会催生出的各式各样的新技术都需要尝试,然而开发者却不太可能为他们一一搭建好环境并进行测试。时间非常宝贵,正是得益于 Docker,让我们有可能在一条或者几条命令内就搭建完环境,而且这个环境大到一个特定版本的操作系统,小到一个软件。Docker 有一个傻瓜化的获取软件的方法,Docker后台会自动获得环境镜像并且运行环境。

统一开发和生产环境

对于一般的小公司来说,搭建一个公用的开发环境是一件不那么划算的事情。那么就可以用Docker来统一开发环境,因为不管你用的是WindowsMac 还是 Ubuntu。 如果生产环境也使用的Docker的话,你甚至可以直接打包一套环境,直接丢上去就可以运行了,再也不用担心开发-生产环境之间的差异了。

高性能

虚拟机的粒度是

HTTP/3 正式发布,有哪些站点提速了?

💡 HTTP/3 是超文本传输协议 (HTTP) 的第三个版本,以前称为 HTTP-over-QUIC。
QUIC 最初由 Google 开发,是 HTTP/2 的继承者。Google 和 Facebook 等已经使用 QUIC 来加速网络。
HTTP 简史

对于游戏开发者来说,重要的协议是UDP(用户数据报协议)。UDP是快速、即发即弃的标准:你在网络上扔了一个数据包,它就被抓住或者有时被丢掉了。

像Web这样要求稳定的系统,正确使用的底层协议是TCP(传输控制协议)。这是一个更正式的系统,它保证了数据包的交付与正确顺序。TCP 创建了可靠连接,后来又创建了可靠的信息流。

随后,它们被正式命名为“TCP/IP 堆栈”。

后来,基于 TCP/IP 编写的WWW和 HTTP 成为互联网的主要用途。另一个缺失的首字母缩略词是TLS(传输层安全),它提供了加密相关元素,并成为事实上的安全标准。

而在那个年代里, PC 之间的连接通常是有线的,任何损失都是由于旧铜线上的噪音造成的。

TCP 协议非常适合收集偶尔出错的数据包,而随着Web的发展使用 UDP 协议逐渐减少。

进入QUIC

今天的互联网已经进入一个发展非常不同的场景了。

比如现在家中的 PC

Redis 要被替代了?

今年年中,一位前谷歌、前亚马逊的工程师推出了他创作的开源内存数据缓存系统 Dragonfly,用 C/C 编写,基于 BSL 许可(Business Source License)分发。

根据过往的基准测试结果来看, Dragonfly 可能是世界上最快的内存存储系统,它提供了对 Memcached 和 Redis 协议的支持,但能够以更高的性能进行查询,运行时内存消耗也更少。

与 Redis 相比,Dragonfly 在典型工作负载下实现了 25 倍的性能提升;单个 Dragonfly 服务器每秒可以处理数百万个请求;在 5GB 存储测试中,Dragonfly 所需的内存比 Redis 少 30%。…

Go 编程语言的真正优势是什么?

Google 的Go 语言(又名Golang )在 2022 年 3 月发布 1.18 版,在其十多年的发展历程中,已经从对 alpha 极客的好奇发展成为经过实战考验的编程语言,背后是一些世界上最重要的语言。

为什么Docker和Kubernetes等项目的开发者会选择 Go ?Go 的定义特征是什么,它与其他编程语言有什么不同,最适合构建什么样的项目?

在本文中,我们将探讨 Go 的功能集、最佳用例、语言的遗漏和限制,以及 Go 的发展方向。

Go 语言小而简单

Go,是由谷歌员工开发的,主要是长期的 Unix 大师和谷歌杰出工程师 Rob Pike,但严格来说,它并不是一个“谷歌项目”。相反,Go 是作为一个社区主导的开源项目开发的,由领导层带头,他们对 Go 的使用方式和语言的发展方向有强烈的看法。

Go 意味着易于学习、易于使用并且易于其他开发人员阅读,Go 没有大量的功能集,尤其是与 C++ 等语言相比。

Go 的语法让人想起 C,这使得长期 C

在页面关闭时,前端上传监控数据的4个解决方案

概览

本文以 “前端监控上报数据” 的业务场景,重点解析在 页面实例关闭 时,如何将监控数据上传到服务端的解决方案。
其中,涉及到4种方案,分别为:

  • 同步XMLHttpRequest
  • img.src
  • navigator.sendBeacon
  • fetch keepalive

同步XMLHttpRequest

const data = JSON.stringify({
			  time: performance.now()
			});

var xhr = new XMLHttpRequest();

// 第三个参数false,表示当前请求是同步
xhr.open('post', 'http://api.wangxiaokai.vip/test'

javascript 异步操作的6种方法

异步操作的模式:

1 回调函数:callback
2 事件监听:onXxxx,addEventListener.
3 发布/订阅(设计模式)

4 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象

5 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同,Generator 函数将 JavaScript 异步编程带入了一个全新的阶段。

6 async 函数:ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是什么?一句话,它就是 Generator 函数的语法糖。

 

当然 .定时器和ajax也可以看作是.

更多请查看

https://www.php.cn/website-design-ask-488572.html

https://blog.csdn.net/ZYS10000/article/details/104601839/

docker常用笔记汇总

一 常用命令使用

docker version 查下docker版本

systemclt start docker 启动容器

docker search 镜像搜索

docker images 列出镜像

docker pull 镜像名 获取镜像

docker pull busybox:latest 最新镜像获取

docker save busybox:latest -o busybox.tar

导出镜像docker rmi busybox

删除镜像docker load -i busybox.tar

导入镜像docker run --name busybox_v1(自定义容器名字) busybox:latest(镜像名字)…

git 命令 ——git status、git diff

前言

当对项目做了更改时,我们通常需要知道具体改了哪些文件,哪些文件更改了没有暂存,哪些文件改了并且已加入到暂存区等待下次 commit。上述任务使用 git status 都可以帮我们解决。但是想要知道文件内部改了哪些地方 git status 就无能为力了。git status 最多只告诉你改没改,改哪了不知道。git diff 可以解决这个问题。

git status

git status 命令的输出十分详细,但其用语有些繁琐。 如果你使用 git status -s 命令或 git status --short 命令,你将得到一种更为紧凑的格式输出。 运行 git status -s ,状态报告输出如下:…