比特熊故事汇独家 | .NET 感恩专场

点击上方蓝字

关注我们

(本文阅读时间:15分钟)

大家好!我是爱吃、爱玩、更爱学习技术,IT界新晋小红人,开发者的好朋友——比特熊!

比特熊:本期故事汇是.NET专场,今天一次性邀请到DOTNET领域大家非常熟悉且各有擅长的三位嘉宾,给我们来谈谈.NET 7.0的新版本解析,技术选型,DOTNET企业应用现状,还有12月DOTNET 2022社区峰会划重点!我们先请各位“红人”介绍一下自己。

850451b4694244b595b0acda767e5fa4.jpeg

更开放的心态带来更繁荣的生态

ecd3f8be0d13fa531e73dea47d8f4219.png

苏震巍

用科技造福世界

盛派网络创始人/首席架构师

微软RD/MVP

微软技术俱乐部(苏州)主席

89ececc49e48f8f61f4a39dd06b636d6.png

董彬

以渺小启程,以伟大结束

野村信息高级工程师 

这是.NET最好的时代

7d6bd0154f6f509961afb8bb8777491f.jpeg

6d618eec4a360ac242a0c808b2ac4e1f.jpeg

9146ec3efaddd6b06db9cbb92d0a46c1.png

黄国石

学无先后达者为师!

中通快递资深架构师

开心撸码,快乐生活!

a173985cad3bf9563dec538ef5fb7bba.png

苏震巍:我是苏震巍,是盛派网络的创始人兼首席架构师,也是微软最有价值专和技术社区区域总监,现任苏州微软技术俱乐部的主席。关于.NET我写了两本书:《网站模块化开发全程实录》——已经被很多大学当做教材了;《微信开发深度解析》,主要讲跟微信有关的.NET开发,已经印到第九版了。我在2002年.NET刚出来的时候就开始关注它,真正开始做产品是从2003年的时候开始了,那时候我刚上大学(暴露年龄了)。在将近20年的时间里,看到了.NET整个成长过程。当然我也用很多其他的技术做一系列的开发,有很多心得。.NET的趋势非常吸引我,在过程当中给我带来了非常多好处。

董彬:我叫董彬,现就职野村证券的信息部门,为公司的风控系统开发客户端。虽然我看起来很“成熟”,但实际上我做程序员就只有三年的时间。今天我是以新手程序员的身份分享我在工作中,.NET究竟给我带来了怎样的变化,以及我为什么会选择.NET作为我的主要研究领域。可能有朋友看我眼熟,因为我参与Reactor的活动,今后我也希望能够在技术领域,为.NET社区做出更多贡献。

黄国石:我是黄国石,网名“智能大石头”。现任中通快递的资深架构师,做数据分析和物联网,主要是车联网方面的项目。在社区里面我也算比较活跃,我有一个社区是新生命团队,我们有40多个开源项目,从2002年开始到现在已经20年了,踩过很多坑。我常把自己和朋友们在项目和实践中的经验做整理,做成开源项目和分享,丰富整个社区。今天我跟大家聊聊企业使用.NET的情况以及.NET在国内的现状。

比特熊:比特熊在去年11月的这个时间,请到了苏老师来做.NET 6的讲解,对苏老师逻辑化思维印象深刻,今天还是请苏老师给我们技术点把控一下。

.NET 7.0新特性大赏

苏震巍:从.NET 7的预览版我就一直在关注,发布之后,我们社区的一些产品也同步更新到了7.0。我重点讲几个我认为重要且可能对未来影响较大的更新。

第一个是对ARM64的全面支持和升级,一直以来.NET在CPU架构上主要以x86为主,对ARM甚至ARM64这样一些比较新的CPU支持有限。这一次.NET 7迈出的最大的一步是在CPU架构上,对ARM64的支持是有里程碑意义的。现在国产化对中国的软件市场是很现实的挑战……可能将来三年到五年,大量新采购的服务器会到ARM上面,不管你是不是国产,.NET 7在ARM层面的支持奠定了它将来是否能够在新的市场里有优势,吸引更多新鲜血液。

第二个是性能方面的提升,.NET的性能不断刷新我们的认知,3.1的时候它已经非常快了,以至于当时发布会上Scott Hanselman都以为是Demo跑错了,他自己都不敢相信跑出了一个非常棒的成绩。当时大家觉得这已经是巅峰了,速度已经达到了Node.js的好几倍。可是后来仅过了两年,6.0的速度已经是Node.js十倍以上了,现在7再一次超越。

cf67f3387526286b96f44ef23375866a.png

在社区里面的经常有这样的声音,Python/ Javascript 等很多语言好学,但为什么C#的上手就是看语言还可以,但是看到框架就好像得去建一个比较庞大的项目,才能把它运行起来。这一点在.NET 6的时候已经做了比较好的改进,包括结合C#10。我们已经有了全局的using和非常简洁的的写法,我觉得这一点是非常务实的,因为一个好的语言,你不能总是要求大家有非常长的学习周期,才能够驾驭他。我觉得一个好的语言,应该是能从幼儿园,一直到老年大学,一整条线都应该去支持它。

曾经.NET Core在入门方面,是有一定的缺失的,当时微软花了大量的力气在做MSlearn,微软大量在推怎么样教会你去用……在6以后,可以看到非常好的趋势,比如我们现在已经可以通过一行代码跑出一个Hello World。我觉得在6之前,是没有办法通过官方的框架做到这一点,除非你在底层做很多别的事情。现在从6到7是非常符合这样的一个趋势,整个的环境,包括加上VS Code、Visual Studio原生的支持,像现在Windows11,包括Windows Server,做了很多原生的支持之后,甚至比开发Python还要容易。直接打开,跑一下,编一下,然后build一下,就可以去run了。在我心目中这是一个非常健康的,足够吸引我的框架。

比特熊:苏老师还以7.0更新中的泛型数学为例介绍了.NET在科学研究方面的潜力,希望这点能吸引到更多大学生使用.NET画图、做数据统计。

半路出家爱上.NET

董彬:接上苏老师的话题,因为我最近投入了比较多的精力在Avalonia UI的框架上面,这回有两个巨大的更新让这个框架得到了很大的提升。一个是7.0第一次实现了真正的Native AOT,让Avalonia UI可以编译成完全原生的Native客户端,启动速度更快,也增加了它反编译的难度。另外7.0推出了没有Blazor的WebAssembly,这样Avalonia UI就能以原生的WebAssembly实现在Web上的运行,这两点更新让我很惊喜。

我不是计算机专业出身的,我本科学能源动力,研究生学流体力学。2019年才开始转行做程序员,我的职业经历大概可以代表半路出家的程序员。我的第一份工作是在油田科技服务公司SLB当机械工程师,画画机械图。工作本身并不需要编程,我第一次接触到代码,是因为公司有一个程序是VBA(Visual Basic Applications)的,我们需要在Excel里面监测读出来的数据,然后直接生成报告。这就是我对.NET的第一印象,可能跟很多人都不一样。

ab1ed4e3829dffafa7737b2ed2b277a9.png

工作到第二年,我开始对重复的文档工作产生厌烦,就自己写了一个WinForm的程序,那种输入几个关键字,就能直接输出一大段质量报告的评语。后来,我接触了WPF开发,在公司内部做了一个很成功的项目——用快捷键选中一段文字,然后拼个网址在浏览器里打开。很多内部系统都是通过这种方式来打开文件的,这大大提升了工作效率,也得到公司高层的认可。后来我了解到我们公司在北京有一个软件分公司,有非常复杂的WPF和现在我才知道叫ASP.NET的应用。作为一个机械工程师,以为我学程序在公司里面无法得到帮助,但当我在公司的论坛里发出问题,得到了非常专业的回答,因此我了解到公司的这个地层勘探相关的产品非常厉害。这种有专业支持的感觉给了我很大信心,也让我相信我也可以将较为复杂的东西做出来。随着我的探索,我发现程序不完全是照葫芦画瓢,就能写出来的东西。我不怕大家笑话,在我写完我的第一个程序之后,还是不知道值类型和引用类型的区别,甚至不知道两个概念的存在。我意识到了系统学习.NET的重要性,所以辞职去读了我的第二个研究生,数据科学方面的,整整两年时间都在写Python和R语言。虽然这些东西现在还是会的,但就是觉得有点虚无缥缈,跟我当初设想的不一样,我最早在计算机和机械专业之间选择了后者,就是因为喜欢这种看得见摸得着、去做手工艺品的感觉。现在Python和.NET之间,.NET更能给我这种感觉,因为它能够开发出一个漂亮的UI,后面我就更专注于.NET方向了。

毕业之后,我进入了一家设计、制造卫星的公司,他们所有的上位机全都是用WinForm开发的。我入职后的一个任务是为我们即将发射的三颗卫星开发地面运行控制系统。因为前期在上位机部分已经有非常多知识积累了,所以这个运控系统我们选择了ASP.NET Core作为后端,它有非常多的知识可以直接迁移。为了实现多端控制,我们也做了前后端分离,变成我一个人写ASP.NET Core的后端,也写了React的前端。正值2019年,.NET的开源进步非常快,3.1刚出来,.NET Core性能有极大的提升。我们的项目进展也很快,收获满意的成果。这家做卫星的公司里都是卫星方面的专家,没有专门的软件工程师。专家们的专业知识是非常宝贵的,.NET是把他们的专业知识转化为成果的重要手段,这也坚定了我做.NET的决心。

我后来到了现在任职的公司,做风控系统。它的客户端非常复杂,庞大到网页应用完全没办法实现它的功能。有人问过我,这个系统为什么不能用Web来做,我用Postman给他Call了一下这个API,都不用渲染了,返回出来的json就直接让Postman崩溃了。但是在WPF的界面上它的体验非常丝滑。所以说在非常critical的场景下,大家所推崇的这种Web应用不能满足需求。

从以上经历大家可以看出,我虽然是一个.NET开发者,但我实际上从事的领域是各式各样的。.NET开发者可以尝试在更多的行业领域去实现自己的理想,如果你有希望实现的想法,.NET可以是最好的选择。虽然我写程序时间不长,但是我写过VBA客户端、Web服务,还做过游戏,写过Unity,是AntDesignBlazor的早期贡献者,我也用.NET写过前端,现在MAUI差不多已经正式发布了,.NET现在也可以用来写移动端。

今天的另外两位嘉宾都有创业经历,应该能够感受到.NET对于创业公司是一个高效开始业务的好选择。我想鼓励更多像我一样可能不是专业程序员,但希望通过程序来实现个人理想或价值的朋友,来看一看.NET平台。

各行各业如何用.NET

黄国石:董彬老师刚才提到了卫星的地面站是直接用.NET开发的。我自己了解一些.NET在各行各业的使用情况,这可能在公共平台能查到的总结资料很少,今天给大家分享一下我的心得。

我算是一个幸运儿,1996年就开始接触计算机,1999年开始写程序:BASIC、VB、SP啊,后来到Delphi、PHP、Python等等学了很多,上大学就学C语言,C++之类的。我跟苏老师差不多,大概是2003年左右接触到.NET,但我没有学过.NET。刚才董老师讲到,可能原来的语言很难构建一个比较大的应用,我可以说BASIC、VB、SP、 C、C++都相当可以,但是感觉这些语言都很难构建一个很大的系统应用。于是我又去学了Java,然而快毕业的时候发现找不到工作。当时被广西电网录用了,要我写ASP.NET,虽然没系统学过也阴差阳错就从ASP一直进到这个ASP.NET来了,进来之后基本上就没有离开过.NET了。

我做过电网、金融、传媒,还有互联网创业,一直到现在的快递行业,这二十多年的时间转眼就过去了,我跟着.NET一起成长。我学了这么多语言,为什么一直没离开.NET?在这个背景下,我讲讲我对国内.NET在企业使用情况的了解。

a96c5c0c99f32b5f28cbcd1a914c0503.png

在南方电网里,Java和.NET是平分秋色的。因为Web系统变动,.NET变少一些,Java变多了一点;工业是.NET相当低调的一个领域。工业里面做数据采集,辅助制造,清一色使用Windows系统,使用.NET,这个领域里很难找到非.NET的应用,.NET占比可能在95%以上。

很多人听到医疗就想到云什么的,但其实医疗领域大部分系统是不开外网的。医生开药方用的电脑的性能会偏高一点,跑的是一些桌面客户端。我自己观察过,这类桌面软件的复杂度很高。很多人都想说,这个桌面软件能不能换成Web,换成BS结构,在很多地方行得通,但在医疗里面真的很难。有些自助机慢慢会出现一些Web应用,一些Web做的展示和查询,还有就是拿这个客户端,用Cloudflare套一下Web去做一些东西,去连接硬件,例如说读卡器、打印机、身份证识别等等。大一点的三甲医院,它一年的信息化建设投入是过亿的。这个行业里服务器一般也是Windows驱动,虚拟化用的比较少,所以医疗行业里基本上也是以.NET为主。

生产行业,也属于工业,设备的控制机加工,制造领域.NET占比还是很高的。因为得益于Windows系统,.NET跟硬件的亲和性非常强。几乎所有外部设备都有Windows的驱动,Linux的驱动比较少;物联网领域,比如城市灯光秀、环保、建筑信息、设备运维等等很多跟硬件比较接近或者直接控制硬件的领域,基本上也都是.NET的。这些领域如果用其它语言开发,一是没有积累,二是对实时性的要求很高;我所在的中通快递,有几百台自动分拣机,还有非常多的设备,包括自动分拣、动态秤、快手、狂扫等,这些设备里面清一色是Windows+.NET,没有例外。

金融行业比较特别。量化交易的算法很多是用.NET写的,因为要用.NET版本的TensorFlow,不是Python版本的,Python版本跑算法是可以的,但是跑应用的话还是欠缺。

跨境电商.NET在国内虽然占比不高,但是在国外是非常流行的,像跨境电商领域对接国外的时候.NET非常受欢迎。咱们国内如果你去外资公司做开发的话,很多都是用.NET的。这两天我在群里面看到一位大佬讲了一句话,说这些人一直埋怨国内薪资不好,那你为什么不学一门外语呢?学一门外语薪资可能就打开了。

政府领域,近些年操作系统和软件国产化推的比较火热。最近两个月有一个朋友,他们国产化了一个信息收集的项目,我也给了他们一些建议,经过论证,目前所有国产Linux操作系统都是支持.NET的, 6.0、7.0、mono都是很容易装上去跑起来的。国产操作系统最缺的是桌面软件,基本可以说.NET是在Linux桌面开发上最好的框架。我们自己也跟进了三年多,确实做的很不错。去做一些Linux桌面软件,哪怕一些小工具也是蛮有前途的,不要把目光只盯着互联网。

对于找工作来说,一些公司决策者对.NET的认知还停留在十几年前,和Java相比开的薪水少,技术人员钻研.NET的热情相对低,形成恶性循环。其实只要更新认知,调整合理的薪资水平,就不会缺.NET人才。而对于.NET开发人员而言,只要有能力,就不缺机会。

.NET Conf 2022盛会划重点

比特熊:今年依然是在12月举办了.NET Conf,三位嘉宾都是这次盛会的核心人物,给大家划个重点吧!

苏震巍:这次是12月3-4号两天,主题更丰富了。3号上午是主会场,下午是解决方案,可以具体了解用.NET针对不同行业有什么解决方案。4号更多聚焦在技术层面,主会场有一系列的分享,下午分为三个板块,.NET在前端, IoT,还有开源。今年我们的主题是开源、安全、赋能。其它的很多语言都出现过非常大的一些bug,或者一些漏洞,.NET目前还没有。针对这个问题,一方面我们如何主动提高安全的能力,另外一方面也向大家展示.NET 7在安全方面的能力。

黄国石:今年我们增加了IoT的分会场,在工业领域其实有很多很低调的公司,今年我们邀请了上市公司维宏的首席架构师,来讲他们在工业控制里面的一些实践。邀请了国内比较有名的王强,他自己做了一套非常成熟的系统,写过相关的书。想告诉大家,.NET在很多领域可以做的很轻松很好,特别是在IoT领域。

董彬:我觉得我是跟着.NET Conf一起成长的,从听众到主持人,去年的闪电演讲,这次是正式演讲,这次我希望能够隆重地把Avalonia UI这项技术介绍给国内的开发者,因为现在随着国产操作系统的普及,越来越多的国产操作系统桌面软件的开发要被提上日程,我对比了各个开发技术后觉得Avalonia UI是一个非常适合.NET开发者入门的技术,尤其是针对龙芯这样一个全新的指定架构的操作系统来说,Avalonia UI有非常好的表现,并且龙芯公司对这个项目是非常支持的。

苏震巍:我参与到了主会场,负责开源板块的新内容,比如自动化的测试,视频方面的FFMPG,如何用.NET来玩音视频的处理,以及我们怎样在.NET上用TensorFlow。另外还有一位不是神秘人物的神秘人物,去年我们邀请了Scott Hanselman来交流,今年是哪一位大咖大家可以到我们峰会的内容里面去揭秘。

07b0ef15e7c0e0c6c78a241a51ebdd4a.png

比特熊有话说

正值DOTNET 20周年和感恩节,比特熊与成为网友已久的几位专家探讨了.NET 7.0版本最新的测试感受和DOTNET “一路走来〞的特别故事。苏老师应该是新版本国内第一位公开测试者,黄老师提供了许多搜索不到的.NET应用企业的分析实感,通过.NET演进也里程碑化了董彬老师在这个领域的不断探索。了解了大家的真实经历,比特熊感受到了一项技术对开发者的能力促进和开发者的热爱不断推进的多维度探索。本期故事汇,不止技术选型,行业大观,经验畅谈,还有.NET领域风采各异的开发者映射出的DOTNET多样面。希望大家对自己憧憬的事物保有热爱,也从中汲取养分。

9338a64c2019ac3ed49d6ce9d4786a28.gif

568eecbbbf689b981037652c69206874.jpeg

8b8dd8b737a26c053e306a1fec996c77.png

扫描比特熊个熊微信二维码

加入【比特熊粉丝后援会】

与开发者一起嗨聊,期待成为你的好友~

7df7329a5bc293a5c1c9ae12b270731a.jpeg

74c6b24fb20ec1c5f1db827df06a842a.png

c5eb01fffc95a0aa015bf34171e73d7e.gif

点击「阅读原文」重温本次直播~

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

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

相关文章

Ubuntu Core 给物联网提供更多安全支持

开发四年只会写业务代码,分布式高并发都不会还做程序员? Canonical 是 Ubuntu 的一个桌面环境,该公司目前在云服务业务赚到了钱。因为 Ubuntu Core 为嵌入式设备带来了 Ubuntu 18.04 长期支持(LTS)代码库。Ubuntu Core 的镜像大小为 260MB&…

semantic ui要装什么才能使用

作者:呆呆笨笨链接:https://www.zhihu.com/question/32233356/answer/196799506来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。本答案将以两种方式讲解如何从零开始使用 Semantic-UI,…

用户帐户控制设置_创建快捷方式以避免用户帐户控制弹出式快捷方式

用户帐户控制设置There are numerous applications which, when launched, result in a UAC (User Account Control) warning being displayed. There are reasons why this security measure is a good idea, but it can also be extremely irritating. ElevatedShortcut lets…

rest_framework01:前后端分离\规范\简单例子(查询某本书)

web 开发模式 RESTful规范 1 数据的安全保障 url链接一般都采用https协议进行传输 注:采用https协议,可以提高数据交互过程中的安全性 2 接口特征表现 用api关键字标识接口url: https://api.baidu.comhttps://www.baidu.com/api注&#xff…

.NET Core如何通过SSL访问MongoDB?

【.NET Core】| 总结/Edison Zhou大家好,我是Edison。最近有一个ASP.NET Core通过SSL证书访问MongoDB的需求,但是在网上发现资料很少,于是调查了一番,做了如下的笔记,希望对你有用。背景在实际场景中,开发环…

在pom.xml中配置nexus上传地址

2019独角兽企业重金招聘Python工程师标准>>> <distributionManagement> <repository> <id>thirdparty</id> <url>http://&#xff5b;nexusIP地址&#xff5d;:8081/nexus/content/repositories/thi…

网页背景平铺_在大约十秒钟内为网页创建无缝平铺背景

网页背景平铺Creating a background image for your webpage (or desktop background) isn’t challenging at all. In fact, even a newbie Photoshop user can bash one out in about ten seconds. Here’s the simplest of simple methods with surprising, great results. …

9月11日学习内容整理:正则表达式,re模块

一、正则表达式&#xff1a;正则是很大的一个知识点&#xff0c;不会仅仅是下面这些东西 1、概念&#xff1a;正则表达式就是一种对字符串匹配的规则&#xff0c;注意是只对字符串&#xff0c;正则表达式和python没啥关系&#xff0c; 2、表达式&#xff1a; &#xff08;1&…

MongoDB的安装与使用

MongoDB是一款NoSql数据库。NoSql数据库叫非关系型数据库&#xff0c;NoSql的全名Not only sql。是为了解决高并发、高可用、高可扩展&#xff0c;以及大数据存储等一系列问题而产生的数据库解决方案。NoSql&#xff0c;它不能替代关系型数据库&#xff0c;只能作为关系型数据库…

linux 基准测试_如何对Linux系统进行基准测试:3个开源基准测试工具

linux 基准测试Linux’s command-line utilities can do anything, including perform benchmarks – but using a dedicated benchmarking program is a simpler and more foolproof process. These utilities allow you to perform reproducible tests across different syst…

.NET 7 新增的 IParsable 接口介绍

.NET 7 是一个新版本的 .NET&#xff0c;它新增了一个名为 IParsable 的接口。这个接口可以帮助开发人员更容易地在代码中解析字符串。IParsable 接口包含两个方法&#xff1a;Parse 和 TryParse。Parse 方法用于将一个字符串解析为指定类型的值。如果解析失败&#xff0c;则会…

spring+springMvc+struts的SSH框架整合

1.建立一个web项目 2.导入SSH框架所需jar包 3.配置web.xml文件 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xmlns"http://java.sun.com/xml/ns/javaee" xsi:sc…

听说这个语言认知服务又出新功能了?

点击上方蓝字关注我们&#xff08;本文阅读时间&#xff1a;7分钟)语言是人类智能发展的基石。鉴于语言拥有普遍性&#xff0c;几乎没有特定的技术或 AI 技术得以颠覆整个社会。微软的使命是赋能地球上的每个人和每个组织&#xff0c;帮助他们取得更多成就。立足于该使命&#…

自定义异常最佳实践_播放,自定义和组织媒体的最佳文章

自定义异常最佳实践Computers today are used for much more than generating documents, writing and receiving email, and surfing the web. We also use them to listen to music, watch movies and TV shows, and to transfer media to and from mobile devices. 如今&…

CSS中的路径裁剪样式clip-path

前面的话 CSS借鉴了SVG裁剪的概念&#xff0c;设置了clip-path样式&#xff0c;本文将详细介绍路径裁剪clip-path 概述 clip-path属性可以防止部分元素通过定义的剪切区域来显示&#xff0c;仅通过显示的特殊区域。剪切区域是被URL定义的路径代替行内或者外部svg&#xff0c;或…

macos mojave_如何修复macOS Mojave上的模糊字体(使用亚像素抗锯齿)

macos mojaveApple’s macOS Mojave disables subpixel antialiasing, also known as font smoothing, by default. On a MacBook Air or a desktop Mac hooked up to a non-Retina display, upgrading will make your fonts look worse. 苹果的macOS Mojave默认情况下禁用子像…

一个变量命名神器:支持中文转变量名

变量命名的规范&#xff0c;对于我们编程&#xff0c;大家都知道是非常重要的&#xff0c;上次给大家推荐过一个命名辅助工具《程序员还在为变量取名苦恼&#xff0c;那是因为你不知道&#xff0c;这个变量命名神器》&#xff0c;但大家一致反馈存在2个问题&#xff1a;1、网速…

1.操作系统概述

2019独角兽企业重金招聘Python工程师标准>>> 操作系统的发展过程 无操作系统的计算机系统单道批处理系统&#xff08;50年代&#xff0c;系统资源利用率低&#xff09;多道批处理系统&#xff08;60年代&#xff09;分时系统&#xff08;70年代&#xff09;实时系统…

测听hl和nhl的区别_播放NHL曲棍球的最便宜方法(无电缆)

测听hl和nhl的区别If you’re like me, you watch hockey, and…basically no other sports. You also, like me, would like to skip the cable subscription. So what’s the cheapest way to watch NHL hockey online so you can cut the cord? 如果您像我一样&#xff0c;…

使用Java实现K-Means聚类算法

2019独角兽企业重金招聘Python工程师标准>>> 关于K-Means介绍很多&#xff0c;还不清楚可以查一些相关资料。 个人对其实现步骤简单总结为4步: 1.选出k值,随机出k个起始质心点。 2.分别计算每个点和k个起始质点之间的距离,就近归类。 3.最终中心点集可以划分为…