当前位置: 首页 > 科技观察

我想重构“软件行业”...

时间:2023-03-19 23:54:11 科技观察

【.com原稿】这几天突然有个想法,如果把整个软件行业想象成一个项目,而我是整个项目的架构师,如何重构项目。图片来自Pexels的假设当然是不可能的。没有哪个软件公司会“听我的”,但如果我“重构”得好,还是有可能成为现实的,因为技术总会朝着好的方向发展。A好的重构可能与未来不谋而合。我们整体来看一下我们的“软件产业”项目:从范围上来说,包括用户界面、各种应用软件APP、操作系统,都在我们的管辖范围之内。那么,再采访一下我们的客户:资深宅男A:先提一个问题,以后看电影可以不下载吗,蓝光动作片要几十G,看的时候还得拷贝下载换一台新电脑。玩家B:别说下载了,有时候根本玩不了,比如PS4上的Sedar,Windows还是不行。许多其他软件也是如此。如果我想玩LOL,我需要买一台电脑。要玩万王之王,连手机都要买。一肾太子C:设备能不能不要钱,就电脑,手机,平板,哪个都不容易,要几千块,而且互不兼容,所以不喜欢它。霸道总裁丁:我在家里抄的内容,在公司是抄不来的。你是不是一个****?它们都是我的电脑。这么简单的功能为什么不能实现!!!...作为专业的软件从业者,用户永远是对的,架构师的工作就是解决他们的痛点。之所以存在这些业务痛点,肯定是设计在某些地方没有做好解耦和隔离。在设计界流行了很久的一个词叫做MVC,主要思想是一个水平分层的概念。从我们的个人电脑和手机等智能设备来看,也有明显的三个层次:外设(显示器、手机屏幕、键鼠、手柄、体感设备等)APP(各种应用、游戏、PC软件等).))操作系统(连接外设和应用)那么以上客户的痛点是因为三层设计不好,是不是强耦合?我们的显示是依赖于操作系统还是APP?不,display可以在任何地方使用,它们之间有非常成熟和标准的接口进行隔离。那么应用软件是否依赖于操作系统呢?确实如此(即使不依赖OS,也已经适配了),这也导致我们的软件在操作系统之间的可移植性很差。但这并不是根本原因,因为这只会影响软件开发者,影响并不大(市面上操作系统种类不多,一般软件开发者只会针对特定操作系统进行开发)。那么问题出在哪里呢?其实就是耦合层面的问题!上面我们已经分析过,外设和操作系统是解耦的。APP虽然与操作系统耦合,但无害。不依赖于上层外设和应用。但是我们都忽略了一点:这些解耦只是接口上的解耦,实际上对物理距离有很强的依赖性。如何理解很简单:外设必须和主机放在一起。用户依赖前端设备(用户必须有显示器、鼠标、键盘等前端设备才能使用软件),前端设备强烈依赖于操作系统的地理位置,软件依赖于操作系统,操作系统依赖于硬件。所以要玩软件,我们就得把软件、操作系统、主机硬件都弄到本地,放在一起。那么如果我们解决了这个距离依赖,那么很多痛点会不会消失呢?确实,以上棘手客户的问题都将迎刃而解,整个行业将发生翻天覆地的变化!1.以前大家都共用一台超级大的电脑。十个人在一台电脑上玩游戏,现在每人只有一台显示器、键盘和鼠标,而且十台电脑都搬到了云端。你想想,这十台电脑还是十台吗?安装软件还是安装十份?绝对不可能。我相信未来的软件开发者将看不到操作系统。就是多少内存,多少带宽,多少存储空间(或者根据实际使用情况动态收费),然后在云端安装一份自己的软件就可以了。就像一台电脑连接了无数条无限长的鼠标和键盘线。2、云操作系统的出现当所有的软件都上云后,势必会推动操作系统的演进。我们现在在开发软件的时候经常会谈到高并发、微服务、分布式、动态扩展等等。硬件隔离)。而且,这些东西对于任何软件来说都是一样的,技术门槛还是很高的。每个公司都有一个大头。它们之间的唯一区别是软件本身的内容。相信这些类似的东西最终都会被云操作系统收编到完全看不见为止。每次下载硬盘,都以为是对硬盘的简单读写。其实底下还有一个超级巨无霸的分布式智能存储软件。您不必担心读写性能,也不必担心数据丢失。你以为你只是部署在单机上,云操作系统已经根据实时流量和你一起做了云部署和动态扩展,你看不到。简单来说:云操作系统将软件和硬件完全隔离。软件看到的只是操作系统,操作系统实现了万物互联。现在云厂商让传统企业上云,无异于上坟。本质上是因为我们看到了云,需要调整代码结构,改革运维。相信以后上云成本不会太大,因为只是把本地机房的电脑换成更大的电脑而已。云操作系统也可能只是现有基础操作系统上的一个虚拟适配层。不管怎样,我们不对未来的技术实现做太多的猜测,但它一定会来。3.资源利用率最大化当所有资源都由云操作系统集中接管时,资源肯定会得到最大化。以前10000人看一部电影,每人都要下载一份。现在只需要一份。过去,每个人都有一台电脑,不用时很浪费。现在共享一台超级计算机,总的资源消耗肯定会大大减少(参考一个二手宽带厂家卖100M带宽给100户,每户10M带宽)。对于用户来说,复制任何文件都将在几秒钟内完成!相信未来的云系统本身已经做好了各种备份容灾,用户层面的副本只是一个参考副本。而且即使用户需要修改文件,也会有非常智能的存储软件,可以通过延迟复制、增量记录等方式节省大量资源。实际情况下,可能需要考虑存储介质的IO瓶颈,而且还是会存在多份,只是相对于现在的存储空间来说,还是减少了千倍。4.BS/CS模式正在慢慢消失。用户的电脑在云端,软件开发商的应用也在云端。他们都部署在一起。有客户端的概念吗?没有client,但是也有C端。浏览是设备的概念吗?所有的软件只需要定义自己的本地UI,通过操作系统的接口传递给外设即可。当然,现在我们所谓的C端不可能一下子就消失了。这些东西肯定有一个过渡期,但最终都会慢慢消失。但更可能的情况是,未来的C端只是指我们的显示器、键盘和鼠标。5、个人操作系统的消失和云操作系统的兴起不需要多解释。云上的计算机绝对不需要接口。像Windows这样的桌面级操作系统肯定会慢慢衰落,而面向云的操作系统肯定会崛起。这类操作系统肯定有很强的硬件整合能力(我比较看好华为的鸿蒙,至少他的想法是对的。鸿蒙有个循环的概念,其实真正的循环是“不用循环”,把一个东西从A传递给B的时候,总会有同步传递的消耗,如果A和B原本是同一个人,还需要传递吗?)。6、智能存储软件的兴起随着个人电脑普遍连接到云端,专业的存储软件将取代现在的硬盘,存储将变得更加智能。相当于一个超大的智能硬盘。主要功能如下:自动备份、自动修复:再也不用担心硬盘损坏和数据丢失。(基础存储软件都会有raid、容灾等功能)弹性伸缩:可以随时插入新磁盘进行扩容,不用的硬盘也可以自动断电,节省能源消耗。自动碎片整理:自动对磁盘进行碎片整理。比如有100个同样大小的磁盘,每个磁盘有10%的数据,那么可以把这些数据整理成10个磁盘,另外90个磁盘可以闲置。自动压缩:比如存储两个1G的文件,复制其中一个,另一个只稍微修改。最终使用的存储空间大约等于1G+修改部分的大小。极速复制:其实和自动压缩很像。复制时只复制引用,修改时只存储修改的部分。7、云操作系统占主导地位。我认为前端设备和操作系统之间的接口不能标准化。我更喜欢有几家大型云操作系统制造商,每家都有自己的标准。为什么这么说呢,因为一旦标准统一了,就意味着任何厂商都可以生产外设(就像浏览器一样,百花齐放),而外设是流量的主要入口,所以没有人愿意放弃这样的一个大胖子.软件和操作系统之间的接口会被标准化吗?我认为答案并不重要。统一比较好。如果不统一,就会有类似JVM的适配层。8.外设会变。目前的前端设备配备了部分HDMI接口,未来可能只有一个网口或WiFi模块。每个前端设备都会有一个协议解析模块,将云端操作系统的数据解析成音视频数据。其实很早以前就出现了TC盒子这样的云桌面,只是TC盒子还是有点大,像个小操作系统,可以接键盘鼠标显示器。在显示屏上)。TC盒的实现原理我没有研究。不知道他是怎么把数据传到前端的。键鼠操作也很流畅,就是画面不是很清晰。不知道用它来玩那种大型的单机或者网络游戏性能会怎么样。不过没关系,最基本的云桌面已经实现了。随着各种技术的发展,无限接近本地连接的云桌面还会远吗?我猜,以后外设会特别便宜,甚至免费。因为你用了我的前端设备,就代表你选择了我的云操作系统和我支持的所有软件,前端设备的成本最终可以转嫁到软件服务费上。9、显示器、鼠标、键盘等外设厂商下滑。软件开发商和用户都上云了,接口都是云厂商私有的。之前的外设厂商无法通过USB口、耳机口、HDMI线连接到云端。的。因此,未来外设厂商将沦为孙辈的角色。好的情况云厂商会卖协议转换模块给他们,坏的情况云厂商自己做外设。像米饭、oqqo这样没有自己操作系统的终端厂商会很惨。以后的手机就只剩下一块屏幕了,下面的界面还是别人的。10.出现一个真正的小程序。热门小程序至少是一个程序。以后应用商店里的APP可能连程序都算不上了,它只是一个链接,只是保存了一个云服务器的地址。您使用您的账号和密码登录,您可以直接与云电脑通信,享受软件服务。软件和系统都已经准备好了,你只要告诉我你想玩什么就可以了。11.我需要特别谈谈芯片。现在我们国家的筹码都被洋基队卡住了。如果手机和终端都连接到云端,芯片的核心竞争力将变成性能,而不是尺寸。我那么大了。一个机房,我需要多少纳米给你?当然,某些领域的专业外设可能还是需要先进的芯片,但芯片危机肯定不会像现在这么严重。或许届时国产芯片超越美国也不是没有可能。可能吧!12.软件开发和维护变得更容易与UI和后端服务分层)。软件和用户不再有直接关系,而是通过云操作系统连接起来,所以插件问题、安全问题、版本升级、硬件性能瓶颈可能都没有了,不用太担心。13、网络安全重新定义如上。软件与外部网络之间没有接口。它只与操作系统和内部网络直接交互,所有安全问题都转移给操作系统。我相信安防行业将会被重新定义。以前说的是模拟客户端发送网络请求攻击服务器,现在你随便拿个键盘鼠标,我看你怎么攻击!当然你牛逼的话,破解一下云操作系统和外设的接口,就可以了,为什么,以前的一些按键和键盘点击事件的传递估计是很有限的(当然,外设到时候肯定会有专门的认证接口,只要把这个保护好,应该不会出什么大问题)。14.显卡声卡之类的东东云操作系统肯定不需要显卡声卡(肯定会有本地视频、音频、视频数据转网络数据的模块,不知道是什么会被调用),即使有,也很可能会被转移到显示器上,我只是觉得这些东西会发生很大的变化,拭目以待。15.其他影响用户的习惯改变了,很多东西都会改变。像现在这样的游戏机制造商应该被淘汰。没有人愿意买个大主机回家,下载游戏,天天更新,你支持的那几个游戏,其他系统都不兼容。呸!网吧很多年前,很多人预研说它会消失,因为大家都有钱,买得起电脑,谁还去网吧,到头来,还是活得好好的。不过这次真的要凉了,电脑没了,网吧里放什么,放个显示器就可以了?还别说,还真有可能继续活下去。个人数据上云后,安全和隐私将变得极其重要,应该有完善的法律法规。哪个公司敢挑战这个,一定很爽。远程会议和远程定位的实现将变得异常简单。现在所谓的网络游戏可能没有了,都变成超大型的“局域网”游戏,所有的数据都“本地”交互。....16。总结总的来说:未来会形成以云操作系统为核心的不同阵营。显示器和电脑的连接线被剪掉,换上了网线,手机上只剩下一块屏幕。用户将以软件为单位购买服务,而不是买回整个手机或电脑。以后大家想玩什么就玩什么,不用下载,不用更新。怎么把家里的东西抄到公司?还需要抄吗?记住你的账号,登陆哪里都一样。上面的东西一般都是假设,真的能实现吗?如果技术上不可行,那不都是废话吗,而且即使技术可行,你愿意用云吗?其实我觉得这个问题是毋庸置疑的。试想一下,在交通还不发达的时候,因为出门买东西不方便,大家都会把食物储存在家里。现在,交通很方便,但还是不够方便。至少跨省还是要几个小时的。但是如果哪天交通极其发达,你今天想去纽约喝杯咖啡,两分钟就能到。试问,谁会在家里的冰箱里放成堆的东西。相信只要解决了个人隐私和安全问题,大家还是愿意上云的。买电脑占用家里空间,自己装系统和软件,坏了就修,用几年再买新的。出差不能带电脑,不用的时候就浪费了。上云就不存在这些问题,可以按需定制、按需付费。技术问题更不用说:云操作系统更多的是实现问题,不存在无法克服的技术问题。至于网络带宽和时延,我们从2G,到3G,4G,再到5G,才十几年。网络接口的效率达到与本地接口相同的水平只是时间问题,因此无需担心。作者:王兵简介:现任鼎桥科技有限公司架构师,从事软件开发和软件设计十二年,精通Java,对设计原则和设计模式等有深刻理解,平时喜欢编写代码,做逻辑难题,打字玩游戏。编辑:陶佳龙征稿:如有意投稿或求报道,请加编辑微信gordonlonglong【原创稿件,合作网站转载请注明原作者及出处为.com】