首页 >>  正文

程序员找工作的软件

来源:baiyundou.net   日期:2024-08-29

【CSDN 编者按】对于遗留系统,我们必须记住,修复旧物件远比扔掉换新的更划算、更方便。

原文链接:https://stratoflow.com/legacy-software-systems/

未经允许,禁止转载

译者 | 弯月 责编 | 王子彧出品 | CSDN(ID:CSDNnews)

们经常拿软件开发人员和建筑师做类比,因为他们的工作与土木工程师有点类似。他们使用多种工具和技术来构建软件,就像建筑师建造高楼大厦一样。

然而,现实往往并没有这么简单。

有时,软件开发人员需要修复或改进老系统,因此开发人员需要时不时地站在机械的角度考虑问题。

在本文中,我们来探讨一下软件开发人员如何处理遗留软件。这些系统在如今的软件架构中当真毫无用处吗?程序员在改进遗留系统时需要优先考虑什么?

什么是遗留软件?哪里有这样的软件?

汽车在连续运转十年或行驶里程数超过几万之后,就会出现一些问题。毕竟,每个机械部件都有一定的耐用限制。

但这是否意味着这样的车辆必须报废?完全不会。

你需要的是一位经验丰富的机械师,更换最脆弱的部件,比如同步带或刹车片,之后车辆再行驶几万公里都不是问题。

软件开发在这方面也很类似。遗留软件就像一辆二手车,可能有一些问题,需要一些重构,但一般仍然能正常工作。你需要的是一位优秀的“机械师”来维护,并修复所有最脆弱的部分。

遗留软件的定义

从技术的角度来看,我们可以认为遗留软件是一种正在生产中运行的软件架构,但有些部分没有持续更新或支持。我们可以将遗留系统分为三大类:

具有不受支持的功能或新驱动程序不兼容的旧系统;

不符合软件开发最新标准的软件;

无法接收安全补丁的软件系统。

Stratoflow 首席技术官 Arkadiusz Drysch 如此定义遗留系统:

“基本上任何部署到生产的系统都可以被视为遗留系统,因为这些系统需要不断维护。软件开发不存在一劳永逸的架构。”

由于替换的难度或成本过高,或者仅仅是出于方便使用的目的,遗留软件仍在使用。然而,遗留软件常常因为老化和缺乏支持而引发各种问题,这就需要重构和重新设计系统的某些部分。

为什么遗留系统仍在使用?

IT 系统一旦投入生产,通常会持续运转数年,但与此同时,技术会以极快的速度发展。这就是为什么当旧的软件架构无法获得支持或更新时,各个公司往往会不知所措,其实这个时候需要进行更彻底的维护工作。以下是大多数遗留系统在运行多年后仍在使用的四个原因:

这些系统仍在为企业提供关键功能;

公司缺乏资源来改进现有的软件架构或改为新系统;

组织缺乏必要的 IT 技能和知识来迁移遗留系统或进行彻底的重构;

公司没有技术规范来创建与遗留系统有相同功能的新系统。

遗留系统存在于什么地方?政府组织和公共部门

过时的软件架构最常出现的地方往往是公共部门。

戴尔最近的一项研究表明,在美国、德国、英国和日本,大约 70% 的政府机构某些方面使用的都是过时的软件。

此外,接受调查的公共部门代表中有一半表示,他们的遗留操作系统已经超出了使用寿命。更令人惊讶的是,在全世界的联邦政府中,最流行的编程语言竟然是古老的 COBOL。

奇怪的是,一些公共部门组织还存在与这些编程语言和技术一样古老的硬件。

专门从事从损坏的硬件中抢救数据的公司不得不保存一些30年之久的关键设备,例如硬盘驱动器。为什么?你可能永远不知道什么时候会冒出一个核电站仍在运行如此古老的硬件。

银行和企业系统

银行业也能看到一些旧的计算机系统和软件。

据英国《金融时报》报道,许多知名金融公司仍在使用基于 COBOL 的软件架构,目前缺乏拥有这种古老的语言编程经验的开发人员。

为什么这些组织使用这种过时的编程语言?难道金融部门不应该关注高性能计算吗?

这些关键的遗留系统通常负责这些组织的核心业务流程,涉及大笔资金,并且是全天候终年无休持续运转。许多管理人员将升级遗留软件架构视为不必要的风险。

零售公司

你会惊讶地发现许多零售、电子商务和制造公司也在使用遗留系统。这很奇怪,因为直觉告诉我们,在当今竞争十分激烈的市场中,紧跟最新的技术趋势是绝对必要的。

那么问题出在哪里呢?

这是因为对于许多电子商务公司而言,盈利能力和销售数据是重中之重。在这些公司中,很大一部分管理人员只关心对 KPI 产生影响的工具和解决方案。由于软件架构对盈利能力没有直接影响,因此往往会被一拖再拖。

关于遗留软件的神话

关于遗留系统流传着许多神话。

这些神话是真的吗?遗留系统只会让人头疼的传闻真的有道理吗?

下面,我们来打破这些神话,看看互联网上流传的关于遗留软件常见的三种说法。

1. 旧版软件不受支持

IT市场绝对不是统一的。对于遗留系统,这意味着它们使用的某些组件的过时速度更快,很快就不受支持。

在某些情况下,联系支持团队或客户经理解决一些问题不会有什么问题。但在有些情况下,系统的核心部分必须经常更新,以使其符合最新的安全标准。

就像汽车修理工可能会遇到某些车辆的零件已不再生产,软件开发人员也会遇到遗留应用程序的安全措施和某些库已过时的问题。

2. 旧版软件毫无用处

一辆汽车即便使用了十年,运送货物或载人仍然不成问题,只不过看起来缺乏新颖时髦的特征。

遗留系统也与之类似,虽然存在一些风险,但这并不意味着它们完全没有用处。许多时候,人们仍然坚持使用遗留软件,因为这是执行业务流程最方便的选择。

简而言之,时间不会影响系统的核心功能。

3. 遗留软件和遗留系统应及时更换

就像二手车一样,只要维护得当,遗留软件也能正常运行。

开发人员可以甄别哪些部分、工具和功能缺乏支持或很快就会失去支持,逐步实现遗留系统的现代化,并逐步更新它们。虽然架构没有太多创新,但不影响正常工作。

为什么遗留系统会成为问题?

当然,如果老化的软件架构不会引发任何问题,开发人员和产品经理就不会探讨或重新设计。毕竟,破坏遗留代码的潜在风险是存在的。

以下是遗留系统引发的三个主要问题。

1. 成本

正如本文开头 Arek 所说,所有的软件系统都需要维护。话虽如此,重新设计和重构遗留应用程序通常都需要耗费更多资源,无论是在时间方面还是金钱方面。

更重要的是,随着软件解决方案逐步过时,供应商提供的支持也会减少。这意味着,这些公司为不再属于其主要产品的数据库、工具和库提供支持,可能会收取额外的费用。在有些情况下,软件现代化比从头构建的难度还要大,因为这需要人们不再使用的领域的 IT 专业知识。

2. 数据安全

许多库和数据库供应商在产品和工具发布几年后,就会停止提供安全更新。以这些库为基础的遗留系统更容易受到安全漏洞和危险数据丢失的影响,这也不足为奇。

对于一些小型软件应用程序来说,这应该不是什么大问题,但如果是存储和管理几十万用户私人数据的软件架构来说,这个问题不容忽视。

3. 缺乏知识和经验

随着岁月的流逝,如果某个公司坚持使用同一个软件架构,那么就可能面临寻找掌握了这些过时技术的软件专家的难题。

技术学校和开发人员需要适应不断变化的技术环境。如今已很少有人熟悉 COBOL、Fortran 或 Deplhi 之类的语言,而在二十年前它们可是企业级软件架构的支柱。

关于如何处理遗留系统的心得

通过以上讨论,我们明白即使遗留软件有时确实会出现问题,但对组织而言仍然有很大贡献,而且在许多情况下,新系统并不是必需的。下面,我们来介绍关于如何处理遗留软件系统的三个技巧。

1. 关注重要的更新

由于对于遗留系统来说,最大的问题是缺乏对某些组件的支持,因此开发人员应该针对应用程序每个部分的更新进行风险分析。

开发团队应该从下面这几个角度思考:这些系统能够在当前版本上运行多长时间?系统的关键组件和库何时会收到制造商的更新?

然后,在制定工作计划时,应该将整个系统中风险最高的部分当成维护工作的头等大事。

2. 不到万不得已不重写

我们了解到遗留系统仍然能够完成自己的任务。话虽如此,我们应该定期重构,并寻找改进的机会。

重要的一点是,遗留代码的重构过程应该是完整的。

比如说,开发人员决定重构负责数据库访问的代码库,但只完成了 90%。这样做最终会导致10次连接到数据库,有9次使用的是改进后的方法,但还有1次使用的是旧版本,速度较慢。这样的行为会极大地增加项目的复杂性,并损害用户体验。

因此,一般经验法则应该是,在改进遗留系统的过程中,绝对不可以半途而废。

3. 维护良好的文档,收集必要的知识

无论技术和编程语言如何,所有开发人员都应该积极学习的一个好习惯是,维护整个软件开发项目的文档。

在使用遗留系统时,这种做法尤为重要,所有处理过时软件架构的开发人员都应该牢记这一点。

这样做的主要原因是,当团队成员变动时,你需要清楚地记录代码库中发生的一切。面对遗留系统,我们都知道很少有开发人员熟悉这些系统中使用的技术。所以如果最后一个熟悉情况的开发人员离职,而且没有任何文档,那么这个系统基本就完蛋了,几乎一切都需要从头重写。

总结

维护遗留系统是一件苦差事,很少有人喜欢。

毕竟,这份工作需要浏览陈年的旧文档,还需要与如今已几乎没有人使用的解决方案和编程语言打交道。

尽管如此,遗留系统就像一辆多年的旧车,仍然能正常行驶,运货载人的能力不输于新车。只需要得到一些正当的维护,它就能坚持服务客户。我们必须记住,修复旧物件远比扔掉换新的更划算、更方便。

","gnid":"96eb709994c75778c","img_data":[{"flag":2,"img":[{"desc":"","height":"80","s_url":"https://p0.ssl.img.360kuai.com/t013d73ffee4a20366b_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t013d73ffee4a20366b.gif","width":"640"},{"desc":"","height":"80","s_url":"https://p0.ssl.img.360kuai.com/t018e6f0fcf6c9df4ee_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t018e6f0fcf6c9df4ee.gif","width":"960"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1678411579000,"pure":"","rawurl":"http://zm.news.so.com/33aa255341201d622b24ff74d190d504","redirect":0,"rptid":"e1aaab9de6ad22c2","rss_ext":[],"s":"t","src":"CSDN","tag":[],"title":"程序员该如何处理遗留软件?

贡股图3126JAVA程序员找工作问题 -
张颖家13649862371 ______ 恩,我也是即将毕业大四学生.今年状况很不好,很多专业学生最后都没有签到IT相关行业,不过我决定一直往这个方向发展,我还没有去进行过面试,我准备做完毕设就去南下一次,争取能签到一个适合自己的公司.同样我也是JAVA方向的...

贡股图3126作为java开发工程师工作了四年,最近想跳槽,重新找工作可以找什么职位的工作呢? -
张颖家13649862371 ______ 主要是看你想向哪个方向发展了,当然不建议一直做开发,可以试着向项目需求及开发管理方面去走,移动互联网开发也可以,毕竟未来一定是移动互联网为主.

贡股图3126程序员是哪个软件 -
张颖家13649862371 ______ 程序员不是个软件,他是个工作工种 就如饭店里的厨师一样一样的. 程序员【使】哪个软件? 根据程序员的编程语言不同,使用的软件不一样 Java 语言 Eplices C# Visual Studio PHP C,C++语言

贡股图3126Java程序员现在是不是蛮难得找工作,特别对于新生...没经验的 -
张颖家13649862371 ______ 有三个北京、上海、山东,北京有个中关村那里是软件工程师最密集的地方;上海是中国经济最发达的地方,各种金融业群集于此,各种银行,他们都是需要程序员的,山东有一个软件园那里有很多软件培训机构但大多是做外包的.现在java程序员还是很好找工作的,专业毕业平均3500元每月,本科4000每月.关键还看你自己的技术过不过硬,没有技术没有一个老板想用你,老板看重的是你能给他带来多少回报~ 还有可能深圳也不错~

贡股图3126我是一个程序员,大专专业,工作了才发现我似乎并不喜欢这个行业,但却不知何去何从? -
张颖家13649862371 ______ 恩,不是老师,本科毕业,刚出学校,所有的状态跟你差不多,慢慢来,别着急,工作的前两年慢慢寻找自己喜欢的事情,前提是内心平静,不浮躁,每天给自己定个小目标,有激情的对待现在的工作,你会发现,其实这份工作还是很有乐趣的,将来无论你做什么,你从中发现激情都很重要,比如自己开一家小店,累点,但是自己做自己的舒服,或者别的,没有哪一个行业不需要去思索一些东西的,同时,也没有多少人开始就入对了行,有的人即使入错了,也在其中平庸了一辈子,而有的人,积极调整方向,积极去寻求适合自己的东西,追求自己的梦想,梦想如果没有了,那么有些事情也变得毫无意义了.祝你活出激情与梦想,即使作为一个程序员.

贡股图3126谁知道JAVA程序员,在什么地方比较好找工作呀? -
张颖家13649862371 ______ java 在一些大城市都可以 不过你要想发展好,最好去北京,大连,上海这三大软件城市看看.先去大公司学点经验出来

贡股图3126学计算机程序找什么工作昂?
张颖家13649862371 ______ 可找的工作很多阿 ,向程序员、技术支持工程师,网站维护、编辑 什么的 .

贡股图3126刚毕业程序员怎么好才找工作 -
张颖家13649862371 ______ 放下身架 找一家规范的公司 制度完整的 做个小维护员 或公司网管 之类的 找到后认真认真好好的做至少三年以上 再考虑以后的事 因为现在社会要的是能力和经验 学历啥用没有 不过你现在优势是机会 好好找一份踏踏实实的干 不赶你走你就在这工作 这至少三年你就学会了 工作 为人 处世

贡股图3126北京ASP.net程序员的工资一般都多少?好找工作么? -
张颖家13649862371 ______ 只是进来看看而已,本人也是ASP.net程序员,到广州.大部分地区情况应该差不多.虽然经济危机1年多了,但是大部分公司还是求保守状态,没有大力扩张.找工作,最重要是看技术,技术不好的哪里都碰钉,技术好的而且要求不是很高的,这种人,老板才喜欢.我做了1年,现阶段2200!不算高,新手工资不高,像我这种1年左右的人也就1800-2500,技术高的,有自信的,看看3000行不!

贡股图3126没经验想从事软件工程师这样的工作,怎么找靠谱些? -
张颖家13649862371 ______ 带薪学习,现在不好找啊,主要是都没接触过这行的.人家给你钱让你学,然后学会了,人家还要承担你跳槽的风险.这亏本儿买卖.先让自己起码在开发上入门再说吧.

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024