QCon全球软件开发大会8折优惠倒计时,购票立减¥1760!了解详情 >>> 了解详情
写点什么

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

2014 年 8 月 27 日

以前,开发人员写的汇编代码不仅轻巧而且运行速度很快, 所以基本上一个人就可以完成一项开发,有时雇佣几个人也能够完成任务。然而,当前出现的云计算、大数据、虚拟化、移动开发、框架、服务器端 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 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 8 月 27 日 23:432895
用户头像

发布了 92 篇内容, 共 39.4 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

Kubernetes 原生 CI/CD 构建框架 Tekton 详解

火山引擎

字节跳动 Kubernetes 云原生 Tekton CI/CD

Spring Boot 微服务性能下降九成!使用 Arthas 定位根因

阿里巴巴云原生

Java 微服务 云原生 中间件 Arthas

架构师训练营第六周作业

跳蚤

kafka的实现原理

八两

kafka Kafka知识点 kafka实现原理 kafka架构

逼疯UE设计师,不可不知的提升产品用户体验的10个测试方法

华为云开发者社区

产品 测试 UI 用户体验

字节跳动架构师讲解Android开发!2021年展望Android原生开发的现状,分享一点面试小经验

欢喜学安卓

android 程序员 面试 移动开发

话题讨论 | 新年将至, 程序员如何以代码送出新春祝福

孙叫兽

Java 程序员 前端 话题讨论 新春祝福

搜索引擎简述

跳蚤

架构师训练营第十一周作业

zamkai

从0到1实现一个简单计算器

codevald

Java 项目 计算器 动手实践

无意间发现 Google 代码模板,分享给大家!

C语言与CPP编程

c++ JavaScript objective-c 代码规范 Python 编码格式

面试官:高并发下HashMap的死循环是怎么形成的?

Crud的程序员

Java hashmap

产品经理训练营笔记-业务流程与产品文档(一)

.nil?

产品经理训练营

字节跳动面试必问:从外包月薪5K到阿里月薪15K,学习路线+知识点梳理

欢喜学安卓

android 程序员 面试 移动开发

最好的IDEA debug长文?看完我佛了

YourBatman

eclipse debug IntelliJ IDEA 远程调试

Serverless 场景下 Pod 创建效率优化

阿里巴巴云原生

Docker Serverless 容器 云原生 k8s

架构2期-大作业(二)

浮生一梦

大作业 2组 架构师训练营第2期

欢度春节|新用户专属福利

InfoQ写作平台官方

活动专区

执行、管理、领导做不好,都有懒的因素

刘华Kenneth

领导力 管理 软件开发

区块链还可以这么玩?“点亮莫高窟”背后的腾讯云区块链

CECBC区块链专委会

区块链

停车、投票、领证,区块链如何在「智慧城市」建设中大显身手?

CECBC区块链专委会

区块链

杜绝“萝卜章”风险,区块链电子签章助力企业降本“保真”

CECBC区块链专委会

电子签名

几幅图拿下 ARP 协议

飞天小牛肉

Java 程序员 计算机网络 网络协议 2月春节不断更

前端开发:Node版本引起的报错问题

三掌柜

vue.js 前端

排查指南 | 当 mPaaS 小程序真机扫码时提示 "应用更新错误(50002)"

蚂蚁集团移动开发平台 mPaaS

小程序 问题排查 mPaaS

机器学习·笔记之:Inverse and Transpose

Nydia

大作业(二)

bing5tui3

架构师训练营第2期

2 期架构师训练营 - 第三周学习总结

Vicente

架构师训练营第2期

Arthas 使用的各类方式

阿里巴巴云原生

Java 微服务 云原生 中间件 Arthas

架构2期-大作业(一)

浮生一梦

大作业 2组 架构师训练营第2期

大作业(一)

bing5tui3

极客时间架构师二期

移动应用开发的下一站

移动应用开发的下一站

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