1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-29 16:22:21 +00:00

ch6 移到 ch5

This commit is contained in:
chai2010 2018-06-08 22:48:05 +08:00
parent e7e8c4543b
commit 45970e7b59
23 changed files with 27 additions and 31 deletions

View File

@ -41,15 +41,14 @@
* [4.6. Protobuf扩展(TODO)](ch4-rpc/ch4-06-pb-option.md)
* [4.7. 基于pb的rpc定制(TODO)](ch4-rpc/ch4-07-pb-rpc.md)
* [4.8. 补充说明(TODO)](ch4-rpc/ch4-08-faq.md)
* [第五章 这是一个坑(TODO)](ch5-wtf/readme.md)
* [第六章 Go和Web](ch6-web/readme.md)
* [6.1. Web开发简介](ch6-web/ch6-01-introduction.md)
* [6.2. Router请求路由](ch6-web/ch6-02-router.md)
* [6.3. Middleware中间件](ch6-web/ch6-03-middleware.md)
* [6.4. Validator请求校验](ch6-web/ch6-04-validator.md)
* [6.5. Database和数据库打交道](ch6-web/ch6-05-database.md)
* [6.8. Layout大型web项目分层](ch6-web/ch6-08-layout-of-web-project.md)
* [6.12. Load-balance负载均衡](ch6-web/ch6-12-load-balance.md)
* [第五章 Go和Web](ch5-web/readme.md)
* [5.1. Web开发简介](ch5-web/ch5-01-introduction.md)
* [5.2. Router请求路由](ch5-web/ch5-02-router.md)
* [5.3. Middleware中间件](ch5-web/ch5-03-middleware.md)
* [5.4. Validator请求校验](ch5-web/ch5-04-validator.md)
* [5.5. Database和数据库打交道](ch5-web/ch5-05-database.md)
* [5.8. Layout大型web项目分层](ch5-web/ch5-08-layout-of-web-project.md)
* [5.12. Load-balance负载均衡](ch5-web/ch5-12-load-balance.md)
* [第七章 Go和ast](ch7-ast/readme.md)
* [第八章 Go和那些生产力工具](ch8-tools/readme.md)
* [附录](appendix/readme.md)

View File

@ -1,4 +1,4 @@
# 6.1. web 开发简介
# 5.1. web 开发简介
由于 golang 的 `net/http` 提供了基础的路由函数组合,并且也提供了丰富的功能函数。所以在 golang 社区里有一种观点认为用 golang 写 api 不需要框架。其看法也存在一定的道理如果你的项目路由在个位数URI 固定且不通过 URI 来传递参数,那么使用官方库也就足够。但在复杂场景下,官方的 http 库还是有些力不从心。例如下面这样的路由:

View File

@ -1,4 +1,4 @@
# 6.2. router 请求路由
# 5.2. router 请求路由
在常见的 web 框架中router 是必备的组件。golang 圈子里 router 也时常被称为 http 的 multiplexer。在上一节中我们通过对 Burrow 代码的简单学习,已经知道如何用 http 标准库中内置的 mux 来完成简单的路由功能了。如果开发 web 系统对路径中带参数没什么兴趣的话,用 http 标准库中的 mux 就可以。

View File

@ -1,4 +1,4 @@
# 6.3. middleware 中间件
# 5.3. middleware 中间件
本章将对现在流行的 web 框架中的中间件技术原理进行分析,并介绍如何使用中间件技术将业务和非业务代码功能进行解耦。

View File

@ -1,4 +1,4 @@
# 6.4. validator 请求校验
# 5.4. validator 请求校验
社区里曾经有人用这张图来嘲笑 PHP

View File

@ -1,4 +1,4 @@
# 6.4. Database 和数据库打交道
# 5.4. Database 和数据库打交道
本节将对 db/sql 官方标准库作一些简单分析,并介绍一些应用比较广泛的开源 orm 和 sql builder。并从企业级应用开发和公司架构的角度来分析哪种技术栈对于现代的企业级应用更为合适。

View File

@ -0,0 +1 @@
# 5.7. Ratelimit 服务流量限制

View File

@ -1,4 +1,4 @@
# 6.8. layout 常见大型 web 项目分层
# 5.8. layout 常见大型 web 项目分层
流行的 web 框架大多数是 MVC 框架MVC 这个概念最早由 Trygve Reenskaug 在 1978 年提出,为了能够对 GUI 类型的应用进行方便扩展,将程序划分为:

View File

@ -1,4 +1,4 @@
# 6.8. interface 和 web 编程
# 5.8. interface 和 web 编程
在项目中我们有可能遇到这样的场景:公司内的基础架构因为技术实力原因,最早是从别人那里借来的 kv 存储方案。随着公司的发展,渐渐有大牛加入,想要甩掉这个借来的包袱自研 kv 存储,但接口与之前的 kv 存储不兼容。接入时需要业务改动接入代码,怎么写代码才能让我的核心业务逻辑不受这些外部资源变化影响呢。

View File

@ -0,0 +1 @@
# 5.8. Dist-config 分布式配置服务

View File

@ -1,4 +1,4 @@
# 6.11. Service Discovery 服务发现
# 5.11. Service Discovery 服务发现
在微服务架构中,服务之间是存在依赖的。例如在订单系统中创建订单时,需要对用户信息做快照,这时候也就意味着这个流程要依赖: 订单、用户两个系统。当前大型网站的语境下,多服务分布式共存,单个服务也可能会跑在多台物理/虚拟机上。所以即使你知道你需要依赖的是“订单服务”这个具体的服务,实际面对的仍然是多个 ip+port 组成的集群。因此你需要: 1. 通过“订单服务”这个名字找到它对应的 ip+port 列表2. 决定把这个请求发到哪一个 ip+port 上的订单服务。

View File

@ -1,4 +1,4 @@
# 6.12. Load-Balance 负载均衡
# 5.12. Load-Balance 负载均衡
本节将会讨论常见的 web 后端服务之间的负载均衡手段。

View File

@ -0,0 +1 @@
# 5.9. Circuit-Breaker 熔断保护

View File

@ -0,0 +1 @@
# 5.8. Monitor metrics 和服务监控

View File

@ -1,4 +1,4 @@
# 第章 go 和 web
# 第章 go 和 web
本章将会阐述 go 在 web 开发方面的现状,并以几个典型的开源 web 框架为例,带大家深入 web 框架本身的执行流程。

View File

@ -1,3 +0,0 @@
# 第五章 这是一个坑
TODO

View File

@ -1 +0,0 @@
# 6.7. Ratelimit 服务流量限制

View File

@ -1 +0,0 @@
# 6.8. Dist-config 分布式配置服务

View File

@ -1 +0,0 @@
# 6.9. Circuit-Breaker 熔断保护

View File

@ -1 +0,0 @@
# 6.8. Monitor metrics 和服务监控