DevLink与Go语言北京用户组联合举办的X to Go语言“小课桌”技术分享活动,将于9月3日在上地福道大厦链家网举办,活动面向对Go感兴趣的开发者,希望能够帮助到大家快速了解Go这个新时代的编程语言。
会前我们对本次活动的讲师之一、奇虎360核心安全事业部软件开发工程师——郭军老师进行了文字专访。
1.郭军老师您好,能否简单介绍一下自己?
大家好,我是郭军,2013年21岁大学毕业,之前做的是asp.net,实习期间自学了PHP,之后大部分时间做PHP相关的开发工作,期间也使用过erlang,python等语言。
2014年离开新浪加入360公司,负责360会员中心旗下项目的开发和维护工作,2015年加入核心安全业务线,目前服务于360核心安全事业部 云引擎开发组技术团队,做着和大数据相关的一些有趣的事情,关注golang,架构设计等互联网技术。
2.据您了解的情况,目前Go语言在360这样的大型互联网企业中的应用状况是怎样的?
其实我们公司现在很多部门都在使用或者尝试使用go语言,比如: 免费wifi,用户中心,安全卫士服务端,360搜索等,随着业务的发展,性能和并发编程越来越受到开发人员的关注,除了线上业务,我们公司有些ops同事也在使用go语言替代python。
3.您本次的分享主题是关于重构的,但也有一种观点是,稳定运行的系统不要轻易重构,而选择硬件扩容等更为保守的形式来维持稳定,您是如何看待这种观点的?
这个问题挺难回答的,最理想的状态当然是把所有的系统都部署在一台超级计算机上,而且可以无限扩容,这个我们目前做不到,虽然通常情况下硬件扩容相比投入人力重新开发是很廉价,但是架构师仍然需要全面考虑投入人力做这件事情的性价比来合理做取舍:造轮子之后对业务的提高(比如性能提高,稳定性提高,可扩展性提高等),参与人员技术能力的提升,重构之后带来新的问题以及重构使用的某些新技术团队是否能hold住,尤其在创业项目还需要考虑时间和人力成本不能耽误新需求的更迭。
4.能评价一下刚刚发布的 Go 1.7版本么?
Go 1.7没有新增有亮点的功能,主要在改善和优化方面,自Go 1.5以来编译速度大幅下降,在1.6就计划引入的SSA,在1.7加入了,但是也仅支持了x86-64平台,至于编译之后的文件大小,我想大部分gopher都不是很在意,将context包加入到标准库在这之前有开发者在golang dev group提过多次,其中一部分标准包性能提升10%以上,这个我们还没测试。
5您觉得目前Go还存在哪些亟待解决的缺点?
Go语言到现在的版本其实已经能满足我们绝大多数的需要了,缺点算不上,只能说改进的地方吧,一些常用的标准库性能提升,反射,不支持泛型也有很多人反馈过,但是go team可能有自己的想法一直没加,也许会有更好的特性出来吧,期待以后的版本。
6.对Go开发者和希望了解Go的同学们有什么要说的么?
目前就性能而言go语言可以排在前列了(仅比C慢10%左右),原生对并发编程的支持,开发体验好,社区活跃,资料丰富,目前有很多公司也都在使用,可以满足特定情况下对性能的需求,线上部署简单,将build之后的应用程序挂起即可,最重要的一点是足够简单,比如我们要写一个像nginx这样的软件可能需要全球最好的C程序员,用go一个中级工程师用更少的代码就可以完成一个和nginx性能差不多的webserver。
本次郭军老师演讲的议题及提纲