1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 12:32:21 +00:00

Merge pull request #311 from fuwensun/pr5-1-1f

ch5-1-fix typos
This commit is contained in:
Xargin 2018-08-15 14:24:26 +08:00 committed by GitHub
commit 78b3f19032
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View File

@ -11,7 +11,7 @@ GET /card/:id/name
GET /card/:id/relations
```
可见是否用框架还是要具体问题具体分析的。
可见是否使用框架还是要具体问题具体分析的。
Go的Web框架大致可以分为这么两类
@ -148,9 +148,9 @@ func handleKafka(app *ApplicationContext, w http.ResponseWriter, r *http.Request
因为默认的net/http包中的 mux 不支持带参数的路由所以Burrow 这个项目使用了非常蹩脚的字符串 Split 和乱七八糟的 switch case 来达到自己的目的,但实际上却让本来应该很集中的路由管理逻辑变得复杂,散落在系统的各处,难以维护和管理。如果读者细心地看过这些代码之后,可能会发现其它的几个 handler 函数逻辑上较简单,最复杂的也就是这个 handleKafka。但实际上我们的系统总是从这样微不足道的混乱开始积少成多最终变得难以收拾。
根据我们的经验,简单地来说,只要你的路由带有参数,并且这个项目的 api 数目超过了 10就尽量不要使用 net/http 中默认的路由。在Go开源界应用最广泛的 router 是 httpRouter很多开源的 router 框架都是基于 httpRouter 进行一定程度的改造的果。关于 httpRouter 路由的原理,会在本章节的 router 一节中进行详细的阐释。
根据我们的经验,简单地来说,只要你的路由带有参数,并且这个项目的 api 数目超过了 10就尽量不要使用 net/http 中默认的路由。在Go开源界应用最广泛的 router 是 httpRouter很多开源的 router 框架都是基于 httpRouter 进行一定程度的改造的果。关于 httpRouter 路由的原理,会在本章节的 router 一节中进行详细的阐释。
再来回顾一下文章开头说的,开源界有这么几种框架,第一种是对 httpRouter 进行简单的封装,然后提供定制的 middleware 和一些简单的小工具集成比如 gin主打轻量易学高性能。第二种是借鉴其它语言的编程风格的一些 MVC 类框架,例如 beego方便从其它语言迁移过来的程序员快速上手快速开发。还有一些框架功能更为强大除了 db 设计,大部分代码直接生成,例如 goa。不管哪种框架适合者背景的就是最好的。
再来回顾一下文章开头说的,开源界有这么几种框架,第一种是对 httpRouter 进行简单的封装,然后提供定制的 middleware 和一些简单的小工具集成比如 gin主打轻量易学高性能。第二种是借鉴其它语言的编程风格的一些 MVC 类框架,例如 beego方便从其它语言迁移过来的程序员快速上手快速开发。还有一些框架功能更为强大除了 db 设计,大部分代码直接生成,例如 goa。不管哪种框架适合开发者背景的就是最好的。
本章的内容除了会展开讲解 router 和 middleware 的原理外,还会以现在工程界面临的问题结合 Go 来进行一些实践性的说明。希望能够对没有接触过相关内容的读者有所帮助。

View File

@ -2,5 +2,5 @@
本章将会阐述 go 在 web 开发方面的现状,并以几个典型的开源 web 框架为例,带大家深入 web 框架本身的执行流程。
同时会介绍现代企业级 web 开发面临的一些问题,以及在 golang 中如何面对,并解决这些问题。
同时会介绍现代企业级 web 开发面临的一些问题,以及在 go 中如何面对,并解决这些问题。