202003-27 Go 1.14中值得关注的几个变化 HOT Go 1.14的详细变更说明在这里可以查看。整个版本的milestone对应的issue集合在这里。 不过目前Go 1.14在特定版本linux内核上会出现crash的问题,当然这个问题源于这些内核的一个已知bug。在这个issue中有关于这个问题的详细说明,涉及到的Linux内核版本包括:5.2.x, 5.3.0-5.3.14, 5.4.0-5.4.1。本篇博客涉及的代码在这里可以下载。 继续阅读 >
202003-27 Go 常量学习-可视化指南 HOT 一个常量只能在它的声明的作用域内使用。如果你在更内部的作用域内以同样的名字再声明一个常量,那么这个常量仅仅在内部作用域内可以使用,并且在此作用域内将覆盖外部声明的常量。 继续阅读 >
202003-26 学习 Go 协程:详解信道/通道 HOT goroutine 是 Go语言程序的并发执行的基本单元,多个 goroutine 的通信是需要依赖本文的主人公 —— channel 。channel,中文翻译有叫通道,也有叫信道的。以下为了方便,我统一称之为 信道 。 信道,就是一个管道,连接多个goroutine程序 ,它是一种队列式的数据结构,遵循先入先出的规则。 继续阅读 >
202003-26 方便结构体和 map 赋值 HOT 今天我们介绍一个合并结构体字段的库mergo。mergo可以在相同的结构体或map之间赋值,可以将结构体的字段赋值到map中,可以将map的值赋值给结构体的字段。 继续阅读 >
202003-26 在 Gin 框架中使用 JWT 认证 HOT JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0认证的业务场景下。 继续阅读 >
202003-26 分析标准库和优秀项目的接口:Go中接口应该这么定义 HOT 在 Go 语言中,接口定义了一套方法的集合,任何实现这些方法的对象都可以被认为实现了这个接口,这也称作Duck Type。这不像其它语言比如 java,需要预先声明类型实现了某个或者某些接口,这使得 Go 接口和类型变得很轻量级,它解耦了接口和具体实现的硬绑定。显然这是 Go 的开发者深思熟虑的一个决定。 继续阅读 >
202003-26 用Go构建不可变的数据结构 HOT 共享状态[1]是比较容易理解和使用的,但是可能产生隐晦以至于很难追踪的 bugs。尤其是在我们的数据结构只有部分是通过引用传递的。切片就是这么一个很好的例子。后续我会作出更加详细的讲解。 继续阅读 >
202003-25 PHP Opcache的工作原理 HOT PHP项目中,尤其是在高并发大流量的场景中,如何提升PHP的响应时间,是一项十分重要的工作。 而Opcache又是优化PHP性能不可缺失的组件,尤其是应用了PHP框架的项目中,作用更是明显。 继续阅读 >
202003-25 正确地使用Redis的SETNX实现锁机制 HOT setNX,是set if not exists 的缩写,也就是只有不存在的时候才设置, 设置成功时返回 1 , 设置失败时返回 0 。可以利用它来实现锁的效果,但是很多人在使用的过程中都有一些问题没有考虑到。 继续阅读 >
202003-25 Laravel6实现第三方 微信登录 HOT 目前很多的网站中都会存在很多的交互功能,从而降低用户的操作难度,特此带来微信的第三方登录的项目实战功能开发。对于本实例中的开发内容,就不在使用原生的内容,而是直接使用别人写好的封装的类库。 继续阅读 >
202003-24 Git分支自动完成 HOT 命名git分支是我们大多数人都依赖科学的东西。我的分支命名模式通常是{issue number}-short-feature-description,尽管许多开发人员更喜欢以描述开头并以问题结尾。 无论使用哪种模式,具有自动完成功能都可以节省大量时间来键入或复制/粘贴。这是如何为git分支实现自动完成功能! 继续阅读 >
202003-24 MySQL进阶——主从复制 HOT 主从复制的配置,大部分都在主机上,注意查看相关步骤。 这里将主从机的防火墙都关闭是为了更好的演示,实际生产环境中一般不会出现windows主机和linux从机这种情况,因此不应该关闭防火墙,而是根据具体情况配置防火墙规则。 继续阅读 >
202003-23 php开发面试题---Linux常用命令大全 HOT cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中 继续阅读 >
202003-23 mysql性能分析-------profiling和explain HOT MySQL5.0.37版本以上支持了Profiling – 官方手册。此工具可用来查询 SQL 会执行多少时间,System lock和Table lock 花多少时间等等,对定位一条语句的 I/O消耗和CPU消耗 非常重要。 继续阅读 >
202003-23 PHP实现简单RPC HOT RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。远程调用的应用场景极其广泛,实现的方式也各式各样。 继续阅读 >
202003-23 php socket简单原理及实现 HOT socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,连接的一端称为一个socket. 因此socket运行是置少有2个端组成,一个为服务端一个为客户端(客户端可以多个). 继续阅读 >
202003-19 基于pcntl的PHP进程池 HOT PHP多进程编程当前主要有这几种方式, 1>基于pcntl实现多进程,这也是PHP自带的多进程玩法 2>Swoole自己修改PHP内核代码,从而实现多进程,这个看起来比较新 2>Swoole自己修改PHP内核代码,从而实现多进程 inple_fork这个库,实现了多进程和进程池。 继续阅读 >