首页
学习
活动
专区
工具
TVP
发布

网管叨bi叨

专栏作者
272
文章
398751
阅读量
33
订阅数
Go 程序里 if else 分支太多?试着用策略模式治理一下吧
上篇文章我给大家分享了设计模式中的模版模式,给大家讲了用模版模式在项目开发时提炼流程、减少重复开发的技巧。同时,在上一篇文章我也分享了我总结的一个暴论,那就是“模板、策略和职责链三个设计模式是解决业务系统流程复杂多变这个痛点的利器”。
KevinYan
2023-01-03
4930
Go学设计模式-程序流程要动态切换?用这个模式写更丝滑
上篇文章我给大家分享了设计模式中的模版模式,给大家讲了用模版模式在项目开发时提炼流程、减少重复开发的技巧。同时,在上一篇文章我也分享了我总结的一个暴论,那就是“模板、策略和职责链三个设计模式是解决业务系统流程复杂多变这个痛点的利器”。
KevinYan
2023-01-03
4250
用Go学设计模式-提炼流程,减少重复开发就靠它了!
大家好,我是网管,今天继续来给大家更新设计模式系列的文章,之前已经把四种建造型的设计模式更新齐全啦,没有看过的小伙伴可以通过点击上面和文章尾部的系列合集链接,进行查看。
KevinYan
2023-01-03
4130
Go Gin框架请求自动验证和数据绑定,看完这篇就会用了
之前做项目基本上公司是用 gRPC 和 echo 这两个框架的组合,后来 Gin 框架在Go圈越来越流行,陆续我在公司接触到的项目也开始有人用 Gin 框架开发了。
KevinYan
2023-01-03
2K0
上次的问题解决啦,重新送上Go ORM 单元测试全流程讲解
在上次发布的文章《在项目里怎么给 GORM 做单元测试》中对 ORM 的 Update 操作的测试中,因为 ORM 库每次做更新操作时,都会针对updated_at字段进行自动更新,导致我们在写Mock的时候没办法精致匹配这个字段的值,这个问题也就作为一个未解决的问题在文章中发布了出去。
KevinYan
2022-05-23
7420
在项目里怎么给 GORM 做单元测试
在 Go 单元测试这个系列的第二部分 数据库的Mock测试 中我们介绍了用 go-sqlmock 给数据库的 CRUD 操作做Mock 测试的方法,不过里面只是讲解了一下怎么对原生的database/sql执行的 SQL 进行 Mock 测试。
KevinYan
2022-05-23
1.6K0
用 Go 学算法--归并排序
今天继续基础排序算法的图解和Go 代码实现,上次我们分享了《用Go学算法--快速排序》,这次分享一个时间复杂度为*** 诶,时间复杂度多少先保密,文末会有分析。这次分享的排序算法是—归并排序(Merge Sort)
KevinYan
2022-05-23
7190
Go 新版1.18的安装配置以及对老项目的兼容
最近 Go 支持范型的新版本 1.18 已经发布了,那怎么在我们的电脑上安装和配置 Go 1.18 呢,以及假如我有一些非常老的都没有用 Go Modules 管理依赖的项目升级到 1.18 后能兼容吗,今天给大家一一解惑。
KevinYan
2022-04-06
1.5K0
图解算法基础--快速排序,附 Go 代码实现
很多面试题的解答都是以排序为基础的,如果我们写出一个 O( ) 的算法,大概率要被挂,今天写个快排的基础文章,后面看情况再把归并和堆排序写一写,至于选择排序、冒泡排序这种时间复杂度高的就不写了,有兴趣的可以找书自己看一下。
KevinYan
2022-04-06
7010
Go 函数的 Map 型参数,会发生扩容后指向不同底层内存的事儿吗?
最近跟同事做项目,由于要在函数里向一个 Map 中写入不少数据,这个 Map 是作为参数传到函数里的。他问了我一个问题: “如果把 Map 作为函数参数传递,会不会像用 Slice 做参数时一样诡异,是不是一定要把 Map 当成返回值返回才能让函数外部的 Map 变量看到这里添加的数据”?
KevinYan
2022-04-06
8290
Go语言程序设计(一)基础类型和复合类型
最近在读《Go 语言程序设计》这本书想通过看书巩固一下自己的基础知识,把已经积累的点通过看书学习再编织成一个网,这样看别人写的优秀代码时才能更好理解。当初工作中需要使用 Go开发项目时看了网上不少教程,比如 uknown 翻译的《the way to go》看完基本上每次使用遇到不会的时候还会再去翻阅,这次把书中的重点还有一些平时容易忽视的Go语言中各种内部结构(类型、函数、方法)的一些行为整理成读书笔记。
KevinYan
2022-02-10
3220
微服务难点剖析 | 服务拆的挺爽,问题是日志该怎么串联起来呢?
现在微服务架构盛行,很多以前的单体应用服务都被拆成了多个分布式的微服务,以解决应用系统发展壮大后的开发周期长、难以扩展、故障隔离等挑战。
KevinYan
2022-02-09
5200
好棒,测试妹子都能看懂的Jenkins Docker安装教程
最近团队出了个线上BUG,导致了几个用户的订单不对,因为发现的及时,客服那边还没有接到投诉就修正过来了。所以就想贿赂测试妹子这次BUG能不能不往上报,要不然我还得写报告、复盘啥的。本以为一顿饭能搞定,谁知测试妹子不吃饭,让我帮她个忙......。
KevinYan
2021-12-20
8380
浅析AES和RSA加密算法的区别和适用场景
信息数据传输的安全一直都是个很重要的话题,从刚开始当程序员时错以为MD5、SHA1这些哈希算法就是加密算法,到后来慢慢接触对称加密、非对称加密这些概念,再到对接各种大开发平台接口的时候看到他们通过 RSA 进行签名配合 AES 加密报文这些方式防止接口参数被篡改和信息泄露。今天就简单的梳理一下两种加密算法的区别和各自适用的场景。
KevinYan
2021-12-07
1.3K0
gRPC基础--Protobuf编码格式详解
Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,用于描述一种轻便高效的结构化数据存储格式,并于2008年对外开源。Protobuf可以用于结构化数据串行化,或者说序列化。它的设计非常适用于在网络通讯中的数据载体,很适合做数据存储或 RPC 数据交换格式,它序列化出来的数据量少再加上以 K-V 的方式来存储数据,对消息的版本兼容性非常强,可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。开发者可以通过Protobuf附带的工具生成代码并实现将结构化数据序列化的功能。
KevinYan
2021-12-07
4.8K0
Go的atomic.Value为什么不加锁也能保证数据线程安全?
有些朋友可能没有注意过,在 Go(甚至是大部分语言)中,一条普通的赋值语句其实不是一个原子操作。例如,在32位机器上写int64类型的变量就会有中间状态,因为它会被拆成两次写操作(汇编的MOV指令)——写低 32 位和写高 32 位,如下图所示:
KevinYan
2021-11-18
1K0
用手写一个工具的过程讲清楚Go反射的使用方法和应用场景
今天来聊一个平时用的不多,但是很多框架或者基础库会用到的语言特性--反射,反射并不是Go语言独有的能力,其他编程语言都有。这篇文章的目标是简单地给大家梳理一下反射的应用场景和使用方法。
KevinYan
2021-11-01
8620
Google 的 “行星级” cron 系统
最近翻看了一些 Google 的老文章/论文,发现 Google 有不少系统的设计文上都写着 planet scale,行星级,口气那是真的大。仔细想想,FAANG 这样能把生意做到全球的互联网公司,除了这五家,也没几家其它的了,人家确实有吹行星级的资本着实羡慕。
KevinYan
2021-09-24
8160
Go应用中优雅处理Error的几个技巧
Go语言很强大并且现在也十分流行 — 许多项目都是用Go语言来实现的,如Kubernetes。Go语言的一个有趣特性是它的多值返回功能提供了一种与其他编程语言不同的错误处理方法。Go将error视为具有预定义类型的值,其本身是一个interface类型。然而,编写大型应用时需要有包含更多上下文信息的error才有价值,而不仅仅是一个值。本文我们将探讨如何封装Go的error类型以在应用程序中带来更大的价值。
KevinYan
2021-09-24
1K0
Goland 这些实操技巧,你可能还不会!
工欲善其事必先利其器。对于开发工程师同样如此,一个合适的开发工具能够有效提升我们的开发效率和定位问题的能力。
KevinYan
2021-09-24
6730
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档