回顾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#的位置。

640?wx_fmt=jpeg

然而在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#这个语言有个更好的了解。

迎接.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#进行开发,俗称拥有七龙珠,我去召唤神龙:

640?wx_fmt=png

离开腾讯召唤神龙

我们已经完全进入云时代,国外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之外还有大量的普通的程序员,他们更需要高效好用的开发平台。

原文地址:https://www.cnblogs.com/shanyou/p/9405102.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320498.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

稳定工作和创业之间的抉择

早上写的文章《回顾4180天在腾讯使用C#的历程,开启新的征途》是我在腾讯写的最后一篇对过往10年在腾讯使用C#语言的总结,今天收到反馈有人在造谣腾讯开始去.net,我被迫辞职了。这非常的不负责任,我必须写这篇文章来辟谣。要说腾讯…

牛客2020年愚人节比赛

欢乐的一晚上 题目链接 其实做做也挺好,脑筋急转弯,不需要算法不需要数据结构,纯娱乐 还有不知道是哪位哥的,心疼一下 题解 注:一下题解没必要较劲,欢乐局而已 对不对无所谓,换了最重要奥 A题ra…

IdentityServer4 知多少

1. 引言现在的应用开发层出不穷,基于浏览器的网页应用,基于微信的公众号、小程序,基于IOS、Android的App,基于Windows系统的桌面应用和UWP应用等等,这么多种类的应用,就给应用的开发带来的挑战,…

牛客网【每日一题】4月2日 月月查华华的手机

牛客网链接 时间限制:C/C 2秒,其他语言4秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 月月和华华一起去吃饭了。期间华华有事出去了一会儿,没有带手机。月月出于人类最单纯的好奇心&#…

【二分】Best Cow Fences(poj 2018)

Best Cow Fences poj 2018 题目大意: 给出一个正整数数列,要你求平均数最大,长度不小于M的字串,结果乘1000取整 输入样例 10 6 6 4 2 10 3 8 5 9 4 1输出样例 6500数据范围 1⩽N⩽100,0001\leqslant N \leqslant 100,0001⩽…

离散哈特莱变换(DHT)及快速哈特莱变换(FHT)学习

离散哈特莱变换(DHT)及快速哈特莱变换(FHT)学习 说在前边 最近复习\(DSP\)的时候,发现了一个号称专门针对离散实序列的变换,经分析总运算量为普通\(FFT\)的几乎一半,而且完全没有复数。这么强的吗?于是花了一个下午,去…

.NET Core 2.1中的分层编译(预览)

如果您是.NET性能的粉丝,最近有很多好消息,例如.NET Core 2.1中的性能改进和宣布.NET Core 2.1,但我们还有更多的好消息。分层编译是一项重要的新特性功能,我们可以作为预览供任何人试用,从.NET Core 2.1开始。在我们测…

选择IT事业,意味着终身学习

八月,炎阳如火。 前几天书记找我交流,问我离职的原因,我跟他仔细的分析了一下我的职业发展规划和我对于未来的预期,书记也向我分析了一下他所认为的原因,他说,无外乎是三个原因:第一个是钱的问…

牛客网【每日一题】Shortest Path 4月3日题目精讲 DFS

题号 NC13886 Shortest Path 西南交通大学第十三届ACM决赛 题意: 一棵偶数节点的树,分成n/2对,两两一组,所有组的路径之和最小是多少? 题解: 如果两个点之间相连将另外两个相连的点覆盖,那么完全…

使用Jexus服务器运行Asp.Net Core2.0程序

前段时间写了篇关于.net core跨平台部署的文章。https://my.oschina.net/lichaoqiang/blog/1861977主要讲述了,利用NginxCentOSSupervisor.NetCore2.1,来运行.net core程序,感兴趣的朋友可以看一下。今天向大家介绍.net core使用jexus服务器的…

【结论】棋盘(jzoj 2297)

棋盘 jzoj 2297 题目大意: 在棋盘上有一个特殊的象,他可以向四个方向行走若干步(左上,左下,右上,右下),现在问从某一个点是否能到另外一个点 输入样例 5 1 1 2 2 2 3 2 2 1 2 4…

RRRR_wys' Blog 3.0 准备上线啦!

RRRR_wys Blog 3.0 准备上线啦! 今年马上要过完啦,打算在年前把博客翻翻新之前的布局太复杂了,感觉很视觉疲劳,这一版我打算能删就删完善了\(markdown\)还有一些地方要修,放假再说辣在vj上交了道cf,有惊喜 …

WebApiClient的JsonPatch局部更新

1. 文章目的随着WebApiClient的不断完善,越来越多开发者选择WebApiClient替换原生的HttpClient,本文将介绍使用WebApiClient来完成JsonPatch提交的新特性。2. json patch介绍在服务端WebApi开发的时候,如果设计一个更新登录用户的个人信息的接…

【bfs】神殿(jzoj 2296)

神殿 jzoj 2296 题目大意: 用一个n∗mn*mn∗m的矩阵,每个单位都是一个1∗11*11∗1的房间,房间的四个方向只有某些方向有门(说明如下图),要从一个房间走向相邻的房间(算一个单位时间&#xff…

如何在本地数据中心安装Service Fabric for Windows集群

概述首先本文只是对官方文档(中文,英文)的一个提炼,详细的安装说明还请仔细阅读官方文档。虽然Service Fabric的官方名称往往被加上Azure,但是实际上(估计很多人不知道)Service Fabric可以安装到…

Asp.Net Core实战

序言使用.NET Core,团队可以更容易专注的在.net core上工作。比如核心类库(如System.Collections)的更改仍然需要与.NET Framework相同的活力,但是ASP.NET Core或Entity Framework Core可以更轻松地进行实质性更改,而不…

DFS序讲解

我们经常会遇到树的问题,但树是非线性的结构,操作起来始终还是麻烦,如果我们能把树改造成线性结构,有什么方法?对,就是今天要讲的DSF序; dfs序呢,就是把一棵树区间化,我们…

利用Asp.Net Core的MiddleWare思想处理复杂业务流程

最近利用Asp.Net Core 的MiddleWare思想对公司的古老代码进行重构,在这里把我的设计思路分享出来,希望对大家处理复杂的流程业务能有所帮助。背景一个流程初始化接口,接口中根据传入的流程类型,需要做一些不同的工作。1.有的工作是…

F# 4.5提供Spans、Match!等特性

F# 4.5预览版现已发布&#xff0c;其中提供了一系列新特性&#xff0c;包括对.NET Core 2.1的新原生类型Span<T>的支持、新关键字Match!等。类型Span意在实现底层代码指针操作的安全性和可预测性&#xff0c;这可使得很多情况下不必再分配内存&#xff0c;进而改进了内存…

Abp + Grpc 如何实现用户会话状态传递

0.背景在实际项目当中&#xff0c;我采用的是 Abp 框架&#xff0c;但是 Abp 框架官方并没有针对 Grpc 进行模块封装。基于此我结合 Abp 与 MagicOnion 封装了一个 Abp.Grpc 模块&#xff0c;它包括服务端和调用端两部分的包。通过这两个包&#xff0c;你可以很方便地在 Abp 框…