前言 go的 init函数给人的感觉怪怪的,我想不明白聪明的 google团队为何要设计出这么一个“鸡肋“的机制。实际编码中,我主张尽量不要使用init函数。 首先来看看 init函数的作用吧。 init() 介绍 init()与包的初始化顺序息息相关,所以先介绍一个go中包的初始化顺序吧。(下面
1991年 8月 我叫客户端,英文名字 client。 她叫服务端,英文名字 server。 这一年,我们出生了。 是的,我们都是90后。 我爱她,可是她却远在天边。 为了和她可以互诉衷肠,我同时发明了HTTP协议。 一门世界上只有我和她能懂的语言,一种世界上只有我和她能懂的浪漫。 虽然我只能给她
GMP是三个缩写 G : groutine M : Machine 系统线程 P : Processor 处理器   GMP调度就是循环在与P(处理器)绑定的M(系统线程)上寻找可执行的G(协程)      在当前P(处理器)上创建G(groutine)后 , 会把G放入P的本地队列或者全局队列
文章转载自"编程帮",也欢迎大家关注我的开源在线客服项目https://github.com.cnpmjs.org/taoshihan1991/go-fly,演示地址:https://gofly.sopans.com 1. GitHub 镜像访问 这里提供两个最常用的镜像地址: https://g
目录 概述 https 证书的生成 第一步:下载证书生成软件 第二步:创建测试证书 第三步:导出证书 总结 https 证书在 gin 框架中的部署 构建简单的 web 服务 证书转换 改成 https 服务 概述 目前, https 几乎已经是 web 站点的标配了, http 的站点和服
以前为了防止前端密码安全问题,都是对密码进行md5(password + salt)。 有些也会用别的加密方式,但还是会存在撞库,彩虹表等破解常规密码。 因此使用bcrypt加密是一个不错的选择,因为每次加密都会随机salt,每次加密结果都不一样,相对安全性更高些。 下面是一个示例代码,启动一
Cache是一个绝大多数项目会用到的一个技术,说起到缓存可能就联想到 Set、Add、Get、Remove、Clear 这几个方法。那么在.NET Core中微软给我们带来了什么样的缓存体验呢?今天我们就来介绍下”Microsoft.Extensions.Caching.Memory”。由于这个包
前言   .net core来势已不可阻挡。既然挡不了,那我们就顺应它。了解它并学习它。今天我们就来看看和之前.net版本的配置文件读取方式有何异同,这里不在赘述.NET Core 基础知识。 ps:更新版,更新了多种方式实现读取配置文件信息,各位看官结合自己实际情况选择合适的读取方式即可。 实现
在上一篇”拥抱.NET Core系列:MemoryCache 初识”中我们基本了解了缓存的添加、删除、获取,那么今天我们来看看缓存的过期机制。这里和上篇一样将把“Microsoft.Extensions.Caching.Memory”简称为MSCache。MSCache项目MSCache目前最新的
前言 对于缓存我们都已经很熟悉了,缓存分为很多种,浏览器缓存、试图缓存、服务器缓存、数据库缓存等等一些,那今天我们先介绍一下视图缓存和MemoryCache内存缓存的概念和用法: 视图缓存 在老的版本的MVC里面,有一种可以缓存视图的特性(OutputCache),可以保持同一个参数的请求,在N段
关于我 作者博客|文章首发 缓存基础知识 缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能和可伸缩性。 缓存最适用于不经常更改的 数据,生成 成本很高。 通过缓存,可以比从数据源返回的数据的副本速度快得多。 应该对应用进行编写和测试,使其 永不 依赖于缓存的数据。 ASP.NET Cor
  接口限流 按账户/IP/Token限流 定时加载配置 time/rate 原理 time/rate 是go提供的官方限流工具 原理: 令牌桶,以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务 我首先想到的方案初始化定
GO核心编程 简介 go语言特点: go具有垃圾回收机制 从语言层面支持并发,goroutine,高效利用多核,基于CPS并发模型实现(重要特点) 吸收了管道通信机制,实现不同goroutine之间的互相通信 函数可以返回多个值 切片、延时执行defer 继承C语言很多思想,引入包的概念,用于组织
关于我 我的博客|文章首发 开发者的福音,go也支持linq了 坑爹的集合 go在进行集合操作时,有很不舒服的地方,起初我真的是无力吐槽,又苦于找不到一个好的第三方库,只能每次写着重复代码。举个栗子 类 学生{ 姓名 年龄 性别 } 1、现在有10个学生的数组,如果我要统计所有年龄大于20岁的
目录前言AutoStart配置文件使用方法 前言 大家应该都不喜欢一大堆开机自启程序运行吧,不仅拖慢开机速度,而且有些软件也不能刚开机就运行。 例如某些需要网络等环境的软件,这时候等待一段时间再运行是个不错的选择。 有些软件运行需要管理员权限,做成开机自启也稍微会有点麻烦。 因此我写了这个延迟执
Go语言之依赖管理 Go语言的依赖管理随着版本的更迭正逐渐完善起来。 依赖管理 为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决? godep Go语言从v
Hi,大家好。 我是明哥,在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 在线博客:http://g
相信看我文章的文章的童鞋,golang版本已经是1.3版本以上。如果你的版本还停留在1.3以下,那这篇文章可以做为你的提升之法。 go moudle的前世今生 前世-gopath gopath是什么 GOPATH 是什么,相信已经不用我再多说什么了。大家深受摧残多年,应该已经有所体会。在v.1.1
变量 在程序运行过程中,其值可以发生改变的量成为变量 变量存在内存中,在程序运行时用来暂时存储数据 常量 在程序运行过程中,其值不可以发生改变的量成为常量 变量的定义和使用 package main​import "fmt"​func main() {​ //变量定义格式 //
前言 日常任务开放中,我们会有很多异步、批量、定时、延迟任务要处理,go-zero中有 go-queue,推荐使用 go-queue 去处理,go-queue 本身也是基于 go-zero 开发的,其本身是有两种模式: dq:依赖于 beanstalkd ,适合延时、定时任务执行; kq:依赖于