A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wuqiong 金牌黑马   /  2018-5-21 16:10  /  774 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这几年一直参与一款软件系统的开发工作,有很多体会,包括对这款产品的理解、对这个行业的理解、软件产品设计方面的理解等等。有必要写篇心得体会记录下来。
另外论述的一个主要观点是,通过软件配置,来解决将来可能的需求变更升级等等问题,软件配置是一种有效的应对软件问题的手段,是一种比设计模式更高一级的手段。不同行业的应用软件,可能有一套适应这个行业的软件配置,目前了解的几个地面测试领域、工控软件领域、酒店管理领域都有一些本行业的配置。如果把这些配置抽象化,或许可以成为行业标准。
后面的内容是这几年的研发体会。
  • 软件配置
    产品的技术核心是配置,在软件产品中,配置这个事情推广了看,如果能够根据配置来动态执行软件,用户的变化都可以通过修改配置来解决,而不需要修改代码,可以极大的降低成本、风险等等。就像我们经常讲的设计模式一样,本质上都是希望以最小的修改量,应对需求的变化。配置就是一种以最小代价达到目的的有效方法。
    当然这里配置的存储形式,可以是配置文件,可以是数据库结构等等。之前接触过工控行业的组态软件,组态软件就是通过巨大的配置运行采集、控制等,这类项目实施时现场派个实施人员,在组态软件中各种配置各种采集控制信息,之后程序根据这些配置型运行,根本不需要新开发代码。还有一个例子,是同事讲的酒店管理系统,全世界最牛的酒店管理系统,就是通过各种配置运行起来,也不需要新开发代码。
  • ICD建模
    配置的具体表现形式是ICD建模,ICD这个概念是国外传进来的,英文名称是Interface control document即“接口控制文档”。通过ICD可以将被测试设备,与被测试设备交互的各种其它设备、数据交互等内容定义出来,ICD本身是一个巨大的配置,ICD中定义了有哪些硬件接口、传输的数据格式等,系统启动后根据ICD来创建相关对象、采集收发数据、解析相关数据包。用户使用时呢,也只是根据自己的需求,设计规划ICD结构,根据二次开发接口开发少量插件代码。
    有了ICD之后如果后期用户变化了接口配置、变化了数据包格式,只需要调整ICD配置,不需要修改代码,就能满足用户变化。修改配置、而不是修改代码,最大化的降低修改代码带来的一系列问题。
  • 二次开发
    很多软件都有二次开发,之前没接触过时觉得很高级,其实是软件提供了一些面向对象的接口类,二次开发写的类实现接口类的方法,就可以放入到对方的软件系统中了。最近也看了一些eclipse的插件开发文章,一样的道理eclipse提供了一些接口类,插件实现这些接口类。原理说起来简单,但是你的系统要暴露哪些接口给外面,就需要深入研究了,类的设计,这也是面相对象编程的精髓了。软件系统可以提供自己的接口,以插件的形式加入软件模块,这也是一种应对将来可能的需求变化的手段了。插件如果支持其他语言、脚本、web形式等等,那么又可以增减开发人员的选择。
  • 产品研发、体系、国军标5000A
    2014年一年时间,项目组严格执行了国军标5000A,什么三大计划、里程碑、各种报表等等做了很多5000A的事情。同时这年有五六个月在反复修改、评审需求规格说明和概要设计,可以说文档的工作做的非常足,甚至到现在我都认为,全公司需求规格说明和概要设计没有项目组超越我们。
    说到5000A很多人不熟,5000A是一套质量体系,规定了很多事情,这些事情现在来理解确实很有用的,5000A约定软件项目如何做,怎么做,按照5000A执行下来,任何人都能管好一个项目。5000A的话题太大了,可以专门写一篇文章。
  • Bug管理、svn、单元测试
    这几个都是非常有用的内容,每个开发人员都应该在自己的开发工作中应用。甚至于我对一个开发人员的评价,是写不写单元测试、用不用代码版本管理工具,来定位是不是合格的开发人员。
    写到这里,看起来也罗列了一些自己的感悟体会,最近一些事情容易分心,也到年底了,来年的形式如何也不知道,需要把这些记录下来,这些都是这几年的收获,所谓的经验,与大家分享。

2 个回复

倒序浏览
6666666
回复 使用道具 举报
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马