基于构件的软件开发模型为我们带来了很大的成功,个人认为其背后的原理是构件中成功的商业价值能够被不断复制,因而带来更大的商业价值。

“复制”不但能够降低开发成本,还能够提高单位产出,提升系统的整体稳定性,降低bug率。

以开发一个App为例,Swiper,ScrollView,Image等等都是常用构件,我们通常以这些构件为基础来实现复杂的商业逻辑,从而产生价值。在这个过程中,我们对实现Swiper和ScrollView的成本几乎为0(当然可能需要一些license费用)。我们的成本主要集中在实现复杂的商业逻辑这一块。

但如果能够将“复制”的范围扩大,例如对复杂的商业逻辑实现进行复制,那么我们的成本会降低,收益会增大,市场竞争力也会变得更强。

可是这“复制”实现起来并不容易,这里包含了技术也包含了管理思想。

从管理的角度,基于构件的开发模型包括5个阶段:

  1. 需求分析和定义
  2. 体系结构设计
  3. 构件库建立
  4. 应用开发
  5. 测试

从技术的角度分析,基于构件的开发模型至少包括3个支持:

  1. 构件存储与管理
  2. 构件测试自动化
  3. 构件应用自动化

构件库的建立不是一蹴而就的,需要架构师和开发人员的长期合作。
举一个前端开发,微信端H5页面分享的例子。
要实现微信端H5页面的分享,要完成以下步骤:

  1. 配置微信的jssdk,注册需要使用的功能
  2. 页面加载时,调用jssdk的hideOptionMenu
  3. 页面加载时,注册onMenuShareTimelineonMenuShareAppMessage
  4. 点击按钮,打开一个半透明引导层,引导用户点击右上角的"…",与此同时调用jssdk的showOptionMenu
  5. 用户点击半透明引导层时,调用jssdk的hideOptionMenu,同时关闭半透明引导层
  6. 分享回调执行时,调用jssdk的hideOptionMenu,同时关闭半透明引导层

上面这些步骤可以是开发人员的经验,即每做一个具有分享功能的页面,开发人员都要重复上面6个步骤,如果开发人员某一天忘记某个步骤,那么这个分享功能可能就不能正常工作,从而耗费更多的人力去debug。
如果能够将上面6个步骤封装在一个构件中,通过继承让新创建的页面具有分享功能,通过简单的api来实现交互,那就能够达到降低开发成本,提高单位产出,提升系统的整体稳定性的目的。

上面聊了基于构件的软件开发模型的优点,难点和具体实践举例,它能够带来商业上的成功,但从实践上看,它需要基于架构师,开发人员以及其它相关人员的紧密合作。

基于构件的软件开发模型漫谈相关推荐

  1. 一、软件/软件工程/软件开发模型概述

    文章目录 一.软件 1.软件的定义 2.软件的分类 3.软件危机 3.1软件危机的主要问题 3.2软件危机产生原因(6点) 二.软件工程 1.软件工程定义 2.软件工程目标(6点) 3.软件工程研究的 ...

  2. 软件工程与软件开发模型、软件开发方法

    什么是软件工程? 软件工程一直以来都缺乏一个统一的定义. IEEE给出的定义是:软件工程是:1.将系统化的.严格约束的.可质量化的方法应用于软件的开发.运行和维护,即将工程化应用于软件:2.在1中所述 ...

  3. 软件开发模型、软件设计模式、软件架构风格

    一. 软件开发模型 1. 瀑布模型: 结构化方法.开发阶段性. 需求明确.文档齐全. 风险控制弱 .前一步的错误会延申到后一步: 2. 原型开发模型: 迭代方法. 有两种开发方式,分别是原先开发和目标 ...

  4. 软件开发模型与过程改进

    从过去软件开发模型, 我们有很多的反思与借鉴. 笔者曾看到国内三线城市的一些公司的软件开发过程, 项目的成功依赖个人能力. 对于每一个软件系统研发过程, 只是拍脑袋定个Dead Line. 规定时间2 ...

  5. 软件开发模型-瀑布模型、V形模型、原型模型、增量模型、快速开发、敏捷模型

    文章目录 0x01 边做边改模型 0x02 瀑布模型 0x03 V形模型 0x04 原型模型 0x05 增量模型 0x06 螺旋模型 0x07 快速应用程序开发模型 (RAD) 0x08 敏捷模型 0 ...

  6. 2022年下半年 系统架构师,论文-软件开发模型(Software Development Model)

    软件开发模型(Software Development Model)是指软件开发全部过程.活动和任务的结构框架,软件开发过程包括需求.设计.编码和测试等阶段,有时也包括维护阶段.软件开发模型能清晰.直 ...

  7. 软件开发模型/原型法/瀑布模型/螺旋模型

    软件开发模型(Software Development Model)是指软件开发全部过程.活动和任务的结构框架.软件开发包括需求.设计.编码和测试等阶段,有时也包括维护阶段. 软件开发模型能清晰.直观 ...

  8. 软件开发模型介绍、总结归纳

    软件开发模型(SoftwareDevelopmentModel)是指软件开发全部过程.活动和任务的结构框架.软件开发包括需求.设计.编码和测试等阶段,有时也包括维护阶段. 软件开发模型能清晰.直观地表 ...

  9. 系统架构师论文-论基于构件的软件开发(测井资料处理与解释集成软件)

    论基于构件的软件开发 –测井资料处理与解释集成软件 [摘要] 去年初,单位承担了新立的"测井资料处理与解释集成软件"项目,目的是集成目前国内零敬的测井解释方法,我有幸参加该项目,并 ...

最新文章

  1. 参数化模型(parametric model)和非参数化模型non-parametric model)的区别?哪些模型是参数化模型,哪些模型是非参数化模型?
  2. Flutter开发之GridView组件(20)
  3. 第一章数据库设计规范
  4. c#如何实现从xml中加载树目录,并且显示完整的Text
  5. ocr 哪个好 外文_5 款堪称神器的高质量软件,每一款都好用到不想卸载
  6. Windows Phone开发(37):动画之ColorAnimation 转:http://blog.csdn.net/tcjiaan/article/details/7526026...
  7. 《Adobe Audition CC经典教程》——1.5 使用外部连接器
  8. visio业务流程图教学_用visio软件怎样画数据流程图和业务流程图?
  9. 火狐 ajax提交失败,Firefox下AJAX0x80040111错误的解决方法
  10. 海康视频转码 - 标准mp4格式(java)
  11. php程序员 合川_重庆PHP程序员工资如何?
  12. 人体神经网络的组成部分,人体的神经网络是什么
  13. MySQL入门系列:查询简介(二)
  14. c/c++ string转int int转string string拼接
  15. itext7生成pdf页脚页码
  16. 启动nexus常见问题
  17. 如何在浏览器中打开windows应用程序
  18. 沈华伟老师图卷积神经网络教学视频笔记
  19. python画车辆轨迹图_如何利用 Python 绘制酷炫的 车辆轨迹 — 速度时空图?三维数据用二维图像呈现...
  20. Linux安装中文输入法(谷歌输入法和搜狗输入法)

热门文章

  1. imu 里程计融合_轮式里程计(Wheel Odometry)以及惯性导航(IMU)数据
  2. if [ $? -ne 0 ];then 是什么意思
  3. java毕业设计云端存储的待办清单的设计Mybatis+系统+数据库+调试部署
  4. java 接收命令行参数_java中的命令行参数_Java中的命令行参数
  5. Unity渲染管线流程
  6. 计算机图形学中的渲染管线
  7. 单机版和网络版的区别
  8. 基于微信小程序的小型企业人力资源管理小程序
  9. 1.1-了解什么是计算机
  10. 分享推荐几款黑科技APP,不止是华为手机能用哦!