InfraPub 为您找到相关结果 13

Rust的模块化系统: 包Packages, 箱Crates, 和模块Modules

箱(binary crate)的根文件, 该箱(crate)与包(package)同名src/lib.rs 是类库箱(library crate)的根文件, 该箱(crate)与包(package)同名多个二进制箱(binary crates): 在src/bin目录下创建.rs文件, 每个文件对应一个二进制箱(binary crate).模块Modules模块通过mod加模块定义, 例如:// Filename: src/lib.rs mod front_of_house { mod hosting { fn add_to_waitlist() {} fn seat_at_table() {} } mod serving { fn take_order() {} fn...阅读全文

博文 2021-02-20 08:49:51 知乎

Debian 主机如何配置静态 IP 地址?

做个记录,主要是几个的写法,仅供参考。 `cat /etc/network/interfaces` 内容如下: ``` # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network...阅读全文

Gitlab CI 配置文件 .gitlab

: "$CI_COMMIT_REF_NAME" untracked: true 缓存每个job且每个分支: cache: key: "$CI_JOB_NAME/$CI_COMMIT_REF_NAME" untracked: true 缓存每个分支且每个stage: cache: key: "$CI_JOB_STAGE/$CI_COMMIT_REF_NAME" untracked: true 如果使用的Windows Batch(windows批处理)来跑脚本需要用%替代$: cache: key: "%CI_JOB_STAGE%/%CI_COMMIT_REF_NAME%" untracked: true Jobs .gitlab-ci.yml允许指定无限量jobs。每个jobs必须有一个唯一的名字,而且不能是上面提到的。job...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)

Ruby 2.5.0 稳定版发布

Ruby 2.5 系列第一个稳定版本发布,新版包括了一系列新的特性和性能改进。主要变化包括:rescue/else/ensure 允许直接与 do/end 块使用,yield 增加 yield_self,Struct.new 能创建接受参数的类,最高级常量查询不再可用,移除所有 trace 指令提升 5-10% 性能,SecureRandom 将更偏向使用操作系统提供的 SSL 库等。 此版本包括数个新特性和性能提升,例如: 新特性 允许在 do/end 中直接使用 rescue/else/ensure。[功能 #12906] 新增 yield_self 来使用当前上下文 yield 代码块。不同于 tap,此方法会返回代码块的运行结果。[功能 #6721] 支持测量分支代码覆盖和方...阅读全文

博文 2017-12-25 21:59:41 debian.cn

Debian软件包常用管理命令整理

在Debian及其衍生的系统中,我们需要经常使用的软件包管理命令,对系统进行管理,以便系统达到预期的状态。Debian系统中,常用的软件包命令有 apt、apt-get、dpkg、apt-cache等,这里我们着重列举常见的一些用法。 软件包查询(不需要sudo权限) $ apt-cache search pkg_keyword #列出匹配的软件包 $ apt search pkg_keyword #列出匹配的软件包,包括了版本信息 $ apt list pkgname #查找该软件包,会显示版本信息 $ apt-cache show pkgname #查询软件包详细信息 $ apt show pkgname #查询软件包详细信息 $ apt-cache depends...阅读全文

Go 泛型的括号选择:[ ] or ( )

( ) 和 [ ] 可供选择。然而缺少修饰的方括号会在数组和 slice 的类型声明中造成歧义,在解析索引表达式时也会引起小程度的歧义。因此在设计之初他们决定使用小括号,因为小括号似乎更符合 Go 语言的风格,而且看起来问题最少。 为了使小括号正常工作,并且为了向后兼容,他们表示不得不在类型参数列表中引入type。最后,他们在参数列表、复合字面量和嵌入类型中发现了额外的解析歧义,而这些歧义需要嵌套更多的小括号来解决。不过即便如此,他们还是决定继续使用小括号,因为当时还有更重要的设计问题需要解决。 现在他们决定重新考虑这个最初的决定。如果仅使用方括号声明类型参数,那么声明数组的方式如下所示: type A [N]E 不过这就无法与泛型的声明进行区分: type A[N] E 但如果能接受额外的...阅读全文

博文 2020-07-16 10:38:01 debian.cn

2017 热门开源自动化测试框架优缺点对比

1. Robot Framework Robot Framework(RF)是用于验收测试和验收测试驱动开发(ATDD)的自动化测试框架。 基于 Python 编写,但也可以在 Jython(Java)和 IronPython(.NET) 上运行,提供跨平台支持(Windows、Linux 或 MacOS )。 优点: 通过使用驱动测试(KDT)方法简化了自动化测试过程,方便测试人员创建易读的测试。 测试数据语法简单易用。 生态系统丰富。由各种通用测试库和工具组成,这些工具都是作为独立项目开发的。 具有高度可扩展性。 可通过 pabot 或 Selenium Grid 执行并行测试。 缺点: 自定义 HTML 报告较为麻烦。 如果是针对大范围的库和扩展的 KDT 自动化测试,建议使用...阅读全文

博文 2017-11-15 08:52:47 debian.cn

高性能缓存服务器 Nuster

path01这条规则永远不会执行,因为 all 会匹配所有的规则。 name 定义一个名字。 key KEY 定义 key,由以下组成: method: http method, GET/POST... scheme: http or https host: the host in the request path: the URL path of the request query: the whole query string of the request header_NAME: the value of header NAME cookie_NAME: the value of cookie NAME param_NAME: the value of query NAME body...阅读全文

博文 2017-12-15 22:17:31 debian.cn

Monit:开源服务器监控工具

2812 and # ssl enable # pemfile /etc/certs/monit.pem # use address all # only accept connection from localhost allow 127.0.0.1 # 允许localhost连接 allow admin:monit # web登录的用户名和密码 ## Services ## Includes include /etc/monit.d/* 配置文件:'if', 'and', 'with(in)', 'has', 'us(ing|e)', 'on(ly)', 'then', 'for', 'of' 。 如何监控 基本流程 1.修改主配置文件2.在/etc/monit.d/增加指定服务的配置文...阅读全文

博文 2023-04-12 15:21:43 阿里云开发者社区

什么是线程安全,以及并发需要知道的几个概念

,因为一个CPU一次只能执行一条指令,这种情况就是并发,系统看似能处理多任务是因为不停的切换任务,但因为时间非常短,所以在我们的感官来说就是同时进行的。而计算机系统真实的并行是随着多核CPU的出现才有的。 临界区临界区表示公共资源或是共享数据,可以被多个线程使用。但是每次只能有一个线程使用它,一旦临界区的资源被占用,其他线程就必须等到资源释放后才能继续使用该资源。在Java程序开发中,对于这样的资源一般都需要做同步的操作,例如下面的这段代码,用的就是synchronized来对临界区资源进行同步。 public class SyncTest implements Runnable { //临界区资源 public static SyncTest instance = new...阅读全文

博文 2018-12-31 20:44:06 debian.cn

Golang 中的 channel 通道详解

发送和接收操作将导致两个goroutine做一次同步操作。 因为这个原因,无缓存Channels有时候也被称为同步Channels 。当通过一个无缓存Channels发送数据时,接收者收到数据发生在再次唤醒发送者goroutine之前。单向channel当一个channel作为一个函数参数时,它一般总是被专门用于只发送或者只接收。为了表明这种意图并防止被滥用,Go语言的类型系统提供了单方向的channel类型,分别用于只发送或只接收的channel。类型 chan<- int 表示一个只发送int的channel,只能发送不能接收。相反,类型<-chan int 表示一个只接收int的channel,只能接收不能发送。(箭头<-和chan的相对位置表明了channel的方向 。)这种限...阅读全文

Docker 核心原理

Cgroups 来达到上述目的。 CGroup 全称 Linux Control Group, 是 Linux 内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等) 一组按照某种标准划分的进程,其表示了某进程组,Cgroups 中的资源控制都是以控制组为单位实现,一个进程可以加入到某个控制组。而资源的限制是定义在这个组上,简单点说,cgroup 的呈现就是一个目录带一系列的可配置文件。 理解 cgroups 的几个 cgroup 进程组 进程按照某种标准组织成一个控制组,资源的控制定义在这个组上,新加入的进程就继承该组的配置。比如 docker 启动的容器都加入 docker 这个进程组 subsystem 子系统 cgroups 为每种可以控制的资源定义了一个...阅读全文

博文 2021-02-25 09:14:23 lxkaka

HAProxy用法详解 最详细中文文档

”段用于定义一系列监听的套接字,这些套接字可接受客户端请求并与之建立连接。 “backend”段用于定义一系列“后端”服务器,代理将会将对应客户端的请求转发至这些服务器。 “listen”段通过关联“frontend”和“backend”定义了一个完整的代理,通常只对TCP流量有用。 所有代理的名称只能使用大写字母、小写字母、数字、-(中线)、_(下划线)、.(点号)和:(冒号)。此外,ACL名称会区分字母大小写。 三、配置文件中的参考 3.1 balance balance url_param [check_post []] 定义负载均衡算法,可用于“defaults”、“listen”和“backend”。用于在负载均衡场景中挑选一个server,其仅应用于持久信息不可用的条件下或需...阅读全文

博文 2014-05-10 17:14:46 debian.cn