回顾4180天在腾讯使用C#的历程,开启新的征途

今天是2018年8月8日,已经和腾讯解除劳动关系,我的公司正式开始运营,虽然还有很多事情需要理清,公司官网也没有做,接下来什么事情都需要自己去完成了,需要一步一个脚印去完善,开启一个新的征途,我将在博客和公众号更新我的动态。

昨天是星期二,我在腾讯这家优秀的公司工作的第4180天,这天我离开了腾讯。这次的离开是为了下次更好的相遇,每一次相遇都是久别重逢,只有离别,才会相思,有了相思,才会有激情,有了激情,才有了我们下次一见如故的感觉。回首整个职业生涯,见证了腾讯从小到大、从大到强的整个过程,个人非常幸运大部分职业生涯都在腾讯度过,也把最好的一段时间奉献给了腾讯这家伟大的公司。我也要说我为自己曾经为这家公司服务过而自豪,腾讯是那种你想为之工作的最优秀的公司。

.NET如日中天时加入腾讯

从大学毕业后,就开始接触C#这门优秀的语言,从一个菜鸟逐步成长为一个熟练使用C#语言的程序员,我在微软的技术社区里比较独具一格,我一直推广的是开源技术,我的引路人是大名鼎鼎的Linux桌面Gnome的创始人米格尔Miguel de Icaza,早在2000年米格尔为了Gnome 桌面寻找编程模型,开始了Mono开源项目,我正是从Mono项目认识了C#,从此开始了Mono项目在中国的宣传,平时喜欢在博客上分享跟踪Mono项目进展,同时也进入了.NET开发社区,在2006年成为微软最有价值专家(MVP),那时腾讯也有几位微软最有价值专家,在社区活动中结识,2006年底通过toby的介绍,2007年2月26日在春节过后第一天入职腾讯。随后几年一直和toby 一起打造腾讯OA基础服务,简称TOF,我和TOF一起度过了8年时光。

.NET的衰败中打造TOF

我从参加工作以来就对C#有深度认同,它真是一门非常优秀的语言,从2007年加入公司到现在,我使用的主要开发语言都是C#,2007年的腾讯主要的开发语言是c/c++,C#。那时候大量的内网办公,运营系统使用.net构建的,一直持续到2009年后,公司的大规模扩展,逐步加入了大量的其他语言,比如Python,PHP,Java。大量新系统逐步采用这些新语言构建,因为大家认为c#只能跑在windows上,我还是坚持使用C#持续优化TOF,因为我所认为的C#是完全可以跑在Linux等非windows系统上的,当年主要是通过Mono项目来完成这一目标的,但是Mono项目是个完全开源社区的项目,当年公司还没有自己的tlinux,公司使用的Novell 的 Suse 企业版Linux,里面默认自带了Mono 运行环境的,公司的idc服务器上可能还存量少许的这类系统,大家可以输入命令mono瞧一瞧。Mono项目孕育了著名的游戏引擎Unity3D,IEG的大量手游都是基于Unity3D打造

2010年开始已经出现一种迹象是,新的业务系统都使用新的语言开发,使用C#语言的系统逐渐减少,旧的系统也不断被重写替代了C#,在公司的2013年度代码报告中http://code.oa.com/v2/report/2013 ,前十已经找不到C#的位置。

clip_image002

然而在2014年度的代码报告中http://tech.it168.com/a2015/0310/1709/000001709985.shtml ,C#突然之间前进到了第八位置,代码量增长了2.2倍,主角就是基于Mono平台的Unity 游戏开发,是手游让C# 爆发了,也就是在2014年我完成了TOF的第三个版本的重构,把原来的多个版本逐步统一为一个版本,代码量删除了好几万行,性能提升到满足当前公司规模的应用水平,到2016年我转岗到FIT 时,TOF日均请求量已经超过5000W,公司有3000多个应用系统接入,服务于公司3W+员工,在转岗交接工作时,我写了一篇《C# 在腾讯的发展》对大家了解C#这个语言有个更好的了解。

clip_image004

迎接.NET Core新时代

2014年微软公司开始转型,鲍尔默退休,2014 年 2 月 4 日,微软宣布云计算部门副总裁萨蒂亚·纳德拉 (Satya Nadella) 出任公司首席执行官,在他看来未来将是移动和云时代,上任第一天的内部邮件中就明确的表示了自己的观点,未来希望通过软件驱动微软这艘大船,在云计算时代帮助微软取得更好的成绩。2014年11月微软宣布了.NET开源,不是简单的将原来绑定于windows的.NET 开放源代码,而是针对云原生应用重新设计的模块化,跨平台的.NET, 经过1年多的打造,在2016年6月发布了1.0版本。2016年9月我转岗到了FIT,我在这里和小伙伴们使用C#构建了几个.NET Core系统,完全跑在tlinux上面,从此我很少使用.net, 我都是使用.NET Core, 公司全面转向2B市场,年初有机会加入FIT金融云团队,耕耘保险行业,这半年时间里我依然使用.NET Core构建了好几个小系统。也就是这半年微软的市值攀升到了8200亿市值。在这3年时间里,我业余也运营了一个《dotnet跨平台》微信公众号,粉丝数3.9W,最近半年收到了更多积极的使用.NET Core的反馈,欢迎你来关注我的微信公众号。.NET Core能干的事情更多了,刚在2018年5月30日发布的.NET Core 2.1,性能得到进一步的提升,接近C++效率。 yuke在2016年12月写的这篇《用.net core 写后端—— c++外的另一种选择?》 ,有兴趣的同学可以看看,现今主流的平台都可以使用C#进行开发,俗称拥有七龙珠,我去召唤神龙:

image

离开腾讯召唤神龙

我们已经完全进入云时代,国外AWS,Azure ,GCloud等都对.NET Core有一流的支持,然而众观国内无论是Aliyun,还是TencentCloud对.NET Core的支持体验都是完全不及格水平,这里面有很大的改进空间,在我离开腾讯的最后时间,有幸参与改进腾讯云 API 3.0的 .NET SDK, 昨天晚上同事zhiqiangfan已经把它开源发布到了github:https://github.com/TencentCloud/tencentcloud-sdk-dotnet ,腾讯云 3.0 API的C# 版本将是支持跨平台的,可以完美运行于linux上,就像我在鹅厂所打造的系统都运行在tlinux上一样,我希望看到这篇文章的同事,能够认识到新的一代.NET Core是跨平台的,不是绑定Windows的。在腾讯有幸目睹了腾讯开源自下往上的工程师文化,接着我在离开腾讯会继续和腾讯开源合作, 第一个项目将是mig的tars: https://github.com/Tencent/Tars, 公司最好用的rpc+管理平台,让它支持.netcore, 绝对是个出门创业的好东西,和大家透露一下,目前我们已经组建了社区6人团队在进行这项工作,6位分布在北京,广州,成都,深圳的.NET社区成员将在几个月内完成Tars支持.netcore的工作,到时欢迎大家加入一起完善 。

离开腾讯的想法其实也很简单,人生需要不停刷新,这半年自从看了微软CEO Satya写的那本书《刷新:重新发现商业与未来》,给我带来很大的心灵的震撼,他提出自我刷新的三个关键步骤:拥抱同理心,培养“无所不学”的求知欲,以及建立成长型思维。在此和兄弟姐妹分享这本书的两个公式:

信任公式:
同理心 + 共同的价值观 + 安全可靠 = 信任

技术透明、安全共治、保卫云安全以及用户至上,是微软写就的技术道德。在书中,纳德拉列举了包括斯诺登棱镜门、2013年12月的毒品案、2015年12月加州恐怖袭击等在内的实例,以及微软与苹果等对手因为用户数据面临安全威胁时并肩站在同一个立场,从他细腻的描述中,我们似乎感受到了作为一家巨头公司CEO面临的压力及胆识、果敢

成长公式:
∑(教育+创新) x 科技使用强度 = 经济增长

实现人人获益的经济增长,最近卖假货的拼多多上市了,有文章分析这才是真正的中国,充斥着假货,这就是现实,但我们更需要实现人人获益的经济增长,也就是在IT圈也是一样,在BATJ之外还有大量的普通的程序员,他们更需要高效好用的开发平台。