年中总结

工作总结

主要工作分成两个部分:

一、软件研发

1)完成军事本草系统的软件研发。软件目前已经安装部署完毕。期间共进行了5次软件的演示和安装部署工作。

2GPS端采集软件GCField的功能模块扩展和维护。根据实际的数据野外采集情况,对GCField的软件在其原有功能上进行改进,使其操作更加人性化,同时,又增加了一些新功能模块。随着软件的使用,软件基本定型。不再进行更新。

3)完成PC端数据处理软件GCTool的核心功能开发。GCTool数据处理软件,共包括了16个核心功能模块和18个辅助功能模块。在本年度中,由于客户的需要,GCTool软件的功能开发始终没有停止,一直在扩展和完善中。

4PC端中药资源普查成果管理软件的开发,完成工作的80%。软件的核心功能模块15个已经完成。目前辅助功能模块正在进行中。

二、技术支持和软件培训

12-4月份,共出差7次。主要工作就是做GCField软件的技术支持和宣传。去的城市包括合肥、长沙、乌鲁木齐、重庆和兰州。期间,在乌鲁木齐对中药采集软件做了两次的使用培训。

28-12月份,共出差4次。去了乌鲁木齐和咸阳。出差乌鲁木齐3次。主要是解决中药采集软件在使用过程中存在的问题以及对成果管理软件进行安装部署工作。出差咸阳主要是为了软件的技术支持。

体会

在开发技术上有所进步,主要体现在以下几个方面:

一、软件构架。

之前开发一个软件,从来没有考虑过软件的设计框架,一般都是根据实际的需求,需要什么做什么。由于前期缺少构架规划,后期就会出现很多问题:

  1、软件随着功能模块的增加,本身变得臃肿不堪,效率低下。

  2、软件适应变化的能力弱,扩展性不强。

  3、各个功能模块之间千丝万缕,互相依赖,维护起来也就非常麻烦,费事费力。

  4、软件之间的相互依赖,造成软件的不稳定性加剧。经常会出现一个模块的问题解决了,另外一个模块的问题出现了。按下葫芦浮起瓢。

考虑到以上问题,所以在开发GCTool和成果管理软件时,用到了插件式的编程思想。

软件从底层开始构架,各个模块遵循一定的接口原则,通过反射技术来加载模块。这样做就避免了很多问题,有以下几点好处。

  1、符合软件高聚合,低耦合设计思想。

  2、各个功能模块相互独立,代码清晰明了。易于功能的集成和卸载。

  3、单一模块出现问题,不会影响到其他模块。增加软件的稳定性。

  4、软件维护非常方便。

  5、非常适合多人同时开发一个软件,不会造成冲突,同时也易于后期的软件集成。

不过,这种思想也有一点不好,就是代码的重用性低。即如果相似的功能模块,在代码上,会有很大的相同。由于设计的思路,导致相同代码会重写。造成代码浪费。不过总体来说,弊大于利。

GCTool的设计和成果管理系统的设计,虽然都是插件式,但是在设计接口的时候,还是有些不同。GCTool的设计思路是之前参照一个软件写的,有点“依葫芦画瓢”的感觉。当时在设计时,有些地方还不是很明白。所以在后期的功能扩展和模块使用中,还不是很方便。

成果管理系统则不同,是在GCTool的基础上,重新设计,重新构架。在设计思路上更成熟。后期的功能扩展就方便了很多,同时在布局的使用上,也非常方便。是以后设计软件的一种很好的思路。

二、技术细节

在软件开发过程中,用到了很多之前不经常用到的技术,而这些技术,恰恰是设计软件的核心技术。通过这一年来的软件开发,基本能够驾驭这些技术。

  1、反射技术。反射技术是插件式编程的核心思想。软件遍历各个功能模块,通过反射获取具体的类来实习功能。反射不仅仅能获取到类库中的类,还可以获取到借口,方法、属性以及类的各种特性。在设计成果管理软件中,软件通过反射获取到各个类库的接口信心和GUID特性信息,加载功能模块。

  2、设计模式。在设计GCTool和成果管理软件中,主要用到了单一模式、工厂模式、装饰者模式以及命令模式。设计模式在软件的功能模块开发中经常用到,这几种是最常用到的。

  3、事件和委托。事件是委托的一个实例。委托也是一个类。在成果管理软件的设计中,用到了很多委托。同时对事件的加载和卸载也有了一个清晰的认识。插件式编程,如果功能模块与主核心模块有交互操作,就需要用到委托和事件。

  4、序列化。序列化主要针对的是对系统的配置信息进行保存。在设计GCField的软件中,用到了很多序列化类。对序列化思想有了一个清晰的认识。

  5、泛型。对泛型技术一直都不是很明白。在设计GCFieldGCTool中,用到的泛型就是基本的List<>类。在成果管理系统中。试着写了一个泛型的序列化类。对泛型的使用开始入门,但是还不能得心应手。

不过,还有很多技术细节并没有理解或者使用的很少,例如最重要的线程。目前多核计算机已经很普遍了,如何运用多线程技术提高计算机的运算能力,继而提高软件效率,是目前还不清楚的技术细节。以后要还需继续努力。

不足

  1、在做技术支持和软件培训的功能中,语言表达能力欠缺。很多事情表述与心理所想有很大差异。需要提高语言表达能力。

  2、技术上,还需要进一步的提高。包括之前提到的线程、泛型等。

作者: cglnet
本文版权归cglNet和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/cglNet/p/2804503.html