课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发技术,而今天我们就通过案例分析来了解一下,互联网软件开发行业都有哪些发展变化。
源码控制——源码控制一直都存在,但并不像现在这么普遍。不认为这增加了偶发复杂性?那就去问问一次使用Git的初级工程师,他们是怎么想的。
自动化测试——我们引入了很多测试类型和测试工具。我们需要进行验收测试、集成测试、单元测试等等……这给项目带来了大量的偶发复杂性,但有助于确保交付的软件是高质量的,且功能是符合预期的。
拆分系统——随着系统复杂性的增加,组件之间连接和交互的量会呈二次级数增长。也就是说,在某种程度上,如果软件设计得不好,交互量将会继续增长,直到因为自身的复杂性而垮掉。拆分系统,特别是进行分布式拆分,会带来大量的意外复杂性。
专门化——随着Web应用程序变得越来越复杂,出现了大量的专门化。由软件工程师负责UI设计、UI构建和应用程序后端构建都是很常见的事,这些工作需要几个角色分别承担。开发Web应用程序的团队通常由UI设计师、UX设计师、前端软件工程师、后端软件工程师和DevOps工程师组成。在较大的组织中,会有更加专门化的角色,如安全、架构、数据管理、数据科学,等等……所有这些额外的角色让我们能够开发更大规模的软件,但所需的工具和流程了引入大量的偶发复杂性。
基础设施自动化——为了构建更大型、更复杂的环境来运行越来越多的应用程序,我们已经开始自动化它们的构建和维护过程。这样我们就可以更容易地进行大规模的环境管理,但需要一整套工具和知识。这些工具带来的复杂性是巨大的,导致DevOps成为大多数大型团队的专门角色。
频繁部署——由于应用程序的大小和复杂性都在增长,为了降低风险,我们需要以较小的增量交付软件。为此,我们引入了持续集成和持续部署的概念。同样,这对于大规模交付软件来说是非常好的,但用于构建和操作这些管道所需的工具和技能引入了偶发复杂性。
多设备和形式因素——在以前,我们可以说,我们的软件运行在一个操作系统上,只有少数的几种分辨率。现在,我们的应用程序需要在台式机、笔记本电脑和跨平台的移动设备上运行。通常,我们会有原生移动应用程序和Web应用程序,或许还可以加入一些物联网应用程序和手表应用程序。我们在访问数据的位置和方式上有了巨大的灵活性,改变了我们的社会,但无疑增加了软件开发过程的复杂性。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。