1分钟将你的jenkins构建环境迁移到K8S集群上

资源准备1,稳定运行的K8S集群一套(没有可使用Rancher快速部署一个)2,Jenkins master一台3,Jenkins pipeline基础知识:见 链接jenkinspipeline传统Jenkins使用中暴露的问题1,每个业务团队使用的编译环境不统一,需要准备大量的slave节点2,Slave很多,空闲期(如夜里)资源浪费3,虽然Slave很多,但高峰期队列等待构建任务依然在排队,资源抢占严重4,构建任务多,workspace空间不足5,性能瓶颈,偶尔有slave节点内存泄漏问题...阅读全文

Go语言中文网 2020-03-26 16:00:09 JFrogChina

Go 每日一库之 sjson

简介 在上一篇文章中我们介绍了如何使用gjson快速读取 JSON 串中的值。为了内容的完整性,今天我们介绍一下如何使用sjson快速设置 JSON 串中的值。 快速使用 先安装: $ go get github.com/tidwall/sjson 复制代码后使用: package main import ( "fmt" "github.com/tidwall/sjson" ) const json = `{"name":{"first":"li","last":"dj"},"age":18}`...阅读全文

从零开始建图床服务端和客户端(Mac)

图床 图床可以参考知乎这篇文章 一些小众图床有空空间免费,但不知道什么时候会挂掉。前些年用过的极简图床,现在也销声匿迹; 大厂提供的有限免费空间,七牛云10G空间,10Gb/月 流量免费;但如果使用https,就会有一些费用,但不多; 一些开源自建图床的工具,要么很久没更新,要么复杂的要命(nginx, php,mysql); 一些国外图床,国内访问不方便。 自建图床 服务端 最近发现wordpress内的markdown外链的图片要用https,所以尝试过一些开源的图床工具,一般还要依赖mys...阅读全文

Segmentfault 2020-03-30 20:32:34 hiyang

Go 编程: 证书自动化与几大邮件运营商的(接收/投递)安全漏洞

最近手撸了一个纯 Go 的邮件系统,在证书配置上使用了autocert包进行证书自动化。同时在与几大邮件运营上接收与投递测试的过程中发现了对方的一些安全漏洞。本文就证书自动化与邮件运营商这些安全漏洞进行阐述。 原文链接 证书自动化 原理 实现证书自动化,首先当然得感谢 letsencrypt.org 签发的免费证书。 简单解释一下 letsencrypt.org 签发证书的原理。 letsencrypt.org 共提供了 4 种校验(challenge)方式, 分别是: HTTP-01 chal...阅读全文

Segmentfault 2020-03-30 01:32:34 JayL

Golang中使用set

Go中是不提供Set类型,Set是一个集合,set里的元素不能重复。 两种思路 2 basic set implementations 使用map实现 在Golang中通常使用map来实现set,map中的key为唯一值,这与set的特性一致。 简单实现,如下: set := make(map[string]bool) // New empty set set["Foo"] = true // Add for k := range set { // Loop fmt.Println(k) } d...阅读全文

简书 2020-03-26 07:32:40 DevilRoshan

leetcode_99

Golang: 思路:这题最简单的思路,因为二叉搜索树中序遍历的特性,使得我们可以遍历所有值,找到被交换的那两位,然后把他们重新交换回来。这里给出morris算法实现(可能是这题真正最大的价值) 代码如下: func recoverTree(root *TreeNode) { //还是应该理解为找逆序对,使用中序遍历 var pre, x, y *TreeNode for root != nil { if root.Left != nil { node := root.Left for node...阅读全文

简书 2020-03-25 23:32:52 淳属虚构

leetcode_98

Golang: 思路:依旧是中序遍历,如果数组是递增的,那么二叉搜索树是正确的 代码如下: func isValidBST(root *TreeNode) bool { arr := inOrderValDFS(root) for i := 1; i < len(arr); i++ { if arr[i] <= arr[i-1] { return false } } return true } func inOrderValDFS(root *TreeNode) []int { var stac...阅读全文

简书 2020-03-25 23:32:52 淳属虚构

我的心酸求职之路:如果可以,去学Java、C,不要搞Python

很多人之所以从事Python,是因为很不爽PHP的语法,虽然PHP被称为世界上最好的编程语言。于是为了这个原因,付出了沉重的代价,失业了好几回。 我的心酸求职之路:如果可以,去学Java、C,不要搞Python 我的心酸求职之路:如果可以,去学Java、C,不要搞Python 身边有些人时不时总是会问我一些Python的技术问题,但是大多数情况下都是比较基础的。要不是近几年Python火了起来,说不定我真的转行送外卖了。 对于Python这么语言,可以当作一门兴趣或爱好来学习,但是若是想找到份好...阅读全文

简书 2020-03-25 23:32:51 java路人甲

并发简介

有人把Go语言比作 21 世纪的C语言,第一是因为Go语言设计简单,第二则是因为 21 世纪最重要的就是并发程序设计,而 Go 从语言层面就支持并发。同时实现了自动垃圾回收机制。 Go语言的并发机制运用起来非常简便,在启动并发的方式上直接添加了语言级的关键字就可以实现,和其他编程语言相比更加轻量。 下面来介绍几个概念: 进程/线程 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。 线程是进程的一个执行实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的...阅读全文

简书 2020-03-25 23:32:49 乔大叶_803e

2020年程序员生存指南

中国互联网络信息中心发布的第43次《中国互联网络发展状况统计报告》指出,截止于2018年12月中国网民规模达到8.29亿,同年新增网民高达5653万。在互联网高速发展和网民持续增长的背后离不开程序员的默默支持。据悉,2018年全球软件开发从业者人数高达2300万,预计今年年底可达2640万,但如此庞大的就业群体中真正能称为“软件工程师”的只有1%。调查统计,我国程序员多集中于北上广深杭等五个城市,这些城市在吸引优秀人才和企业的同时也反哺着互联网龙头企业。作为互联网飞速发展下的特殊群体,程序员在近...阅读全文

简书 2020-03-25 23:32:47 画皮易画心难

如何在JavaScript中转换数据类型?

在JavaScript中,数据类型用于对一种特定类型的数据进行分类,确定可以分配给类型的值以及可以对其执行的操作。虽然由于类型强制,JavaScript会自动转换许多值,但为了达到预期的结果,通常最好在类型之间手动转换值。那么如何在JavaScript中转换数据类型?下面本篇文章就来给大家介绍一下,希望对大家有所帮助。 原文地址:如何在JavaScript中转换数据类型?JavaScript 变量可以转换为新变量或其他数据类型,分为两种情况:● 隐性转换:通过 JavaScript 自身自动转换...阅读全文

简书 2020-03-25 23:32:43 yanghs

Go 每日一库之 sjson

简介 在上一篇文章中我们介绍了如何使用gjson快速读取 JSON 串中的值。为了内容的完整性,今天我们介绍一下如何使用sjson快速设置 JSON 串中的值。 快速使用 先安装: $ go get github.com/tidwall/sjson 后使用: package main import ( "fmt" "github.com/tidwall/sjson" ) const json = `{"name":{"first":"li","last":"dj"},"age":18}` fun...阅读全文

Segmentfault 2020-03-29 23:32:34 darjun

2. Go 语言中五种变量创建的方法

文章首发自公众号:Go编程时光 《Go编程时光》,一个能带你学习 Go 语言的专栏,同时欢迎搜索我的同名公众号【Go编程时光】(排版精美更适合阅读),第一时间获取Go语言干货。 系列导读 1. 一文搞定Go语言开发环境的搭建 对于只有 Python 语言经验的朋友,也许会不太理解声明这个词,在 Python 中直接拿来就用,也不用声明类型啥的。 Go 语言是静态类型语言,由于编译时,编译器会检查变量的类型,所以要求所有的变量都要有明确的类型。 变量在使用前,需要先声明。声明类型,就约定了你这个变...阅读全文

掘金 2020年03月25日 王一白

从零学习 Go 语言(04):byte、rune与字符串

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 **系列导读 ** [从零学习 Go 语言(01):一文搞定开发环境的搭建](https://study...阅读全文

Go语言中文网 2020-03-25 21:49:10 hello_wbm

go语言的基础知识

1、go基本数据类型,整型、浮点、布尔、字符(string)1、双引号, 会识别转义字符2、反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果 package main import ( "fmt" ) func main() { var str1 = "abc\nabc" fmt.Println(str1) str2 := ` package main import ( "fmt" ) func hello() { var n1 float32 = -123...阅读全文

Segmentfault 2020-03-29 16:32:36 houshiqun689