实战组合式设计

需求 leetcode 上有一道关于强密码校验器的练习题,如下所述: 一个强密码应满足以下所有条件: 由至少6个,至多20个字符组成。 至少包含一个小写字母,一个大写字母,和一个数字。 同一字符不能连续出现三次 (比如 "...aaa..." 是不允许的, 但是 "...aa...a..." 是可以的)。 编写函数 strongPasswordChecker(s),s 代表输入字符串,如果 s 已经符合强密码条件,则返回0;否则返回要将 s 修改为满足强密码条件的字符串所需要进行修改的最小步数(...阅读全文

2021-03-28 21:32:39 _张晓龙_
阅读:746 评论:0

内存缓存-go

GO 内存缓存 CPU 有缓存:L1,L2,L3 不同等级缓存执行速度不一样,空间也不一样。 内存缓存:有栈有堆,栈速度要快很多,但一般用来存储小对象以及作用域函数内,堆大用于大对象以及全局对象等,但堆需要GC回收(三色标记法),存在stop the word 磁盘缓存:空间大,读取慢。 程序 很多时候我们为了缩短单次请求的时间,就需要去分析请求在哪一步耗时比较大,一般越靠近应用层优化效果越大,后端程序就是请求到达路由解析到返回结果这一步骤了。 1.直接读mysql,这一般是后台管理员的增删改查...阅读全文

2021-04-08 23:32:32 Best博客
阅读:2308 评论:0

Go的切片(进阶版)

带着设计的思维去学习! 引入:为什么要引入切片? 因为数组真的不好用啊,啊sir!你看看它,声明的时候就要说明容量,容量到了还不能自动扩容,那剩下的不就只有一个按下标遍历的功能了吗? 所以我们想要的是什么呢?是不需要声明容量,并且自动扩容,支持增删等操作的一个数据结构,其他语言里就有这样的东西,比如Python里的List,C++里的Vector,JAVA里的ArrayList。 如果我们自己实现,需要怎么做呢?带你回忆一下数据结构课教的东西 动态数组这个数据结构包含什么东西呢?首先,动态数组也...阅读全文

2021-04-09 17:32:32 Andrew_0479
阅读:462 评论:0

JANUSEC应用网关1.0发布,提供一站式安全交付能力

本文首发微信公众号:数据安全架构与治理01 背景简介在2018年的时候,笔者发布了一篇:基于Golang打造一款开源的WAF网关 ,那会儿是JANUSEC应用网关刚刚在Github开源,构建了一款全新的应用网关的基本框架。初始版本虽然功能不多,却是按照《数据安全架构设计与实战》中介绍的最佳实战来进行打造的,或者说比《数据安全架构设计与实战》成书的时间还要早,因为我是先做开源产品,后来才写书的(他们的确一脉相承,都是过去十几年安全最佳实践经验的总结)。随后,是近三年的不断改进,但版本长期维持在0....阅读全文

2021-04-10 06:33:11 _U2_
阅读:2283 评论:0

Golang后端面试汇总-002

micro服务发现 image 服务的注册与发现是微服务必不可少的功能,这样系统才能有更高的性能,更高的可用性。go-micro框架的服务发现有自己能用的接口Registry。只要实现这个接口就可以定制自己的服务注册和发现。 go-micro在客户端做的负载,典型的Balancing-aware Client模式。 参考链接: https://www.cnblogs.com/li-peng/p/9689786.html mysql底层有哪几种实现方式 1 MySQL 的常用引擎 a InnoDB...阅读全文

2021-04-11 14:32:32 流雨声
阅读:548 评论:0

golang 一份漂亮的Dockerfile

对于dockerfile而言,何为完美? 我认为应该满足以下三点: 体积小 构建快 够安全 话说不说,直接上拿走可用的Dockerfile。 FROM golang:1.13.5-alpine3.10 AS builder WORKDIR /build RUN adduser -u 10001 -D app-runner ENV GOPROXY https://goproxy.cn COPY go.mod . COPY go.sum . RUN go mod download COPY . . ...阅读全文

2021-04-12 00:32:34 陈光岚_强化班
阅读:894 评论:0

Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第二篇(内附开发 demo)

系列云原生 API 网关,gRPC-Gateway V2 初探Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇鉴权微服务数据持久化使用 Docker 快速本地搭建 MongoDB 4.4.5 环境拉取镜像docker pull mongo:4.4.5 # .... # Digest: sha256:67018ee2847d8c35e8c7aeba629795d091f93c93e23d3d60741fde74ed6858c4 # Status: Imag...阅读全文

2021-04-15 10:52:34 mb6077a82612db2
阅读:245 评论:0

go设计模式之策略模式浅谈

### 策略模式 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换 ### 策略模式与状态模式的区别联系 查看知乎上的一篇文字[状态模式和策略模式的区别与联系](https://www.zhihu.com/question/23693088) 本文也是参考这篇文章的想法,通过go语言翻译出来,如有不合适,请找知乎冤大头,哈哈 ### 与状态模式类似 本质上讲,策略模式和状态模式做得是同一件事:去耦合。怎么去耦合? 就是把干什么(语境类)和怎么干(策略接口)分开,互...阅读全文

阅读:1867 评论:0

go module 引入本地包的问题

问题来源:自己写了一个小框架,想单独放到项目外面方便多项目引入使用。但是放到“$GOPATH/pkg/mod”下不能直接用,各种报错,后经过各种试验最终编译通过,总结下来就以下几点,分享给大家。项目是放到“project”文件夹下的,想要引入的包是“frame”,这两个文件夹可以各自在计算机磁盘任意位置。该文章使用go版本号1.16.5/*项目文件中的"go.mod"文件:module projectgo 1.16require frame v1.0.0replace frame v1.0.0 ...阅读全文

2021-06-09 16:56:33 jiangjie
阅读:2341 评论:0

gRPC,爆赞

**原文链接:** [gRPC,爆赞](https://mp.weixin.qq.com/s/1Xbca4Dv0akonAZerrChgA) gRPC 这项技术真是太棒了,接口约束严格,性能还高,在 k8s 和很多微服务框架中都有应用。 作为一名程序员,学就对了。 之前用 Python 写过一些 gRPC 服务,现在准备用 Go 来感受一下原汁原味的 gRPC 程序开发。 本文的特点是直接用代码说话,通过开箱即用的完整代码,来介绍 gRPC 的各种使用方法。 代码已...阅读全文

2021-10-12 20:42:28 yongxinz
阅读:1168 评论:1

生产环境中推荐使用的一款服务器性能监测工具——WGCLOUD

在我们项目的生产环境,会涉及到各种资源使用,比如服务器性能、各种应用、服务接口、数据源等,我们迫切想把这些资源都监测起来,发现异常时候可以收到告警通知,降低故障时间 我们项目里用的[WGCLOUD监控系统](http://www.wgstart.com),运行非常稳定,它是一款集成度较高的分布式运维监控系统,具有易部署、易上手使用、轻量、高效等特点,server端基于springboot开发,agent端使用go编写。核心模块包括:主机系统信息监控,CPU监控,CPU温度监控,内存监控...阅读全文

2021-10-29 16:49:02 tianshiyeben
阅读:1547 评论:0

Go 日常开发常备第三方库和工具

![](https://tva1.sinaimg.cn/large/008i3skNly1gvyvycad0ej30rs0rsta4.jpg) 不知不觉写 `Go` 已经快一年了,上线了大大小小好几个项目;心态也经历了几轮变化。 因为我个人大概前五年时间写的是 `Java` ,中途写过一年多的 `Python`,所以刚接触到 Go 时的感觉如下图: ![](https://tva1.sinaimg.cn/large/008i3skNly1gvywcqamm1j30ng0l6did....阅读全文

2021-11-02 11:26:56 crossoverJie
阅读:2476 评论:0

golang 解决下载文件名乱码 Safari浏览器下载文件名乱码

一开始的写法: `c.Header("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", url.QueryEscape(showFileName)))` 能够兼容大多数浏览器,部分浏览器文件名还是会乱码,比如iPhone的Safari浏览器 终极写法: `c.Header("Content-Disposition", fmt.Sprintf("attachment; filename*=utf...阅读全文

阅读:2083 评论:3

SQL审核 | SQLE 如何开发一条自定义的规则

>作者:Jason > >就职于捷信消费金融有限公司,担任 DBA 工作。先后从事过 Oracle 、Mongo 、MySQL 的 DBA ,以及大数据 ETL 的开发工作。对 NEWSQL 以及云原生分布式数据库具有浓厚的兴趣爱好。 > >本文来源:原创投稿 > >*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 > --- SQLE 是由上海爱可生信息技术股份有限公司 开发并开源,支持SQL审核、索引优化、事前审核、事后审核、支持标准化...阅读全文

2022-04-12 10:39:55 SQLE
阅读:955 评论:0

go Dijkstra算法 leetcode 743

# go Dijkstra算法 Dijkstra算法可以计算带权图上某个点k,到其他点的最短路径,思路是bfs,全局维护一个distance表,distance[i] 表示节点k到节点 i 的最短路径,,每次bfs的起点是j,distance[j] = min(distance),直到bfs结束,为了每次找bfs的起点j,还需要用上[优先队列](https://studygolang.com/articles/35556) ## code ```go package main ...阅读全文

2022-05-12 16:25:21 letterbeezps
阅读:1311 评论:0

PowerWeChat 微信SDK 介绍

## 产品介绍 PowerWechat是一款全覆盖微信开发接口,基于Golang的开源项目。您只需安装一次Power WeChat SDK,就可以对接企业微信,小程序,公众号,支付等,微信的开发功能接口。同时我们提供了丰富的文档教程和辅助工具,帮助您轻松使用微信的接口功能。 ## 快速上手 ```go go get -u github.com/ArtisanCloud/PowerWeChat ``` 示范:初始化实例对象,调用小程序的授权登陆接口 ```go ...阅读全文

2022-05-17 02:59:28 Matrix-X
阅读:1362 评论:0

ZTool一款Go语言非常好用开发工具集

# 官方文档地址->:[文档地址](https://termites.gitee.io/zbook-blog) # 一、概述 **ZTool是在上个gotool的基础上延伸过来的,因为gotoo这个项目中间存在很多第三方库的依赖,然而第三方库停止更新,中间存在很多bug没有维护,造成工具包中间同样存在很多问题** **最终经过考虑,停止维护gotool重新开一个工程,ztool不进行任何的第三方库依赖,进行开发。同时经过两年多的实际项目开发总结,将业务底层代码抽离,抽出了由,字符串、时...阅读全文

2022-06-13 10:19:18 druidcaesa
阅读:1380 评论:0