食为奴国语下载:我们这样的软件公司怎么办(补充版,懂技术的入)

来源:百度文库 编辑:九乡新闻网 时间:2024/04/25 02:59:41
我们这样的软件公司怎么办(补充版,懂技术的入)


60多年前,我们公司一群无知无畏充满理想的程序员从俄罗斯那里里找了一个免费的开源软件框架,进行了汉化以后,写了几行漏洞百出的代码,产品居然上线运营了。系统试运行期间还算正常,但是随着系统外围接口的增加,系统固有的问题就暴露出来了。30年前,新CTO实在看不下去了,重构了部分代码,改进了部分用户体验,但框架依旧是原来的旧框架。这几年,新代码和旧框架严重不兼容,产品濒临崩溃,用户流失严重。关键是那个开源框架设计思路有问题,还没哪个使用它的产品长期稳定运行过,后来连俄国人自己都抛弃不用了。
其实这个软件最初设计思路就是单线程设计,这有一个前提就是单线程必定是强壮和稳固的,但是这个前提只是存在于理论上,并没有实例证明。因此当世界开始流行多核处理,并行处理,甚至已经有部分软件实现了云计算的时候,单线程设计的先天缺陷就暴露出来了,主要问题在于单线程占有所有系统资源而且不受控制,甚至连原来系统的保留资源都被占用了,线程的运行方向就变得不可控,系统鲁棒性经受了严重的考验。
这一切在用户界面上,就是隔三差五跳出应用程序错误。当用户试图开启调试模式的时候,由于单线程控制了所有的输入和输出,象资源利用率、资源效率等指标都被屏蔽了或被修改了,但是系统还告知用户“由于你的操作不当,系统资源暂不可用”,用户还只能点“确定”按钮,然后等待资源可用。
相对而言,多线程的设计考虑到了多线程并行运行,或暂时某一线程优先、其他线程等候等情况,虽然存在线程之间切换成本,有时候也存在算法不当致使多线程抢夺资源的情况,但是多线程毕竟保证了系统的稳定性,用户可以借助不同的线程完成程序的运行,至少在用户体验上没有本质差别,运算结果也能基本准确。
云计算则更为领先,云计算使用了更先进的虚拟技术,采用分布式计算的方式来处理用户请求,在短时间内作出响应。用户可借助某些通用组件和程序包,实现跨软件联合计算运行。但是目前,在虚拟技术的耦合度上还存在一些问题,比如某些虚拟技术一发动全身、存在安全组件等级下降等问题。
当然了,单线程、多线程和云计算互相并不兼容。单线程指责多线程技术在业界形成了垄断;多线程则一直都在打压云计算的市场份额;云计算呢,到现在还没承认单线程资源分配方式的技术标准!
但是从目前的用户体验来说,单线程已经到了几乎难以为继的地步了。这时我们该怎么办呢?第一种方法是继续修bug打补丁,补丁实在太多,工程师和现有的经费几乎耗尽了,而且不知道打补丁还能几年。第二种方法是换个框架重构代码,但是这种重构会引起系统巨大的变动,也许是一个崭新的系统,也许系统会崩溃。第三种方法是干脆换掉这些程序员。但是程序员号称他们对软件开发作出了革命性的贡献,只可以程序员控制用户行为,绝不允许用户另行选择。可是用户居然发现这些程序员拿到了其他公司的Offer!
大家说说,这个软件公司该怎么办?