改变开发者工作方式的15项技术

以前,开发人员写的汇编代码不仅轻巧而且运行速度很快,所以基本上一个人就可以完成一项开发,有时雇佣几个人也能够完成任务。然而,当前出现的云计算、大数据、虚拟化、移动开发、框架、服务器端JS等新技术,正在影响着开发人员的工作方式。近日,InfoWorld资深记者和著名作者Peter Wayner总结了影响开发者工作方式的15项技术,而这些技术不仅正在改变着人们基本的开发工作和我们与其他团队成员之间的合作方式,也正在改变着我们与客户的交流形式以及我们的编程方式。

现就对这15项技术进行一个全面的梳理,具体内容如下:

1、持续集成

持续集成是一种软件开发实践,项目的每次集成都可以通过自动化的构建(包括编译、发布、自动化测试)来验证集成错误,从而尽快发现和修复错误。它主要有减少风险、减少重复过程、任何时间与任何地点能够生成可部署的软件、增强项目的可见性、建立团队对开发产品的信心等优点。

2、框架

框架可以处理系统的很多细节问题,比如事物处理、安全性、数据流控制等问题,开发者只需要集中精力完成系统的业务逻辑设计,就可以大大提高开发效率。一个框架是一个可复用的设计构件,它使开发者做到了可以在一个已经实现的通用功能的基础上进行具体的系统开发。

3、程序库

程序库是一个可供开发者使用的包括各种标准程序、子程序、文件以及它们的目录等信息的有序集合,同时它也是用于开发软件的一个子程序集合,具有发布、替换和二次开发等优点。

4、应用程序编程接口

API即应用程序编程接口,其目的是使得程序开发人员无需访问程序源码,无需理解程序内部工作机制的细节,只需通过简单的接口调用,即可实现访问程序并实现一定的业务功能。

5、平台作为服务(PaaS

PaaS是平台即服务的意思,是云计算三大服务模式之一,它是一个能够为企业进行定制化研发的中间件平台,同时还涵盖了数据库和应用服务器等部分。PaaS平台还允许用户或者厂商基于PaaS平台快速开发自己所需要的应用和产品。同时,PaaS平台开发的应用还能更好地搭建基于SOA架构的企业应用。

6、浏览器

网页浏览器是一个显示网页服务器或档案系统内的文件,也是可以使用户与文件发生互动的一种软件。随着Internet技术的兴起,B/S架构相对C/S架构的产品明显体现出更为方便的特性,它统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

7、应用容器

应用容器可用来实现虚拟化,开发者将他们的应用以及应用所依赖包部署到应用容器中,然后发布到服务器上。应用容器完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心运行。

8、基础设施即服务(IaaS

基础设施即服务(IaaS)是云计算三大服务模式之一,它提供给客户的是使用处理、存储、网络等服务和基本的计算资源。客户购买服务器、软件等网络设备就能够部署和运行任意软件,包括操作系统和应用程序。客户还能够选择网络组件,例如防火墙和负载均衡器。

9、JavaScript和 Node.js

JavaScript时代的核心是事件流,Web的核心不再充当HTML标记,服务器不再单单作为文件传送者和模板渲染器。服务器的主要作用已经变为传送应用到客户端,同时携带数据,并由客户端组织成DOM;第二个作用是监听事件流,并高效的返回响应给客户端。Node.js提供了一种理想化的服务器端架构,它借助事件驱动,使得非阻塞I/O模型变得轻量和高效,非常适合运行在分布式设备上数据密集型的实时应用中。

10、二级市场

二级市场提供了越来越多的插件、扩展组件、程序库以及其他一些附加软件,有了这么多的库和框架,开发人员就可以二级市场去购买所需要的部分,从而减少了代码开发量,提高了开发效率。

11、虚拟机

高级语言虚拟机改变了传统编译模式,即编译过的应用程序被紧紧地绑定到特定的操作系统和指令集架构(ISA)上,并在更高层次上分发程序的代码。它第一步生成的可移植中间代码是相当普通的一种基于栈的虚拟ISA,虚拟ISA就是虚拟机的机器代码,它被分发到不同平台上,每个平台只需实现执行虚拟ISA的虚拟机即可。现代的Java、Ruby、Python、.NET等都是高级语言虚拟机应用的典型。

12、社交媒体网站

社交媒体也称为社会化媒体、社会性媒体,指允许人们撰写、分享、评价、讨论、相互沟通的网站和技术。社交媒体的产生依赖的是WEB2.0的发展,在互联网的初期,你可以建立自己的网站,等待用户访问。但是,越来越多的网站正在出现在Facebook、Twitter和 Salesforce等社交媒体网站上,我们可以开发一个Facebook 或Salesforce的应用,它们能够让你的应用融入他们的平台,带来更多用户的访问。

13、DevOps工具

DevOps是一组过程、方法与系统的统称,主要用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合。它的出现使软件行业日益清晰地认识到:要想按时交付软件产品和服务,开发和运营工作必须紧密合作。不仅如此,它还能够实现开发的高度自动化,让代码工程师与构建和交付软件的开发运营环节的衔接更为紧密,实现了敏捷性和可靠性两大目标。

14、GitHub、 SourceForge和代码分享

代码分享网站对开源世界做出了很大的贡献,在类似SourceForge等网站出现之前,开发者分享自己开发的软件是非常困难的,而现在代码分享早已成为一个社会化的网络行为。GitHub、SourceForge可以为人们提供最棒的资料,并与全球观众分享免费服务,这种进步为开源软件提供了一个集存储、协作和发布为一体的平台,同时,集成的很多开放源代码的应用程序,为软件开发提供了整个的生命周期服务。

15、性能监控

当前,编程模型已从单一主机模式演变成了网络互联的新编程模型,程序的性能瓶颈不再单单由单一主机环境引起,而是有可能是网络互联或者数据库连接访问造成的。只通过打印出程序运行的开始和结束时间以及利用简单的代码分析器都不能发现程序真正的性能瓶颈,只有利用现代的性能监控工具才能够跟踪网络连接情况以及程序各个模块的性能,为程序优化、监控提供了可靠的保障。

感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(改变开发者工作方式的15项技术)