我们一起分析IT系统应用开发的发展趋势 (我们一起分析英语翻译)

教程大全 2025-07-15 01:35:27 浏览

我们一起分析IT系统应用开发的发展趋势

2022-03-03 08:15:19了解云原生技术体系,一些耳熟能详的技术术语扑面而来,容器,微服务,服务网格(Service Mesh),包含了FaaS(函数即服务)和BaaS(后端即服务)的无 服务器 serverless)模式,都是技术架构常常采用的模式。

毫无疑问,云原生技术已经在事实上成为了大多数IT系统需要迈向的目标,区别只在于,到底是从一开始就遵循云原生架构原则对系统进行设计,还是演进式地从传统架构迁移到云原生架构。

了解云原生技术体系,一些耳熟能详的技术术语扑面而来,容器,微服务,服务网格(Service Mesh),包含了FaaS(函数即服务)和BaaS(后端即服务)的无服务器(Serverless)模式,都是技术架构常常采用的模式。

分析这些技术术语,剖析它们的架构思想与落地实践,我希望从中窥得几分端倪,做一次关于IT系统应用开发的发展趋势分析。

1.趋势一:业务与技术的正交性越来越明显

云原生架构本身就是从技术角度出发,遵循云原生架构原则和模式,将云应用中的非业务代码进行最大化剥离,然后将其下沉到云服务(设施)平台,并以无侵略的方式和业务“粘合”在一起,共同支撑整个应用的运行

设计上,为了避免业务复杂度和技术复杂度之间的互相干扰,设计上本来就需要力求业务与技术的正交性。随着云原生技术的逐渐成熟,剥离技术功能,保留业务代码的纯粹性成为可能。在云原生平台之上,业务系统的开发人员可以将精力放到业务领域的设计与开发,忽略运行过程中需要赋予系统的技术能力。

理想状态下,新的IT架构形态会形成:

如此就可能影响整个IT行业。由专业的云原生平台或微服务平台软件供应商打造和实施基于云原生架构的技术平台,提供基础设施服务,由垂直领域的传统企业IT部门与项目型软件供应商负责业务功能的实现,共同合作完成企业IT系统的构建,这可能是未来长期存在的IT生态现象。

开发人员的角色随之发生变化,业务型开发人员与技术型开发人员的分工变得越来越明显,需要的技能存在非常大的差异,前者更看重领域知识、抽象建模能力与设计能力,后者更看重底层的关键开发技术,掌握如网络通信、并行开发、数据一致等通用技术功能的实现。

2.趋势二:业务单元的粒度变得无关紧要

如果保证了业务与技术的正交性,意味着随着IT技术的发展,最终会打通制约软件开发的技术瓶颈。当我们可以不用考虑性能和安全,不用担心分布式通信的不可靠性,不用考虑分布式事务该如何保证一致性……业务单元的划分就不再干扰或影响整个应用的质量属性(非功能性需求),反过来,系统的质量属性也不会影响对业务单元的划分。我们完全可以从纯业务角度出发定义业务单元的粒度。

如果业务场景复杂,又具有独立性和特殊性,将其设计为一个粗粒度的宏服务(macro service)也未尝不可;如果一个业务场景只需要系统提供单一的功能,自然可以设计为微服务(micro service)或者迷你服务(mini service);如果只是对单一数据进行运算或操作,不妨定义为一个云函数。

显然,当分布式通信等基础设施不再成为干扰因素时,各种粒度单元的组合会变得更加自由,一切只为具体的业务场景。

3.趋势三:传统调试技术受到挑战

在未来的应用系统,函数和事件会成为最主要的业务逻辑封装单元,事件驱动架构风格会变得越来越普遍。同时,技术关注点主要以代理(Sidecar)形式透明地“粘合”业务代码,使得代码的执行顺序不再是顺序式的,而是跳跃式的;执行的指令也不一定运行在同一个进程(或线程)。

这就使得本地环境的开发调试变得越来越困难,越来越复杂,由于模拟技术无法达到真实生产环境的效果,而业务逻辑和技术逻辑之间的“粘合剂”又非显式的胶水代码,使得现有IDE支持的传统调试和断点功能无法满足云原生时代的要求,至少增加了调试的成本,进而影响开发效率和开发质量。

为了迎合这一变化,除非能改进IDE的调试功能,在开发实践上应更加重视自动化测试,充分利用单元测试验证业务功能的正确性,由集成测试负责验证业务与技术结合后形成的完整功能。换言之,开发团队应尽可能通过自动化测试而非断点调试来发现问题。

4.趋势四:由业务人员开发核心业务代码

在分离了业务和技术之后,为了提升业务开发人员的效率,IT公司或部门需要对业务代码开展共性和可变性分析,识别并抽象出约80%业务逻辑的共性,将其沉淀为业务组件、微服务或云函数、甚至低代码平台,如此,开发人员就能将主要精力放在20%的差异化实现上。

因此,未来的业务系统开发会形成不同复用粒度和不同复用目标的多层次松耦合架构:技术关注点作为基础设施层,交由云原生平台形成技术支撑;组件、服务或函数组成的业务平台实现通用子领域与支撑子领域的所有功能,以及实现核心子领域的部分功能,并由低代码平台搭建(创建)脚手架、服务模板,完成不同粒度业务单元的组装;最后,在平台上编写定制的业务代码以满足业务逻辑的差异性。

由于只需编写核心的业务代码,DSL(领域特定语言)可能会成为各个垂直领域IT应用开发的首选,并以脚本方式在完成编写后注入到服务模板中。DSL风格的脚本对于业务人员更友好,它会慢慢侵蚀开发人员的空间。前面所述的业务开发人员要么转变为业务人员,要么参与测试和调试工作,成为质量保障团队的一员。

我们一起分析英语翻译

以上趋势有宏观层面,也有微观层次,不过是我偶然的想到,并非专业严谨的论断。定有疏漏之处,写来贻笑大方,只是随意记录我的想法罢了,但求读者不要苛责太甚。


IT前景?

1、市场需求大 :随着社会的发展,每年的IT人才缺口人数都高达百万以上。 据权威数据统计,未来五年,我国信息化人才总需求量高达1500万至?2000万人。 其中“软件开发”、“互联网营销”、“电脑美术”等人才的缺口最为突出。 软件人才对技术的需要较高,高校的培养和企业的需求严重脱轨,导致软件人才缺乏,因此一个技术强有工作经验的技术人才,成为企业争抢的对象。 2、就业范围广 :一般企业都有自己的IT部门,企业里的信息量比较大,就势必需要数据库的管理、企业信息化管理等。 3、薪资水平高:根据有关数据显示,IT行业是目前平均收入最高的行业,其从业人员平均年薪已逾十万元,有经验的IT工程师平均年薪一般在12万元以上。 如JAVA开发工程师、安卓开发工程师、互联网营销工程师、UI设计师等IT人才必将成为职场紧缺人才,发展前景好,薪资水平高!

软件开发的薪金现状和未来发展趋势

查看文章软件工程未来发展趋势2009-07-16 10:22本文的意图是讨论软件工程的未来发展趋势,但是软件工程的发展不可能是孤立的,所以我们首先需要思考一下计算模型和软件开发本身的变化和趋势,再由此推测软件工程的发展趋势。 从计算模型而言,应该来讲,传统的冯.诺依曼仍然被沿用;但从计算能力上来将,我们注意到了三个变化: ●CPU的运算能力按摩尔定律快速提升;但提升单颗CPU的计算能力已经越来越困难; ●并行运算技术以及多核多线程技术使服务器的处理能力飞速提升;服务器的处理能力不再是瓶颈,从而造成计算能力大量向服务器端迁移,C/S结构被无情抛弃,薄客户端(B/S结构)成为大势所趋; ●互联网的快速普及使得云计算成为可能,通过互联网相连的服务器集群在服务器端提供了更强大的计算能力; 基于上述计算能力的变化,从软件开发模式而言,我们注意到以下六个相关的趋势: ●由于计算能力向服务器端的快速集中,提供高并行计算能力和可用性的中间件技术被广泛采用,甚至已经成为构建大型软件系统的必选项; ● 因为采用了中间件技术,软件开发团队可以更集中关注于业务逻辑,而可以将许多细节交给中间件来管理,从而大大减少了需要编写的代码行数,也直接导致了软件开发团队的规模变得越来越小,但角色变得越来越专业化(如了解行业的需求分析员,了解中间件技术和领域构架的架构师等); ●计算能力的增强,使软件越来越易用,从而使软件变得无处不在,需要的软件开发人员数量急剧增长(组织形态是大量的小规模开发团队);在这一因素以及降低成本的压力下,开发外包变得非常普及; ●为了使分布在互联网上系统能够互相协作,SOA成为一个热点; ●互联网的普及,将原来分散开发人员聚合在一起,只要有一个合适的基础和好的框架,他们就可以开发出产品级的工具软件(以Eclipse,JBoss,MySQL,Subversion为例),从而开源成为了一种趋势; ●B/S结构的系统非常容易升级,这使得软件交付和升级的速度大大加快了(从以年月为单位,到以周天为单位); 软件开发网 回到正题,那么在这些大的趋势的作用下,软件工程会如何发展呢?我觉得在未来几年我们会看到如下的趋势: ●需求工程,渐成热点: 专业化的角色,日益复杂的业务创新,全球分布的团队以及互联网级的交付速度,这些都对需求获取的正确性和有效性提出了更高的要求;我预计需求工程的研究和 实施会成为近期的热点,其中Use Case技术会被更广泛而正确的应用,而相关工具的研发也会成为热点(如IBM Rational Requirements Composer,,Ravenflow等。 用例的优势在于它天生是黑盒的,它用自然语言抽象了用户和目标系统的交互,避免了混入分析、设计和实现细节,以保证用例可以被不懂具体技术的业务及测试人 员所真正理解。 同时,需求分析员又可以方便地通过用例分析(use case analysis)(即用分析类来试图在理想方式下实现用例),将需求体系精华成分析模型。 在这一过程中,需求分析员可以更进一步地完善基于用例的需求体 系,而不必担心分析模型会污染需求,从而实现需求与分析的分离及有效互动。 ●DSSA和MDD,老树新花(基 于领域的构架(DSSA)与模型驱动的开发(MDD)):随着软件应用的日益普及,软件已经超出了将手动流程自动化的范畴,而开始成为业务创新的主要推动 力。 因此,引入捕获特定领域内最先进需求及其实现架构的DSSA成为行业客户的热点之一。 而且,DSSA的引入将MDD门槛大大降低了,也使基于DSSA 的MDD支撑工具成为可能,从而可以极大地提高开发效率并保证软件质量(例如,Telelogic的Rhapsody就是一个成功的基于实时嵌入式系统构 架的MDD工具)。 ●迭代/敏捷,渐成标准:随着软件交付周期的日益加快,迭代化开发 已经成为大多数软件开发团队的必选项。 但是迭代对整个团队的需求、架构、协同及测试能力都提出了更高的要求,现在许多开发团队都在试图导入迭代化开发的过 程中,敏捷可是被看成迭代化开发的一种导入方式,这不过敏捷的范围其实比迭代化开发更大一些。 敏捷的三个要素是迭代开发、坦诚合作和自适应性。 坦诚合作其实才是敏捷的精髓,如Ivar所说,敏捷其实是有关SOCial Engineering的。 敏捷的主要贡献在于他更多地思考了如何去激发开发人员的工作热情,这是在软件工程几十年的发展过程中相对被忽略的领域。 ●持续集成,蓄势待发:持 续集成是保证迭代化开发质量的主要方式,通过持续集成可以利用自动化的方式来尽量自动地、尽早保证代码质量。 随着迭代和敏捷的流行,持续集成相关的工具成 为现在市场上的新热点(如持续集成框架IBM Rational BuildForge, 开源软件CruiseControl,代码静态分析工具Klocwork Insight,IBM Rational Software Analyzer等)。 持续集成是一个复杂的系统工程,组织需要首先将现有的配置管理/变更管理工具与Build环境紧密集成并完成自动化Build过程,在根据企业/项目/产 品的现状,定义如何自动化地检测软件质量(代码静态分析、单元测试或冒烟测试),并定义需要自动化生成的管理报表。 ●基于实践的过程框架,方兴未艾:开 发角色的专业化的和分布的全球化都要求软件开发过程更加规范,而敏捷又要求过程必须紧密贴合项目的实际需要,因此传统的大一统的过程无法符合这一需求。 新 一代的过程将是以实践为核心的,项目可以通过组装所需的不同实践来获得贴近项目要求的过程。 IJI(Ivar Jacobson International)的EssWork和IBM Rational的RMC都是新一代的基于实践的过程框架。 依据过程专家长时间的经验,他(她)们很小心、很仔细地将一个完整的开发过程组件化,从开发过程抽象出一个个可以被单独导入又可以被组装到一起的实践,从 而使逐步求精式的过程改进成为可能。 对于一个软件组织而言,如果已经建立一个比较成熟的软件开发流程,但觉得这一流程并不适合所有项目的实际需要,那么目 前可以考虑的是用实践的方式去重新梳理现有流程,以使项目组能够以实践为单位来组装出切合项目实际的流程;另外,该组织也可以将适用于本组织的业界流行的 实践导入到现有流程当中,IJI公司的专家从业界最佳经验中抽取了八个实践,有关信息可访问(/ngp/)。 ●配置管理,昨日黄花:随着开发团 队规模的日益减小,配置管理的复杂性大大降低了,我们注意到越来越多的用户转向使用开源的配置管理工具(如 Subeverison,JIRA,hosted-projects等等);未来的配置管理工具更多的以一种全生命周期管理平台(Application Lifecycle Management)的方式出现,弱化了单项的配置管理能力而强调了全流程的整合(如Microsoft VisualStudio Team System和IBM Rational Team Concert等)。 即便配置管理的复杂性降低了,但它仍然是开发项目管理的最重要的支撑平台之一。 目前的重点应该是加强对项目经理进行有关配置管理知识的培训,让他(她)们 理解到配置管理能力(如并行开发、基线回退等等)能够如何帮助项目开发过程的,从而使配置管理工具/环境的价值能够得到充分的发挥。 作为结语,软件工程对软件开发的重要性我无须赘言了。 虽然,我上面列出了一些软件工程的热点,但读者一定要仔细分析组织自身特点以确定软件工程的改进步骤,扎扎实实的逐步改进,而不应该盲目地追求热点!

计算机行业未来发展趋势是什么样的?

未来计算机的发展趋势是巨型化、微型化、智能化、网络化。 计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。 计算机发明者约翰·冯·诺依曼。 计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。 它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社会变革,计算机已遍及一般学校、企事业单位,进入寻常百姓家,成为信息社会中必不可少的工具。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐