Go服务开发高手课

Go服务开发高手课 / 青铜上王者,攻克Go开发难题

徐逸 头部大厂资深 Go 技术专家、前腾讯资深工程师

  • 课程介绍
  1. 在线阅读:开篇词|如何成为Go服务开发高手?

    高手不是一蹴而就的奇迹,而是稳定持续地变强。让我们踏上Go服务开发高手的修炼之旅,一同迎接更广阔的未来!

  2. 01|性能优化流程:刚开始做性能优化从何入手?

    很多研发刚开始接触服务性能优化工作时,常常无从下手,其中一个痛点就是对性能优化流程不清晰,这节课我们就来聊聊这个话题。

  3. 02|工具使用:三大利器帮你迅速优化性能瓶颈

    工欲善其事,必先利其器。这节课我们来学习常见的Golang性能优化工具,掌握了这些工具,我们就能更快定位到代码优化点进行优化。

  4. 03|单机吞吐优化(一):无需硬件升级也能提升吞吐

    我们今天就来看看不提升单机CPU和内存规格的前提下,有哪些常用的高性能技巧。

  5. 04|单机吞吐优化(二):高性能数据处理三板斧

    今天我们就来聊聊对于CPU和内存瓶颈,有哪些常用的高性能数据处理技巧。只要能够灵活运用这些技巧,我们就能降低单个请求对CPU和内存资源消耗,提升单机吞吐。

  6. 05|单机吞吐优化(三):科学复用对象和协程资源

    过资源复用,我们可以减少Golang运行时开销,让更多的 CPU 资源能够被用于处理我们的业务逻辑。

  7. 06|并发等待:如何降低实时系统的响应延时?

    今天我们会学习在并发等待场景里大显身手的关键技术,也就是 WaitGroup 类型以及 errgroup 包。

  8. 07|并发安全:如何为不同并发场景选择合适的锁?

    今天我们会从一个本地缓存数据结构的设计触发,在逐步对其进行设计优化的过程中,带你学习Golang锁和atomic包的知识。

  9. 08|并发map:百万数据本地缓存,如何降延时减毛刺?

    这节课,我们会以大规模数据缓存的数据结构设计要点为例,带你掌握sync.Map类型以及针对map的GC优化技巧。

  10. 09|网络编程:如何进行网络IO编程降消耗,提吞吐?

    这节课我们将会学习网络编程相关的核心知识,包括网络IO模型、epoll技术和Golang底层网络模型的原理。

  11. 10|网络通信:不改业务代码,如何降低延时?

    今天我就来聊聊如何在不改业务代码的情况下,降低服务调用的IO延时。

  12. 11|数据库:分库分表,没有用户id怎么分?

    今天我们就来聊聊,在高并发读写场景,如何从架构层面来优化数据库的读写性能。

  13. 12|分布式缓存:大促抢购,不知热点咋防热Key?

    今天这节课,我们以大促抢购商品详情页的缓存场景为例,带你梳理缓存的热Key问题以及常用解决方案。

  14. 13|分布式缓存:大Key更新,拆分大Key如何防脏读?

    在面对高并发的挑战时,我们不仅要关注热Key问题,还必须关注另一个可能影响Redis性能的因素——大Key问题。

  15. 14|本地缓存:缓存存不下又不能回源怎么破?

    今天我们就来聊聊,在本地缓存全量数据时,如何处理缓存加载、更新以及数据量过大的问题。

  16. 15|项目拆分:业务逻辑复杂,如何拆分服务让协作清晰有序?

    对于微服务架构,我们除了要熟悉常用的微服务技术栈之外,还有一个极为重要的部分,那就是如何进行微服务拆分。

  17. 16|目录规范:几万行的大文件,如何重构目录结构?

    今天我们会用分层架构的思想,带你将一个包含订单、商品、用户业务逻辑,有好几万行代码的大文件,一步步重构成一个合理的项目目录结构。

  18. 17|设计原则和模式:功能持续迭代,如何减少改动?

    今天我们将以一个个需求的形式,带你体会在做需求的过程中,代码设计原则和设计模式是如何在Golang项目中应用的。

  19. 18|函数设计:重复编写相似函数,怎样实现逻辑复用?

    今天,我就以实现一个求最大值的函数为例,在优化这个函数实现的过程中,带你了解反射和泛型知识。

  20. 19|代码陷阱:最易导致程序出错的四类代码坑

    今天的课程里,我将带你深入剖析 Go 编程中常见的四类代码坑。提前掌握这些代码坑,能帮助你更好地理解和规避这些问题,提升代码的可用性。

  21. 20|日志和错误码:如何快速定位线上问题?

    为了快速定位线上问题,我们需要充分了解在日志打印与错误码设计方面应当遵循的关键要点,这节课我们就来探讨这一问题

  22. 21|单元测试:如何mock外部依赖并提升覆盖率?

    在今天的课程里,我们就来聊聊单元测试的相关知识,以及 Go 语言中用于单元测试的工具。

  23. 22|超时和重试:如何提升高并发重要请求的成功率?

    今天呢,咱们就先来聊一聊,在这样的高并发场景下,下游访问偶尔响应时间变得很长时,我们究竟应当采取哪些措施,才能尽可能地确保我们的服务始终保持稳定且可用。

  24. 23|熔断和降级:下游服务大量报错,如何快速止损?

    今天呢,我们就来聊一聊,当下游服务因过载等原因而导致大量报错时,作为上游服务,有哪些行之有效的方法能帮我们快速止损。

  25. 24|限流:不用Redis,如何搞定高并发低延时服务限流?

    倘若我们自身作为其他服务的下游,在面对可能出现的突发流量时,怎样才能有效避免自身服务陷入过载状态呢?

  26. 25|隔离:订单核心流程总被干扰,如何隔离保成交?

    今天这节课,我们就来聊一聊,如何巧妙地运用故障隔离策略,来提升我们服务的稳定性,避免影响到像订单处理这样的核心业务流程。

  27. 26|灰度发布:新功能上线如何有效控风险?

    这节课,我们将从发布流程入手,学习了不同的部署策略以及从业务维度进行灰度的几种常用方式。

  28. 思考题答案集锦

    这节课我们把之前课程的思考题答案统一发布,希望能给你提供参考,查漏补缺。

  29. 结束语|以终为始,持续成长

    在这即将暂别的时刻,我想和你分享一下后续的学习方向以及相应的学习方法,希望能为你在技术道路上的持续前行提供助力。

  30. 结课测试|来赴一场满分之约吧

    为了帮你检验自己的学习成果,我特意准备了一套结课测试题,快来挑战吧。

课程介绍

你将获得 直观易学,丰富案例+大量代码 即学即用的 20 + 调优技巧 10 + 可维护与稳定性案例解析 一线大厂的高可用系统最佳实践 讲师介绍 课程介绍 Go 语言容易上手,但在实践中想真正用 Go...

你将获得

  • 直观易学,丰富案例+大量代码
  • 即学即用的 20 + 调优技巧
  • 10 + 可维护与稳定性案例解析
  • 一线大厂的高可用系统最佳实践

讲师介绍


课程介绍

Go 语言容易上手,但在实践中想真正用 Go 做好服务开发并不容易,常见的困惑包括后面这些:

  • 虽然知道一些用协程做并发处理的技巧,但不懂原理,面对高并发延时问题往往不知所措。
  • 碰到复杂性能任务,不知道该如何快速定位性能瓶颈,也不了解编码之外,如何从框架和架构层面做优化。
  • 项目越来越复杂,代码也越发混乱,却不知如何维护、合理拆分。
  • 对保障服务稳定性的 Go 编码技巧和架构、流程手段一知半解。
    ……

为此,我们邀请徐逸老师开设这门课程。他将结合自己在一线开发积累的丰富经验,带你掌握解决服务性能、代码维护性、稳定性方面实际问题的能力,助你成为 Go 服务开发领域的高手。

整门课程分为三个核心模块。

第一章:高性能实践
高并发场景下对性能有着极致要求,需要从多个关键方面进行优化。这一章节我们学习服务性能优化流程、性能优化工具、高性能编码和架构技巧等,让你在高并发场景下如鱼得水,轻松应对各种性能挑战。

第二章:代码可维护实践
代码可维护是软件长期发展的关键。第二章我们将学习 Go 语言中实现维护性强的项目的各种实践,包括项目拆分、目录结构设计、常用的设计原则和设计模式、函数设计等。让你打造出易于扩展、容易理解的高质量软件系统。

第三章:服务稳定性实践
软件系统的稳定、可靠也至关重要。第三章包含编码、架构和流程 3 个方面,我们将掌握 Go 编程中容易踩的坑和编码规范,并学习如何从架构和流程上保证服务的稳定性(包括熔断、降级、限流、隔离、灰度发布等)。


课程目录


订阅须知