KC's Skylight

A father, a programmer and designer.

Go语言传值和深浅复制问题

目录: 1. 一个例子 2. 理解Slice 3. 闭包(closure) 4. 深度拷贝 5. 最佳实践 6. 参考 关于传值还是传引用的问题,在go的调用规范中有提到,在函数调用中是传值的(是否有其他的例外情况,我们后面再来考察),但是在下面的例子中,我们将看到大部分情况下,这句话是好理解的,但是还是会有意外。那么这句话应该怎么理解呢? 先来看看这个例子:...

Golang FAQ

目录: 1. Windows下拉取GitHub私有仓库 1.1) 生成github access token: 1.2) 配置git 1.3) 拉取代码 2. 结构体嵌套定义和初始化 2.1)嵌套定义 2.2)初始化 3. 复制流 3.1)Method...

MySQL问题记录

目录: 1. Select查询表时阻塞 2. 查看RDS系统资源 3. 修改密码的几种方法 方法1: SET PASSWORD命令 方法2: mysqladmin 方法3: UPDATE user 方法4: 丢失root密码时 1. Select查询表时阻塞 表可能被锁。 1 2 3 4 5 6 7...

Jenkins问题记录

目录: 1. Jenkins杀子进程问题 参考: 2. Jenkins SVN SSL错误 3. 安装 git 1.8 4. Jenkins Schedule 1. Jenkins杀子进程问题 从v1.260开始,Jenkins会将构建阶段产生的子进程杀死。所以我们有这样一个需求:先起一个辅助系统,然后运行gradle test进行...

如何查找Linux命令是否存在

目录: 1. 起因 2. 分析 3. 总结 4. 参考 1. 起因 最近在做发布流程。 初期的项目得不到有效的流程保证是常有的事情。但大部分情况下,这不是技术所能解决的。自动化系统发布过程只是流程化/规范化产品开发过程的其中一个方面,但也是最重要的方面之一。 做发布脚本的时候新申请来的机器总是没有得到必要的初始化,并且每台机器的环境可能都会有些不同,所以需要做一些...

Spring Boot基于Tomcat的HTTP和HTTPS协议配置

目录: 1. 生成并安装证书 2. 配置SSL支持 3. 配置HTTP支持 4. 配置HTTP自动跳转到HTTPS 5. 配置部分链接允许http访问 按照官方的说法,Spring Boot无法使用配置同时支持http和https两种协议访问应用。替代方案是可以配置一种协议,然后另外一种协议的支持,通过编码来实现。推荐的方案是使用配置支持https,而写代码支持ht...

SSL协议握手过程

为了便于更好的认识和理解 SSL 协议,这里着重介绍 SSL 协议的握手协议。SSL 协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,但公钥加密技术提供了更好的身份认证技术。 SSL 的握手协议非常有效的让客户和服务器之间完成相互之间的身份认证,其主要过程如下: 1. 单向认证 SSL 协议的具体过程 具体过程大致有以下几步: 客户端的浏览...

Git与Subversion的命令对比表

操作 Git Subversion 复制版本库 git clone svn checkout 提交 git commit svn commit 查看提交记录 git sho...

MySQL实现Sequence及效率对比

MySQL没有Sequence,我们可以用两种方法解决: 做一张独立的表,只含有一个id自增字段,模拟Sequence; 写一个通用的Sequence表,一条记录表示一个Sequence,业务可共用。 我们对这两种情况提供实现和效率测试。 实现过程基于Spring Boot v1.2.5 / MyBatis v3.2 / MySQL v5.1。测试使用JUnit进行并发请求...

Gradle Malformed 错误

此错误在Windows上会出现,Mac上没有出现过。原因是某些文件名编码问题导致。根据文件的位置可能在报错位置上有不同。 解决方法是: 在$GRADLE_HOME\bin\gradle(Windows 下是%GRADLE_HOME%\bin\gradle.bat)配置: 1set DEFAULT_JVM_OPTS="-Dfile.encoding=UTF-8" 出错内容大致如下:...