Go技术沙龙听后笔记

来源:互联网 发布:mac的文件夹放在哪里 编辑:程序博客网 时间:2024/05/28 15:28

        今天利用两个小时时间听了一场Go语言入门级技术分享,顺便夹带一些讲者的开发经验之谈。顺便提一下,讲者是国内某DSP产品专业团队核心成员,其后台web服务到数据分析均使用golang开发。该公司每天更新数据量级在百亿级别。

        进入今年多次听过Go,没有细看,只知道是一个跨平台且高效的语言,所以本次沙龙以菜鸟身份来听。以下是笔记:

        1、Go原本是Google公司20%项目下产生的,诞生于07年,09年开源。

        2、Go不是一门好的语言?

              ①非OOP

②错误机制太原始

③支持Android?IOS?没有现成的IDE?这些正在完善……

④需要断言

⑤是一门静态语言

3、Go在保存时会自动格式化,所以写代码时候不需要很严格按格式;一旦格式化后的代码就是严格的,并且没有用过的变量就会报错

4、如果要显式用到指针需要引入unsafe包,但是官方强烈建议不使用,因为后续版本不一定支持(体现了Go希望不要引入复杂的东西)

5、变量声明方面比较“反人类”,例如:var m int = 10

    6、Go支持32位和64位X86,也支持ARM。作为编译型语言,最终只产生一个编译文件(二进制文件),执行及其方便,对环境依赖极小。

7、目前支持GC垃圾回收。

8、支持并发,并且并发使用十分简单,使用 go xxx的语法即可。不过要注意的是,Go启动的是协程,所以在主进程下轻松实现百万级并发,所以并不触发内核态减少开销,当然这也容易导致并发滥用现象

9、除了常用几种数据类型,还支持slice、complex、chanel(消息通信)、struct,并且可以实现接口和多继承的效果

10、Go的Interface是很重要的概念。


做完了技术型笔记,分享听到的一些开发经验吧:

1、在团队技术选型上,要根据团队的技术能力、业务需求来决定,如果本身具有某种语言良好的积累,切换代价可能反而更大。

2、不要忽略程序中的错误,积少成多可能带来的后果。

3、好的代码比性能更加重要。

4、语言虽然是一门工具,说重要也重要,说不重要也可能并不重要,不求多,但是掌握几种不同类型的语言有助于去思考语言的设计哲学以及跨平台的使用场景

5、erlang的人才不好找,而Go在C和C++背景下是比较容易过渡的,并且号称“有90%C的效率+90%Python的简洁”...

0 0