关于公司系统支撑工作的建议

news/2024/7/5 2:31:06

关于公司系统支撑工作的建议

成晓旭

刚来部门不久,对部门的整体工作情况了解不多,对公司的信息系统建设情况更是不敢枉自品评。

对于像我们这样规模的公司,自己建设、实施和维护满足公司自身管理要求的管理信息系统,是目前部门公司对于企业ERP系统的建设方式。比如:XXXXXXXXXXXXXXXX等等知名企业。其实:这种ERP系统建设方式,我本人并不看好和推荐。如果公司也采用这种方式建设我们自己的综合信息管理系统,本着把事情做好,尽量让部门能更省心、更有效的为公司综合信息管理系统提供支撑,从我个人的视角出发、提出几点浅见:

1、   加强相似业务流程、管理模式的抽象与提炼,通过系统分析与设计、并编码实现成我们自己的基础架构源码库。下面是用简单的源码统计工具,针对新、旧两个版本的XX系统,进行的最简单的代码行数统计分析情况:

 

总代码量

业务代码量

架构代码量

2/8原则(80%BUG分布于20%代码中)

2/8原则(20%BUG分布于80%代码中)

XX

135704

135704

未统计

27140

108564

XX

36891

31025

5866

7378

29513

         仅通过最简单的减少系统代码量,相信就能较大的降低系统后期的测试、调试、维护、升级的复杂度和工作量。

2、   注重新建子系统、功能模块、业务构件、甚至是最简单的一个新单元、新类的重新分析、设计和实现。针对目前整个系统的在新运行情况和日常的维护工作量,我们不大可能有充足的人力和时间,来整体重新构建各个在线的子系统。但新业务需求的实现时有发生。既然是新增功能、新写代码,我们更有理由摒弃原来不太好的开发方式和思路,采用一些更专业、更成熟软件开发模式与架构,至少让新增的功能块一开始,就有较好的稳定性、较高的可复用度、较强的可扩展性。坚持这样,才能逐渐、逐渐地提升整个软件系统的内部质量特性、才能逐渐、逐渐地减少系统的维护工作量;否则,随着软件代码量的日益增加、系统功能的日益复杂、业务需求的频繁变化,已建系统对新需求变动的满足难度势必越来越大:“雪球效应”很可能发生在系统支撑小组,导致系统支撑小组最终很难再继续有效地支撑下去。

3、   为支撑小组的软件开发、维护工作选择适合的软件开发方法论,并结合具体工作实践进行裁剪或增补。切合团队实际工作情况的软件开发方法,将极大改善开发团队的工作效率、提升交互软件产品的内外品质:已是不容质疑的事实。传统的软件开发方法、信息化软件开发方法、统一软件开发方法,都不太适合我们公司系统这种“应用需求变动频繁、支撑资源配置紧张”的现状。建议采用敏捷软件开发方法的原则与模式:准确把握客户的当前需求、适度设计并保持设计的灵活性、简单开发以满足当前需求、频繁重构与迭代保持系统当初的设计原则、测试驱动开发和加强单元测试从最底层开始确保系统的健壮性。

4、   在公司系统的开发、维护、支撑过程中,建议一定要坚持系统建设初期的分析、设计、编码原则,至少最起码的基线原则必须坚持。进公司几个月来,听到、看到太多的、很好的原则在现实面前妥协的情况。表面上看,我们的妥协当时是缩短了开发时间、提高了客户需求的响应时间;其实,事后我们往往为违背这些原则付出了更大的代价。众所周知,任何项目系统的建设,在人力、时间、质量等方面都是受限制并且相互制约的。软件系统的经典的设计模式与原则也是人所共知的,最终软件产品的质量在很大程度上,就取决于开发团队在软件构建过程中,对原则的坚持力度与执行力度上。

5、   个人对公司系统构建过程的建议:准确把握客户的当前需求但不求全责备;采用经典、成熟的设计原则与模式但不过渡设计;尽量用简单的编码来实现当前功能;通过频繁的重构来坚持期初的设计和实现原则;在维护和新增功能前尽可能先重构再重用、杜绝通过“代码复制”实现相似的系统功能;加强单元测试来保证系统构件的可靠性与健壮性、将软件BUG的大部分解决在单元开发期间。我个人经验是:“用精巧、优雅的设计来应对需求的瞬息万变;用重构与迭代来维持良好的系统体系架构;注重单元测试保障系统内部、外部品质”。

6、   再次建议加强系统测试、尤其是开发初期的单元测试。在我的维护工作中,很多次发现这样的现象:运行很久的程序功能突然发生一个异常,通过跟踪代码,错误居然被定位很基本的指针保护或逻辑错误上,而这些错误极易在单元测试中被覆盖、发现和解决,相反,在系统后期的组件测试、集成测试、回归测试、系统测试阶段较难再现。这类问题还反应了我们原来的测试用例的代码覆盖率不高。

7、   其实,还有很多,觉得太过于注重细节,就不写在这里了,在日常的工作中,慢慢的改进吧。

 





http://www.niftyadmin.cn/n/3649236.html

相关文章

如何将class文件打包成jar文件

如何将class文件打包成jar文件,这是一个很严肃的问题,当你在在使用webservice的saop协议的时候,很多地方不免需要用到远程jar包,这些jar包里面,存放的将是你的VO或者是JavaBean 这些方法都将对外提供并暴露。好了 &…

vue密码正则验证表单验证_如何在Vue中使用表单验证

vue密码正则验证表单验证介绍 (Introduction) Almost every web application makes use of forms in some way, as such developers always have to tackle form validations. If you are a new developer, it can be hard deciding how best to approach this. Depending on t…

使用SharedStore的Python实现方法

打算在我的QTP framework中的HTML reporting里面加入detailed steps,想到了早期翻译的Tarun的文章中提到的一个工具:Shared Store 由于是COM组件,所以可以在python中实现 (我的HTML reporting也是用python实现的) 以…

[收藏]wuvist经典讲解MSNMessenger的四个联系人列表

原文:http://www.blogwind.com/wuvist/comment.aspx?article_id7004MSN其实有四个列表:ForwardList,AllowedList,ReverseList,跟BlockedList。我们平时看到的联系人列表其实只是:ForwardList而已。当我们看…

Ubuntu 11 安装Subversion成功记

综合了几个网页信息,结合自己的理解,在Ubuntu11上搭建成功了svn server 第一步:安装apache2 libapache2-svn subversion sudo apt-get install apache2 sudo apt-get install subversion sudo apt-get install libapache2-svn安装完后按照…

gatsby_Gatsby更快的WordPress网站

gatsbyTalk about the latest cutting-edge web technologies, and you find some impressive names like React.js, Vue.js, Next.js, and so on. They have opened new gateways and approaches to building websites that can serve content to users quickly. 谈论最新的前…

经典面试问题:12小球问题算法(源码)

(文档请参考:http://blog.csdn.net/CXXSoft/archive/2006/09/28/1299731.aspx)3、 运行效果4、 算法源码...{ 作品名称: 小球问题通用解决方案 开发作者: 成晓旭 开发时间: 2003年01月22日 完成时间: 2003年01月23日 修改时间1: 2003年11…

three react_使用react-three-fiber在React中编写Three.js

three reactSo you want to write some 3D graphics/animations in your React apps using three.js? Let’s see how we can do just that, leveraging the react-three-fiber library. 那么您想使用three.js在React应用中编写一些3D图形/动画吗? 让我们看看如何利…