这个周末,我从成都飞到了上海参加了首届由社区组织而非官方(比如 Microsoft)组织的.NET 开发者峰会(.NET Conf)。为此,我特意请了两天的假(周五+周六,对,我们是大小周,这周六要上班),在周五就飞到上海了。现在将我的所见所闻总结成文字,分享给各位关注我的朋友。
一、自组织,规模大,准备精
首先,谈谈这届峰会的整体感受,那就是标题这 9 个字“自组织、规模大、准备精”。
这届峰会是.NET 技术社区第一次独立自主举办的,参会人数目测>700人且有很多都是从四面八方赶过来的(当然珠三角地区的参会人数还是占大多数),一共有三个分会场,共 20 多个精选主题分享,且是在极短的时间内组织了这么一场大会的,不得不佩服和感谢为此做出贡献的社区伙伴们,特别是我们的张队!
组织团队+讲师团队
参会人数多,热情高
二、刷新:拖控件的日子早就过去了
在会场签名墙看到了许多含有各种标语的板子,其中有一个就是“一个控件一包烟拖拖控件点一天”,回想我们这些 85 后在初次接触.NET 技术时都或多或少地使用过 WinForm 或 WebForm 之类的 Drap & Drop Driven Development,也曾迷茫过理想中的 Programming 就是 Drag & Drop 么? 虽然迷茫过,但好在后来找到了正确的姿势,也拥抱了该拥抱的 MVC & WebAPI 等技术。不过,正是因为拖控件的方式让很多.NET 程序员沉浸在了 Drag & Drop 的世界无法自拔,他们从不刷新自己的认知,也不努力主动提高,也侧面导致业界对.NET 技术的偏见。曾经在张队的博客下面看到评论说业界对.NET 程序员的评价不高,而且.NET 程序员自己都认为自己低人一等,这其实也说明大部分.NET 程序员都到了该刷新自己的时候。我觉得那些自己觉得自己低人一等的.NET 程序员们,都应该到.NET 开发者峰会来逛逛,他们不会再觉得自己低人一等!
Microsoft 在鲍尔默时期丢失的互联网入口红利,在纳德拉的带领下重新刷新自己,再次大象起舞,我们.NET 程序员更应该刷新自己了!
一个需求一根烟拖拖控件点一天
三、云原生:Cloud For All
明显感受到的一个重点就是,云原生时代已经到来,此次大会也给了云原生足够的重视,从分享的主题来看,很多都是和云原生(Docker、Kubernetes 等)有关的。
其实早在张队发的《.NET 云原生采用情况调查》中已经表明,容器编排和自动化领域 Kubernetes 已经占据了主体地位,学习 Kubernetes 刻不容缓!在此次大会上,刘腾飞老师分享了《ASP.NET Core 基于 K8S 的微服务电商案例实践》,远从日本专程回来的桂素伟老师分享了《ASP.NET Core 在 K8S 上的开发实践》,其余还有一些主题也和云原生有关,这里就不再赘述。
刘腾飞老师的分享
桂素伟老师的分享
当然在现场的话,想要平滑接收这些内容是需要你具备一定的容器和 K8S 基础的,建议有兴趣的童鞋可以自己基于 Minkube 或 Kubeadm 搭建一个最小化的 K8S 集群环境了解一些基本概念和基本部署之后,再去听会更有收获。生产环境建议大家上云,比如阿里云 ACK(K8S 服务)、腾讯云 TKE、Azure Kubernetes Service 等等。当然,这里我也给自己打个广告,我的《.NET Core on K8S》系列文章就是针对这方面的基础知识与应用的一个从入门到应用的学习总结,欢迎关注!
四、微服务:合久必分,分久必合
此次大会的另一个重点便是微服务,从我们都熟悉的单体架构进化为 SOA 再演变为微服务这种架构风格,都是我们一路走过的路。
微服务带来的好处多,但是带来的复杂性也多,比较认同李运华老师在《从0开始学架构》专栏中提到的一个观点:架构设计的重点就是解决引入系统新业务新组件等带来的复杂度引发的各种问题,要引入微服务架构风格,必然需要解决由此带来的高复杂度带来的问题。
蔚来汽车的架构师朱宗海老师分享了《微服务快速开发框架的设计》,带领我们从初级的微服务快速开发框架到成熟的微服务开发框架的设计要点,也表达了他对框架的意义的看法,十分认同!
此外,校宝在线的架构师肖老师分享了《用 ASP.NET Core 构建可检测高可用的微服务》,带我们了解了如何基于 Logging, Diagnostics 等多个方面对 ASP.NET Core 构建的微服务进行高可用性的检测,也是十分具有参考价值的分享!
可检测高可用 ASP.NET Core 微服务
微服务快速开发框架的设计
不过,在不远的未来,服务网格 Service Mesh 的广泛使用会使得微服务时代的各个服务治理组件的集成和使用变得更加简单和统一化,所谓分久必合合久必分,未来如何变化,且观察且学习!我也会逐渐开始学习istio这个基于 K8S 的服务网格项目,欢迎关注!
五、人工智能:你不知道的 SciSharp
人工时代来临,程序员又到转型时间。Python 是机器学习和深度学习的第一语言,有非常丰富的库和框架,但对于不少技术人员和团队产生不少学习和人力成本。通过卢建辉老师的人工智能专题分享,我们了解到 SciSharp 是一个基于.NET Core 调用现有 Python 机器学习库和深度学习库的开源社区,让.NET 程序员直接通过 C#调用 TensorFlow/ Keras 完成机器学习/深度学习。SciSharp 社区在不断发展,其中社区 TensorFlow.NET 也已经嵌入到 ML.NET 作为深度学习的支持环境。
PS:TensorFlow.NET 已被 Google 列入其官方文档推荐给了全世界的开发者,特别是 C#开发者!
我也希望自己能在 2020 年能够初步使用并实践一下 TensorFlow.NET,能够有一两个应用实践的场景,希望能实现!
六、面基:大型交友现场
在此次大会上,我有很多时间都是在“逃课”,然后在签名墙和各位童鞋面基和聊天,这也是大家相互交朋友的一种方式。当然,这次还有很多朋友没能见到,希望下次能和你们一一面基!下面分享一些我面基的照片:
自称我是他男神的郑子铭,广州.NET 社区的新星
另一位自称是我的粉丝的年轻童鞋 Redmond
天天向上的卫涵 以及 网友追寻
七、小结
匆匆的上海之行,我感受到了我们.NET 开发者社区的热情,也激励我会一直写文章分享实践内容弄下去,在此也立个 flag:明年继续参加第二届.NET China Conf,然后也争取分享一个主题(暂定.NET Core on ACK,希望自己实践之后能有一些总结分享出来)。
此外,自己前段时间有幸评选上了阿里云 MVP,也要尽力在阿里云开发者社区为.NET 技术发声,纠正偏见,让阿里云开发者社区也看到.NET 开发者的与时俱进与技术热情!
路一直都在那里,相信随着我们每个人的努力,我们的.NET 社区会更好!