软件定义一切?,2024年最新Flutter中网络图片加载和缓存源码分析

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注go)
img

正文

报告中除了回顾了软件技术的发展,梅宏教授还从操作系统的视角来理解软件定义的本质和内涵:硬件资源虚拟化、管理功能可编程。最后,梅宏教授也展望了软件定义的未来,他认为在人-机-物融合计算的场景下,万物皆可互联、一切均可编程、进而分析了软件定义的带来的机遇和挑战。

软件定义一切,人-机-物互联就是软件人的机遇。软件定义的挑战是什么?梅宏教授认为是体系结构设计决策,系统安全,系统质量以及如何更轻量的虚拟化,还有怎样打造高度自适应的软件平台。具体内容请看雷锋网整理编辑的梅宏院士会场实录。

以下是梅宏教授的会场实录,雷锋网在不改动原意的前提下,做了调整和编辑。

感谢大会给的这个机会!近几年中,我在不同的场合也做了很多不同的报告,但是这几年都是被动地被拉去讲大数据,后来想想,差点把自己的主业忘了。现在软件很重要,我们每天的生活都离不开软件,可能大多数人每天早上起床的第一件事儿就是打开某个APP。所以我今年给自己订了一个小目标,但凡有机会做报告,我就只讲软件,也是为本行业的人呼吁一下,所以我今天讲的题目很大,软件定义一切。

无处不在的软件

“软件定义一切”并不是我说的,我要是这么说可能把咱们今天在座的很多同行都给得罪了。我是想借这个题目讲一讲软件的三个阶段。第一个题目我想大家都认可,软件已经无处不在,第二个题目是软件定义的时代。我们正在进入一个新的时代,刚刚过去的十九大讲是中华民族复兴的时代,我是从信息技术对人类社会的改造这个角度来谈这个新时代,不同的人从不同的角度也给了这个时代不同的赋名。从基础设施视角来看,这是一个互联网+时代;从计算模式视角来看,这是一个云计算时代;从信息资源视角来看,这是一个大数据时代;从信息应用视角来看,这是智能化时代。我想说在这些里面有一项很重要的技术,那就是软件。某种意义上来说,我们这个时代就是一个软件定义的时代。

梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017

软件产业呈持续增长态势。从国内来看,国家工信部公布的2012年到2016年的五年数据中,软件和信息技术服务业始终保持高增长,在电子信息行业的比重也在不断上升。2008年金融危机开始以后,很多行业都在下滑,而信息技术行业还在保持增长,而软件行业的增长又是远远高于信息技术其他的比重。从国际上来看,全球有19个国家软件支出占国内生产总值的比重超过0.5%,其中美国已经超过1%。这个产业规模一直在保持增长。第二个软件从业的人数,2014年全球ICT技术工人约为2900万人,其中专业软件开发人员约1100万人。国家工信部给出的近五年数据中,软件从业人数也在逐年增长,2016年达到576万人。但如果换一个视角,从开源社区来看,比如程序员经常去的一个软件问答网站stack overflow,注册3200万人,其中超过2500万人是多次访问。再比如CSDN,注册用户达2500万,活跃用户超过800万。它们普遍都要比工信部公布的数据高,这说明和软件相关的从业人数有很多。

回顾过去计算机软件发展,我认为大概可以分为三个阶段。第一个是1946到1975中期,是软硬一体化阶段。第二个是1975年以后,软件产品化、产业化阶段;第三个是1995年以后,软件的网络化、服务化阶段。

梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017

我想讲一讲这三个阶段的大体特征。在软硬一体化阶段,也就是计算机刚出现的时候,是没有软件的,都是以程序实现的,大体上展现方式的是机器语言,汇编语言。早期应用领域以破解密码,军事领域的计算为主。60年代初期,开始出现“软件”一词,融合程序和文档为一体,作为独立的形态从硬件分离出来,以IBM 360系列机为代表(尽管还是和硬件捆版一起销售),也逐渐形成了计算机学科和程序员行业。它的展性形式是高级程序语言+文档,应用领域主要是商业计算和其他科学计算领域。软件产品化、产业化阶段,以Microsoft和Oracle的出现,标志着软件开始成为一个独立产业。PC的广泛应用和软件产品化催生了人类历史上信息化的第一波浪潮,其主要特征即以单机应用为特征的数字化阶段。紧接着就出现了办公软件,彻底改变了人类传统的办公行为,微软office迄今依然是微软标志性产品之一。九十年代中期开始 ,软件进入网络化,服务化阶段。互联网推动了软件从单机向网络计算环境的延伸,带来了信息化的第二波浪潮 ,其基本特征是以联网应用为特征的网络化阶段。

梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017

做软件的人总是希望把互联网作为平台,来研究软件。软件的形式也因互联网发生变化,形态从传统的拷贝行为变为软件服务,等到后期移动互联网的产生,促成APP的诞生,整个软件模式都发生了变化。应用领域已经渗透到社会经济生活中的方方面面。

互联网环境下软件呈现新特性和新特征

我们中国学者自己定义一个词:网构软件。指的就是面向互联网计算的软件新范型。这些新范型是什么,总结有几个性质,实体的自主性,实体对环境的情景感知,实体之间的自主协同,实体的在线演化,以及可信性需求。简单来说,软件呈现网络化体系结构,基于网络进行开发,通过网络交付分发并提供服务,这就是软件的服务化。软件和硬件相比,同样都作为功能性产品,但软件这种工具和互联网结合就能够实现一种真正的服务化。紧接着移动互联网的产生,又产生了一种新的模式,这就是APP。苹果商店拥有300万+个APP,累计下载量超过1500亿次。这个时候创造了一种新的模式,客户端要和服务器端合起来完成一件任务,他也是一种拷贝,不过是一种新的拷贝方式。互联网深刻改变了人类社会和生活模式,而互联网的核心价值是连接,软件是实现互联网核心价值的重要使能技术。硬件连接虽然很重要,但最终的灵活连接还要靠软件。

梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017

最终我引用两位名人的话,NetScape创始人Marc Andreessen说:Software eats the world! 软件吞噬世界。另一位是C++语言发明人,Bjarne Stroustrup说:人类文明运行在软件之上。

软件定义的时代

第二部分我讲的是软件定义的时代。互联网及其延伸,正在导向我们走在一个新的模式,人-机-物的融合。信息技术的网络化、泛在化、智能化趋势蕴含了人-机-物和谐发展的愿景。当前,正在兴起信息化的第三波浪潮,即以数据的深度挖掘与融合应用为特征的智慧化阶段。这个阶段我命名为智能化阶段,在这个新的环境下,人机物融合环境下的信息基础设施是海量的资源。第二来看他的应用,人机物融合环境下的新型应用:需求形态多样。面对海量资源和应用需求形态多样的这两个特征,人机物融合需要新的平台环境,如何凝练应用共性,如何有效管理资源这是这个平台的基本要求。在这样的平台之下,由于应用需求变化频繁和应用场景动态多变,这个平台能否实现按需灵活定制?

什么是软件定义?

软件定义的真正落地,还是在云计算平台里面的应用。2011年前后,OpenFlow被用于云计算平台中进行网络管理,并被广泛接受。在15年的时候,Gartner战略报告首次出现SDN(软件定义),SDN重新“定义”了传统的网络架构甚至通信产业。

软件定义网络的技术原理是通过一组API对网络设备进行任意的编程从而实现新型的网络协议、拓扑架构而不需改动网络设备本身。

计算机的操作系统是什么,是管理硬件资源、控制程序运行、改善人机界面和为应用软件提供支持的一种系统软件,即向上提供公共服务,向下管理资源。如果从操作系统视角来看软件定义,操作系统是软件定义的“计算机”,从软件研究者的视角,操作系统体现了“软件定义”之集大成。

梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017

在我的理解看来,软件定义的技术本质就是把过去的一体化硬件设施打破,基础硬件及其虚拟化提供标准化的基本功能,然后通过管控软件控制基本功能,提供更开放、灵活、智能的管控服务。

软件定义的技术本质:硬件资源虚拟化,管理功能可编程。硬件资源抽象为虚拟资源,然后用系统软件对虚拟资源管理和调度。就是在硬件资源虚拟化的基础上,用户可编写应用程序,满足访问资源的多样性的需求。大家现在可以看到软件定义出现了各种各样的延伸,软件定义的存储,软件定义的计算,软件定义的环境,软件定义的数据中心等等。但所有架构都跳不出操作系统的三层架构,就是说软件平台的三层架构,这些SDX均符合“硬件资源虚拟化”与“管理任务可编程”的技术原理。

这就是我对软件定义的理解。

软件定义带来的机遇和挑战是什么?

我们可以看到的机遇就是软件定义一切。定义一切,人-机-物互联是我们追求的目标。我们是不是最终能做到万物皆可互联,一切均可编程呢?这就是软件定义给未来世界达成的目标,也就是我们的机遇所在。我们看到软件定义的本身进一步泛化和延伸,我们要软件定义我们的物理世界,再进入我们的城市、我们的行业、我们的校园,从单一的资源管控到人、机、物融合环境下对各种资源全方位的互联互通。这是我们今后努力的方向。

人工智能是当今的热潮,但我个人的观点还是认为处于数据驱动的算法智能阶段,软件平台如何提供“通用”的智能应用支撑,并允许按需深度定制?是否会出现面对AI的操作系统?我想这个也是可以通过平台的方式去实现。软件技术在新一轮革命技术中毫无疑问是核心竞争力之一,新一轮制造革命需要实现“硬件”、知识和工艺流程的软件化,进而实现软件的平台化,本质上即“软件定义”。随着人、机、物的融合,软件定义的挑战可以分为这几个方面:体系结构设计决策,系统质量,系统安全,更轻量的虚拟化,从原有系统到软件定义系统平滑过渡,高度自适应智能软件平台。

体系结构设计决策,包括比如如何确定受管元素的合理“粒度”和“层次”?如何界定软、硬件的功能划分并组装、配置相应元素?等。

系统的质量,需要解决的问题有如何合理平衡管理灵活性和“虚拟化”后的性能损耗(与直接访问原系统相比)?如何降低“软件实现”的复杂性和故障率,有效定位故障以保障可靠性?等等。

系统安全,对硬件资源管理可编程带来开放性、灵活性的同时,也可能会带来更多的安全隐患。对于工业控制等安全攸关领域来说,可能会带来难以难以估量的损失。

更轻量的虚拟化。大量的新设备产生,虚拟化实现了对硬件资源的软化,是软件定义的基础技术,现有以虚拟机为单位的技术过于重载,难以满足性能和实时性要求。

原有系统到软件定义系统平滑过渡。如何将原有系统平滑过渡到软件定义系统?通过对已有的资源进行大幅度的改造,我们需要安装新的硬件,需要做新的软件管理系统,以及面临的人力,时间,经济,风控等因素。这个平滑过渡也需要合理的方案,否则很难做成这样的事情。

高度自适应软件平台。从软件人追求的目标来看,我们想追求一种更为高度自适应的智能软件平台。现在平台方式是以硬件资源为中心的,如果基础设施层发生变化,软件平台就要发生改变,改完之后,上面的应用也可能发生改变。我们追求的理想方式是,软件平台具有预测和管理未来硬件资源变化的能力。



软件是知识与大脑智慧的结晶,正开始成为人类社会的基础设施,是未来世界的重要元素。

软件定义的本质是通过虚拟化及应用编程接口把硬件的可操控的成分暴露出来,然后按需实现硬件的管理。两句话:基础资源虚拟化,管理任务可编程。

自从“软件定义”这个概念出现以后,所有硬件设备都在围绕软件定义作部署。于是,软件开始定义网络,定义存储,定义计算。

在产品层面,软件定义诞生了很多改变行业的产品。

1

软件定义网络,诞生了SDN。IT团队可动态并可编程配置与塑造逻辑网络层。

软件定义存储,诞生了SDS,所有存储相关的控制工作,都仅在相对于物理存储硬件的外部软件中。

软件定义计算,诞生了云计算。使得计算资源可以任意配置,只需投入很少管理工作就能驾驭网络。

软件定义消费电子,诞生了智能手机、PAD等一系列产品,甚至于新能源汽车。

作为软件定义的第一款真正意义上的手机产品,iPhone自诞生以来就在手机圈独领风骚,风光至今。一定意义上,现在所有品牌、类型的智能手机,都是在延续软件定义这个产品逻辑。

同样,软件定义让特斯拉汽车能够像手机一样,奔驰在高速公路上。

现在,已经有越来越多的人认为,软件可以定义世界,软件能够定义一切,软件足以定义未来。软件,正在重新定义所有你能想到的东西,我们正在身处一个软件定义的世界。

2

从技术发展趋势上,IOT时代所有硬件产品都具备智能、联网的特性。所有产品都是一个智能终端,所有产品的另一端都要连接云计算,因此这些产品都出自软件定义。

在生活上,智能家居取代普通家居已是不可避免的趋势。当家里所有家居都智能化以后,整个房屋都变成了一个智能终端,全屋智能本身就是软件定义产品的结果,智能房屋同样因软件定义而生。

工作也是如此,以前办公都是线下,现在办公都在网上,各种管理流程都通过网络流通,智能客服、智能人力资源、智能管理系统,软件定义的办公生态让公司运作井然有序。

不要以为软件定义与老百姓日常生活姓毫无干连,实则已是息息相关。你到无人超市购买生活用品,扫码或者刷脸就能购买想要的任何东西;你到智能餐吧吃饭,滑滑手指几分钟后就能吃到机器人炒的美味可口的饭菜;你下班回家,软件叫的车早已等候在楼下;你要去旅游,提前一星期就订好了机票和饭店。

衣食住行,吃喝玩乐,工作学习,现在都已离不开软件定义的网络。基于网络的商业逻辑事实上也都因软件定义而生,在这样的软件定义的商业生态之下,人们又怎能逃离软件定义的世界?

3

在纯互联网世界中,社交软件连接了一切。在万物互联的生态中,社交依然是人与人之间互通的载体,不同的是大量联网且有身份标识的智能硬件撑起了世界。每天数以亿计的各种形态的智能硬件,传输大量的用户行为数据到服务器,这些数据将为健康、医疗、教育、保险、金融、信用等行业所广泛应用。

当前的智能硬件产品越来越好用,原因在于开发者将将软件应用的逻辑转嫁到了硬件身上,这正是软件定义的初衷。而现在的智能硬件之所以更智能,更安全,是因为软件定义的云计算中部署了人工智能技术和区块链技术,才会让用户的使用体验部不断提升。

事实上,现在很多智能硬件的创始人及负责人,都是过去成功的软件工程师或者产品经理。

这个IOT时代,正是软件定义的产物。是软件定义,让产品具备了智能与联网的特性;是软件定义,让产品能够以智能终端的产品形式服务用户;同样是软件定义,让智能硬件产业有了更有想象力的商业模式,用户、数据、社群、共享经济等的综合反映,让现在的IOT产品具备的更长的价值链

可以说,一切智能终端,都是因为软件定义而存在更广泛的价值。

4

现在人们所理解的智能终端,更多的还是以消费电子产品为主。但在IOT时代,成千上万的工厂机器人、3D打印机等制造设备都将变成智能终端,工业互联网领域则把这些终端称作边缘设备。

当前,互联网大的发展趋势是从消费互联网向工业互联网迁移。为什么会出现这种情况?并不是说消费互联网以后不行了,至少能够保持现有的6.5万亿市场规模。

资本、企业、产业都向产业互联网过渡,是因为产业互联网的产能、效率、价值尚未与消费互联网匹配,需要以更多的技术及资源对其进行持续的优化,以提升效率,降低成本,优化结构,放大价值。

在工业互联网领域,工业互联网平台是核心,为工业APP提供必要接口、存储计算、开发组件、工具资源等环境支持,工业APP则支撑了工业互联网平台的智能化应用,是工业互联网平台的价值体现。

工业互联网平台具有显著的软件定义的特征,软件正在定义数据采集已经定义工业PaaS平台,工业APP是面向特定工业应用场景的软件程序。

可以说,工业APP是以软件形式定义工业业务应用,是一系列软件化、可移植、可复用的行业系统解决方案。而先进制造,其本质就可以总结为软件定义制造。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-n84JPvXN-1713605351707)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值