over-golang/03-工程管理/00-Go编程哲学.md
2021-07-02 18:11:59 +08:00

16 lines
1.2 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Go语言的设计思想
- 少即是多
- 很少的语法特性
- 满足语言特性的正交性多个组成因子中一个发生变化不会影响其他因子变化Go中的goroutineinterface类型系统的组合能够极大增强Go的表现力
- 把一种事情做到极致而不是提供多个选择 for 循环一个关键字可以替代 forwhiledo while三种C语言的场景
- 组合优于继承世界由万物组合而成而不是万物皆对象继承关系只是世界表象中一个很小的子集组合才是世界组成的根本
- 非侵入式接口Go的接口采用了一种Duck模型具体类型不需要显式的声明自己实现了某个接口只要方法集是接口方法集的超集即可接口类型的是否实现判断交给了编译器处理该方式让接口和实现者之间实现了解耦
## Go语言中的设计争议
- 包管理饱受诟病但是在go1.13中得到大幅改善1.11中即可开启新版包管理方式
- 错误处理Go的错误处理简单粗暴但是绝对不优雅
- 泛型支持Go没有泛型支持笔者认为无法容忍