GithubHelp home page GithubHelp logo

micro-go-book's Introduction

Go语言高并发与微服务实战

近年来云原生技术发展迅猛,帮助开发者在云上快速和频繁地构建、发布和部署应用,以提高开发效率和快速定位故障。

微服务作为开展云原生技术落地的核心,它将复杂的单体应用按照业务划分并进行有效地拆分,每个微服务都可以进行独立部署和开发,大大提升了应用开发效率。Go语言作为新生代的编译型编程语言,具备语法简单、高并发性能良好和编译速度快等特点,是微服务架构落地实践的绝妙利器。

本书围绕云原生、微服务和Go语言,介绍如何通过Go语言进行微服务架构开发与实践。旨在帮助读者深入理解微服务架构并使用Go语言快速加入到微服务开发中。

环境搭建

golang 安装

本书基于的 Go 版本为 1.12.4,使用 go mod 管理依赖。具体使用可参见本书基础部分。

setup

go mod tidy

Q&A

如有问题,可在 链接 提出 issue。

micro-go-book's People

Contributors

cangwu avatar keets2012 avatar ztelur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

micro-go-book's Issues

项目运行

没有在ch8-config文件夹下发现有 config-service项目

令牌实现

请问令牌相关的方法是在哪里实现的呢?
有点晕

11章代码问题

	var tokenService service.TokenService
	var tokenGranter service.TokenGranter
	var tokenEnhancer service.TokenEnhancer
	var tokenStore service.TokenStore
	var userDetailsService service.UserDetailsService
	var clientDetailsService service.ClientDetailsService
	var srv service.Service


	tokenEnhancer = service.NewJwtTokenEnhancer("secret")
	tokenStore = service.NewJwtTokenStore(tokenEnhancer.(*service.JwtTokenEnhancer))
	tokenService = service.NewTokenService(tokenStore, tokenEnhancer)

这里的定义感觉不太好,
service.NewJwtTokenStore(tokenEnhancer.(*service.JwtTokenEnhancer))
这里的形参应该定义成接口,而这里声明部分使用了接口声明,
然后NewJwtTokenEnhancer以后传给接口变量,最后传给NewJwtTokenStore做实参的时候又将接口类型转换成结构体
规范写法应该在NewJwtTokenStore接收的地方就是接口
这样写让看代码的人感觉结构不清晰

勘误:反射

ch4-feature/reflection/reflection.go
func (hero *Hero) Run() string {
fmt.Println("I am running at speed " + string(hero.Speed))
return "Running"
}

应该改为
fmt.Println("I am running at speed ", hero.Speed)

同时书中81页的预期输出
I am running at speed d
应改为
I am running at speed 100

13章的token认证服务代码里面有个interface的小坑

这行的语句
tokenService.tokenEnhancer != nil
这句可能会有个坑,关于Interface跟nil做比较,可能得先转换才能做比较
tokenService.tokenEnhancer.(*JwtTokenEnhancer) != nil

举个例子:

func main() {
	var a1 *a

	b := test{t1:a1}
	fmt.Println(b.isT1())
}

type test struct {
	t1 test1
}
func (this *test)isT1() bool {
	return this.t1 == nil
}

type test1 interface {
	t()
}
type a struct {}
func (this *a)t()  {}

以上代码输出false,但是吧
this.t1 == nil 改成
this.t1.(*a) == nil
后输出true

Gin中间件问题

ch5-web/gin/main.go中AuthMiddleWare函数的第3行check(token), 编译器无法解析check函数

书评

想请问作者觉得这本书值得看吗 关于这本书看到了一些好评也看到了不少中评

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.