ARTS 第5周| LeetCode 44 正则表达式| Redis 备份的细节| Golang 回溯记忆化技巧

ARTS ARTS 是陈浩(网名左耳朵耗子)在极客时间专栏里发起的一个活动,目的是通过分享的方式来坚持学习。 每人每周写一个 ARTS:Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。 本周内容 本周的 ARTS 你将看到: 两道 LeetCode 字符匹配题。 关于 Redis 副本 replication 的一些细节。 Go defer 在回溯问题记忆化中的一个小技巧。 文字和视频是否会影响内容的深...阅读全文

Segmentfault 2020-06-18 09:32:39 casmo澎湃哥

鹅厂腾讯会议资深/高级后台开发急招,急速反馈~

高级/资深 视频会议后台开发(北京/深圳) 岗位职责: 会议产品核心系统的研发设计工作;参与制定前后端业务流程、接口协议、文档输出等等。 岗位要求: 本科及以上学历,计算机或相关专业; 三年以上开发经验,扎实的后端基础知识,精通Golang/PHP; 熟悉Linux系统,能独立完成后台系统的开发、部署、维护; 熟悉网络编程,了解TCP/IP、HTTP等工作原理; 精通MySQL或其他类型的数据库,熟悉数据库表的设计; 具有主导或参与即时通讯工具项目经验者优先; 职位...阅读全文

Go语言中文网 2020-06-15 09:54:22 KevinLuuu

Go 每日一库之 casbin

简介 权限管理在几乎每个系统中都是必备的模块。如果项目开发每次都要实现一次权限管理,无疑会浪费开发时间,增加开发成本。因此,casbin库出现了。casbin是一个强大、高效的访问控制库。支持常用的多种访问控制模型,如ACL/RBAC/ABAC等。可以实现灵活的访问权限控制。同时,casbin支持多种编程语言,Go/Java/Node/PHP/Python/.NET/Rust。我们只需要一次学习,多处运用。 快速使用 我们依然使用 Go Module 编写代码,先初始化: $ mkdir cas...阅读全文

Segmentfault 2020-06-18 08:32:34 darjun

34. 图解 Go 语言:静态类型与动态类型

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:http://golang.iswbm.com我的 Github:github.com/iswbm/GolangCodingTime 1. 静态类型 所谓的静态类型(即 static type),就是变量声明的时候的...阅读全文

Segmentfault 2020-06-18 08:32:33 Python编程时光

golang实现正/反向代理服务

1 概念 1.1 正向代理 一种客户端代理技术,用于帮助客户端访问无法直接访问的网络资源,并隐藏客户端IP,常见的场景有***、浏览器HTTP代理 1.2 反向代理 一种服务端代理技术,用于隐藏真实服务端节点,并实现负载均衡、缓存、安全校验、协议转换等,常见的有LVS、nginx 2 实践 2.1 实现一个正向代理服务 2.1.1 基本思路 代理接收客户端请求,复制该请求对象,并根据实际需要配置请求参数 构造新的请求,发送到服务端,并获取服务端的响应内容 接收到响应内容后返回给客户端 2.1.2...阅读全文

51CTO博客 2020-06-14 18:17:39 筑梦攻城狮

Go的context解密

Go中的context包在Go1.7的时候由google贡献引入Go SDK中。在并发的场景下基本都会用到context这个包的功能。 什么是context?中文翻译为“上下文”,具体应用在goroutine中。用作goroutine的控制手段。context 主要用来在各个goroutine之间传递上下文。包括:cancel,timeout等。(个人在开发中用作超时控制,类似:前端一个require但是后端比较繁忙。比如5s无法返给前端response。这样就直接返回timeout并且取消这个...阅读全文

掘金 2020年06月14日 我只想睡觉Zzzz

context 源码完全解析

基本的类型 首先来看的是Context到底是什么?源码中的定义是一个接口,有四个方法。 type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{} } 复制代码四个方法中除了Err()是一个通用的方法外,其他三个方法都各对应一种Context类型。也就是说Context的实际结构体类型主...阅读全文

掘金 2020年06月14日 胡大海

golang面试题:json包变量不加tag会怎么样?

问题 json包里使用的时候,结构体里的变量不加tag能不能正常转成json里的字段? 怎么答 如果变量首字母小写,则为private。无论如何不能转,因为取不到反射信息。 如果变量首字母大写,则为public。 不加tag,可以正常转为json里的字段,json内字段名跟结构体内字段原名一致。加了tag,从struct转json的时候,json的字段名就是tag里的字段名,原字段名已经没用。 举例 通过一个例子加深理解。 package main import ( "encoding/json...阅读全文

掘金 2020年06月14日 9號同学

匿名结构体和匿名字段

/* 匿名结构体和匿名字段 匿名结构体:没有名字的结构体,在创建匿名结构体时。同时创建对象 变量名:=struct { 定义字段 }{ 字段进行赋值 } 匿名字段: 一个结构体的字段没有名字 理解为 如果一个字段没有名字。 那么默认使用类型作为字段名 匿名函数:没有名字的函数,随着定义的时候直接调用 */ package main import "fmt" type student struct { string // 匿名字段 int // 匿名字段 //string 因为字段没有名字。 默认...阅读全文

Segmentfault 2020-06-17 20:32:34 code

golang 逃逸分析_v1.0.0

逃逸分析是golang编译器分析一个对象到底应该放到堆内存上,还是栈内存上 为何要做逃逸分析 因为对一个程序来说,使用栈内存还是堆内存他们的效率差别很大。 栈内存: 操作系统管理内存的分配和释放,不用golang的垃圾回收操心 内存的存储结构类似于数据结构中的栈,读写位置都在栈顶。 栈内存可有效放入cpu的缓存,这样读写效率就比实际内存中少1-2个数量级的时间。 缺点就是不会太大 一般局部变量,函数参数都会放在栈内存中(罗嗦一句:为什么这里使用一般呢,在C语言中,我可以告诉你是一定,但是gola...阅读全文

简书 2020-06-14 11:32:51 郭青耀

golang面试题:json包变量不加tag会怎么样?

image 问题 json包里使用的时候,结构体里的变量不加tag能不能正常转成json里的字段? 怎么答 如果变量首字母小写,则为private。无论如何不能转,因为取不到反射信息。 如果变量首字母大写,则为public。 不加tag,可以正常转为json里的字段,json内字段名跟结构体内字段原名一致。 加了tag,从struct转json的时候,json的字段名就是tag里的字段名,原字段名已经没用。 举例 通过一个例子加深理解。 package main import ( "encodi...阅读全文

开源 DEVOPS CI/CD 自动构建和自动部署系统

一款基于 DevOps 理念的开源部署系统。以项目/应用(服务)为中心,与构建系统(Jenkins,可选)结合,提供完善的持续集成(CI)、持续交付(CD)解决方案。项目管理微服务架构场景下的项目管理功能,"项目" 指业务逻辑的项目,可理解为多个应用的集合。应用管理项目与应用是 1 对 N 的关系,更好地解决微服务场景的多个不同应用的拆分方式。自定义环境自定义开发、测试、预发布、线上以及其他环境,满足不同场景下的部署需求。应用与部署环境是 1 对 N 的关系。自定义服务器分组某个具体部署环境下,...阅读全文

简书 2020-06-14 11:32:50 AI智享未来

Go mod 开发中常用玩法 -- 开发必备

什么是go mod go modules 是 golang 1.11 新加的特性。 那么问题来了,它解决了什么问题,其实核心的问题就是,他可以没有GoPath这个概念,所以很方便,但是当你不会使用的时候,你会觉得它很不好用。 ​ PS:go.mod文件一旦创建后,它的内容将会被go toolchain全面掌控。go toolchain会在各类命令执行时,比如go get、go build、go mod等修改和维护go.mod文件。 简单使用 比如,现在有一个需求是,我们要创建一个新项目,项目名字...阅读全文

掘金 2020年06月13日 AnthonyDong

Go 包管理机制深入分析

前言随着 Go 语言的深入使用,其依赖管理机制也一直是各位 Gopher 热衷于探讨的话题。Go 语言的源码依赖可通过 go get 命令来获取,但自动化程度不高,于是官方提供了 Dep 这样的自动化批量管理依赖的工具。虽然 Go 语言的依赖管理在很多方面还是不如人意,但整个体系正在日趋完善,本篇就将从最基本的依赖管理场景出发,一同探讨 Go 语言依赖管理的一些最佳实践。Go 依赖管理的基本思路在 Go 语言中,我们通过 go get 命令将 GitHub 或者 Google Code 上的代码...阅读全文

掘金 2020年06月12日 JFrog杰蛙中国

yaml解析踩坑实录——是谁吃掉了我的匿名变量

本文记录了本人在做yaml解析时踩的坑,谨以此纪念我在这几个小时里挠掉的头发。 情景再现 昨天发现之前改的一个yaml文件解析出了问题:我需要从一个yaml配置文件里读取内容,然后解析到一个struct中。但实际运行时发现,有一部分参数没有解析出来,是空的。 看看代码(注:以下都是把我的实际问题做了抽象和简化之后的代码): 我的yaml配置文件: kind: PersonalInfo name: he age: 18 复制代码 接收配置的结构体定义: type Config struct { T...阅读全文

掘金 2020年06月12日 flappybird