20、日志处理(上):如何设计日志包并记录日志

你好,我是孔令飞,接下来的两讲,我们来聊聊如何设计和开发日志包。 在做Go项目开发时,除了处理错误之外,我们必须要做的另外一件事是记录日志。通过记录日志,可以完成一些基本功能,比如开发、测试期间的Debug,故障排除,数据分析,监控告警,以及记录发生...

Go 语言项目开发实战

21、日志处理(下):手把手教你从 0 编写一个日志包

你好,我是孔令飞。 上一讲我介绍了如何设计日志包,今天是实战环节,我会手把手教你从0编写一个日志包。 在实际开发中,我们可以选择一些优秀的开源日志包,不加修改直接拿来使用。但更多时候,是基于一个或某几个优秀的开源日志包进行二次开发。想要开发或者二次开...

Go 语言项目开发实战

22、应用构建三剑客:Pflag、Viper、Cobra 核心功能介绍

你好,我是孔令飞。这一讲我们来聊聊构建应用时常用的Go包。 因为IAM项目使用了Pflag、Viper和Cobra包来构建IAM的应用框架,为了让你后面学习更加容易,这里简单介绍下这3个包的核心功能和使用方式。其实如果单独讲每个包的话,还是有很多功能...

Go 语言项目开发实战

23、应用构建实战:如何构建一个优秀的企业应用框架

你好,我是孔令飞。今天我们来聊聊开发应用必须要做的那些事儿。 应用开发是软件开发工程师最核心的工作。在我这 7 年的 Go 开发生涯中,我构建了大大小小不下 50 个后端应用,深谙其中的痛点,比如: 重复造轮子。同样的功能却每次都要重新开发,浪费非...

Go 语言项目开发实战

24、Web 服务:Web 服务核心功能有哪些,如何实现

你好,我是孔令飞。从今天开始,我们进入实战第三站:服务开发。在这个部分,我会讲解 IAM项目各个服务的构建方式,帮助你掌握Go 开发阶段的各个技能点。 在Go项目开发中,绝大部分情况下,我们是在写能提供某种功能的后端服务,这些功能以RPC API 接...

Go 语言项目开发实战

25、认证机制:应用程序如何进行访问认证

你好,我是孔令飞,今天我们来聊聊如何进行访问认证。 保证应用的安全是软件开发的最基本要求,我们有多种途径来保障应用的安全,例如网络隔离、设置防火墙、设置IP黑白名单等。不过在我看来,这些更多是从运维角度来解决应用的安全问题。作为开发者,我们也可以从软...

Go 语言项目开发实战

26、IAM项目是如何设计和实现访问认证功能的

你好,我是孔令飞。 上一讲,我们学习了应用认证常用的四种方式:Basic、Digest、OAuth、Bearer。这一讲,我们再来看下IAM项目是如何设计和实现认证功能的。 IAM项目用到了Basic认证和Bearer认证。其中,Basic认证用在前...

Go 语言项目开发实战

27、权限模型:5大权限模型是如何进行资源授权的

你好,我是孔令飞。在开始讲解如何开发服务之前,我先来介绍一个比较重要的背景知识:权限模型。 在你的研发生涯中,应该会遇到这样一种恐怖的操作:张三因为误操作删除了李四的资源。你在刷新闻时,也可能会刷到这么一个爆款新闻:某某程序员删库跑路。操作之所以恐怖...

Go 语言项目开发实战

28、控制流(上):通过iam、apiserver设计,看Web服务的构建

你好,我是孔令飞。 前面我们讲了很多关于应用构建的内容,你一定迫不及待地想看下IAM项目的应用是如何构建的。那么接下来,我就讲解下IAM应用的源码。 在讲解过程中,我不会去讲解具体如何Code,但会讲解一些构建过程中的重点、难点,以及Code背后的设...

Go 语言项目开发实战

29、控制流(下):iam、apiserver服务核心功能实现讲解

你好,我是孔令飞。 [上一讲],我介绍了 iam-apiserver 是如何构建 Web 服务的。这一讲,我们再来看下 iam-apiserver 中的核心功能实现。在对这些核心功能的讲解中,我会向你传达我的程序设计思路。 iam-apiserver...

Go 语言项目开发实战