【要读的书】
【go in action】
go语言是什么?
go是一种编程语言
为什么会有go?
在多核时代高效编写网络应用程序。
第一,使用习惯的顺序方法充分利用多核,解决了现代编程难题(快速开发和性能的平衡)
第二,写出来的代码绝对优雅(简洁的类型系统),要充分利用设计者们的倡导,基于接口服用代码
go程序该怎么编写?
effective go, how = 遵循go的哲学和编程习惯
第一、摸索舒适的开发环境,go工具本身(mod fmt ...)、IDE(goland/vim)
第二、牢记内置类型array/slince/map的使用技巧和设计机制(为什么要这么设计?)
第三、类型嵌套和接口,善于面向接口编程
第四、goroutine/chan的使用技巧和设计机制,最重要的核心概念没有之一,内置对并发的支持
第五、学习标准库,比如log json io,到出名的第三方库,oklog/logrus pkg/errors kingpin/cobra/viper
第六、必须写单元测试,有人说简单的没必要,我觉得养成习惯更重要,你说呢
第七、多读开源软件,学习不同的工程设计模式,包括常用的处理问题方法及机制
形成一个专注、全面且符合习惯的视角
1、简洁的系统类型,支持面向对象开发,但避免了传统面向对象的问题
传统遗留的问题是需要考虑如何抽象类和接口
2、没有继承类型
组合设计模式,嵌入后服用所有功能
其它语言的组合模式需要和继承绑定,用法复杂
一个类型由其他更微小的类型组合而成,避免传统的基于继承的模型
3、接口,允许对行为进行建模,而不是对类型进行建模
建模,是一个模型,符合这个模型的实例或者不同类型的对象
类型的实例即类的对象,必须拥有相同的属性和方法类型
而,接口是行为维度的抽象,解除了实例必须相同属性类型的枷锁