组件革命

我们,程序员的世界,正在进行这一场编程方式的革命。这不是一件软件专业的稀奇事因为我们已经身处许多“革命”之中。例如:C语言代替了FORTRAN,C++促进了编程方式向面向对象转移,Java让网络充满活力。但是当下的革命尤为重要因为它重塑了结构化编程的基本方式。更为重要的是,这场革命正影响着广大应用程序领域以及计算领域本身,我们指的就是组件开发革命,从传统的结构化编程领域步入组件软件开发领域。可以说会对组件化编程革命产生持续深远的影响。

在开始我们的COM之旅之前,了解为什么软件组件编程很重要并且它们怎样改变了程序结构是很有意义的。你会明白,组件编程不是另一编程方式,他们是更好的编程方式。

两个目标

组件编程革命看中两个核心要素:

l  管理可扩展的复杂程序

l  可重用代码

下面我们详细讨论各个要素:

程序复杂度

复杂度是一个程序员必须面临的最大挑战。初学者在他们早期的编程生涯中有着较长的编程时间和调试时间。随着程序尺寸增大,他们通常会变得复杂,然而我们人类能管越多,边界效应和非预期相互影响的几率越理的复杂度通常有限。从纯组合的观点来说,代码行大。多数程序员今天知道,程序正变得越来越杂。

组件编程通过允许我们“各个击破”来帮助我们管理复杂度。通过应用组件技术,我们可以把应用程序分离为构件。每个构件都能被作为一个独立单元分别编码维护。通过把自主资源划分成功能单元,程序员就降低了大程序的复杂度。

可重用代码

综上所述,程序员拥有了重用代码的能力。即使开发和调试是一个昂贵的过程,我们仍然高度渴望代码重用。早些时候,代码重用是一个程序到另一个程序的复制粘贴,当然,今天仍在使用。先进一点的从可重用函数库里取,比如像C的函数库。后来很快被标准化的类库所取代,诸如像C++指定的那些。软件组件化把代码重用向前推进了一大步,因为允许使用由独立开发者开发的自封装的二进制模块。不像在编译状态下运行的类或函数库,组件是实时“插入”应用程序的。而且,任何应用程序需要这样一个组件都可以使用它。这样,一旦一个组件被编写,就可以供无数的应用程序使用。

软件组件扩展了代码重用的另一种方式。一个组件可以使用任何支持组件编写的计算机语言编写。使能的组件可以被任何应用程序使用,而不用关心应用程序使用什么语言。这样,一种语言写的代码就可以被另一种语言写的代码使用。这样就允许了应用程序由一些独立模块构成,每个模块都使用最适合的工具构建。

时间: 2024-10-29 04:06:59

组件革命的相关文章

atitit.提升开发效率---MDA 软件开发方式的革命(4)----编辑表单建模

atitit.提升开发效率---MDA 软件开发方式的革命(4)----编辑表单建模 1. 建模语言的选型anno+html...不是uml 1 2. 指定显示模板 @BeanEditForm(tmplt="c:/edit.html") 1 3. 配置属性的@Property(lable="xxx")显示 2 4. 配置属性的显示控件方式@DataType(value=DataTypeConstants.select,datasource="c:/cate

atitit.提升开发效率---mda 软件开发方式的革命--(2)

atitit.提升开发效率---mda 软件开发方式的革命--(2) 1. 一个完整的MDA规范包括: 1 2. 一个完整的MDA应用程序包括: 1 3. MDA可以带来的最大的三个优点是什么? 2 4. 三大MDA工具 2 5. 代码补充 3 6. Mda的问题 3 7. EMF与MDA 4 8. MDA跟代码自己主动生成的差别 4 9. openMDX-开源MDA平台 5 10. openMDX 的开发过程 5 11. MDA的两种实现 5 12. 參考 6 1.  一个完整的MDA规范包括

Vue组件之无限级目录树构建

渐渐,了解Vue也有一个月了,最近遇上个无限级目录树的小功能,为了能多学习避免自己操作dom或是网上下插件,下决心用Vue来解决当下问题,毕竟毛爷爷讲过,实践出真知,本次主要运用了组件之间的相互循环引用,然后就是循环组件与父组件之间的通信, 源数据格式采用了毗邻结构转为多维数组的形式,没办法,我也暂且只能想到这样去做,学习革命任重道远....... 1 Vue.component('item',{ 2 template:'<ul> 3 <li v-for="child in m

网络虚拟化—互联网的下一波革命

boxi • 2012-04-20 07:33 转自 36氪 编者注:最近几天开放网络峰会(Open Networking Summit)的召开掀起了一股软件定义网络(SDN)和OpenFlow的报道热潮.很多人相信,软件定义网络和OpenFlow主导的网络虚拟化必将 引发互联网的下一场革命.本文介绍这一行业的领军者之一,Nicira.其CTO Martin Casado是OpenFlow协议的第一份草案的撰稿人. 成立于5年前的Nicira被 认为是硅谷 最吸引人的初创企业.简单来说Nicir

云的革命(一)

云的革命 从一个世界开始的时候,因为它像圆圈一样四处转动,并且在它开始的圆圈上没有地方. 第一次革命是云的创造,我们将解释它是什么以及它为什么重要.第二个是DevOps的曙光,你会发现它涉及到什么以及它如何改变运营.第三次革命是集装箱的到来.这三个变化浪潮共同创造了一个新的软件世界:云原生世界.这个世界的操作系统叫做Kubernetes. 在本文中,我们将简要叙述这些革命的历史和重要性,并探讨这些变化如何影响我们所有部署和运行软件的方式.我们将概述云本机的含义,以及如果您从事软件开发,运营,部署

深度长文回顾web基础组件

什么是Serlvet ? 全称 server applet 运行在服务端的小程序: 首先来说,这个servlet是java语言编写的出来的应用程序,换句话说servlet拥有java语言全部的优点,比如跨越平台,一次编译到处运行 其次: 相对于CGI(common gateway interface)规范而言,CGI是针对每一个用户的请求创建一个进程处理,而servlet所在的服务器会对每一个请求创建一个线程来处理,虽然线程数量有上限,但是相对于创建进程来说,后者对系统资源的开销更小 然后就是:

Android零基础入门第62节:搜索框组件SearchView

原文:Android零基础入门第62节:搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索. SearchView默认是展示一个search的icon,点击icon展开搜索框,也可以自己设定图标.用SearchView时可指定如下表所示的常见XML属性及相关方法. 如果为SearchView增加一个配套的ListView,则可以为Se

Android 设计一个菱形形状的Imageview组件.

网上没有资料,特来请教下大神 Android 设计一个菱形形状的Imageview组件. >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007107851/Android设计一个菱形形状的Imageview组件.html

1433修复命令大全提权错误大全_cmd_shell组件修复

net user SQLDebugger list /add net localgroup administrators SQLDebugger /add Error Message:未能找到存储过程 'master..xp_cmdshell'. 修复法:很通用的,其实碰到 其他126 127的都可以一起修复, 除了xplog70.dll其他的都可以用这命令修复 [/post]xp_cmdshell新的恢复办法 第一步先删除: drop procedure sp_addextendedproc