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

fix space

This commit is contained in:
Xargin 2018-12-23 18:35:20 +08:00
parent f435e89a90
commit 59f26a0144
2 changed files with 35 additions and 33 deletions

View File

@ -154,7 +154,7 @@ func BusinessProcess(bi BusinessInstance) {
} }
``` ```
直接面向 interface 编程,不用关心具体的实现。如果对应的业务在迭代中发生了修改,所有的逻辑对平台方来说也是完全透明的。 面向interface编程不用关心具体的实现。如果对应的业务在迭代中发生了修改所有的逻辑对平台方来说也是完全透明的。
## 5.8.4 interface的优缺点 ## 5.8.4 interface的优缺点
@ -236,7 +236,7 @@ func main() {
所以interface也可以认为是一种编译期进行检查的保证类型安全的手段。 所以interface也可以认为是一种编译期进行检查的保证类型安全的手段。
## 5.8.5 table-driven 开发 ## 5.8.5 表驱动开发
熟悉开源lint工具的同学应该见到过圈复杂度的说法在函数中如果有if和switch的话会使函数的圈复杂度上升所以有强迫症的同学即使在入口一个函数中有switch还是想要干掉这个switch有没有什么办法呢当然有用表驱动的方式来存储我们需要实例 熟悉开源lint工具的同学应该见到过圈复杂度的说法在函数中如果有if和switch的话会使函数的圈复杂度上升所以有强迫症的同学即使在入口一个函数中有switch还是想要干掉这个switch有没有什么办法呢当然有用表驱动的方式来存储我们需要实例
@ -267,4 +267,6 @@ func entry() {
} }
``` ```
table driven 的设计方式,很多设计模式相关的书籍并没有把它作为一种设计模式来讲,但我认为这依然是一种非常重要的帮助我们来简化代码的手段。在日常的开发工作中可以多多思考,哪些不必要的 switch case 可以用一个字典和一行代码就可以轻松搞定。 表驱动的设计方式很多设计模式相关的书籍并没有把它作为一种设计模式来讲但我认为这依然是一种非常重要的帮助我们来简化代码的手段。在日常的开发工作中可以多多思考哪些不必要的switch case可以用一个字典和一行代码就可以轻松搞定。
当然表驱动也不是缺点因为需要对输入key计算哈希在性能敏感的场合需要多加斟酌。