软件开发备忘录

软件开发备忘录


  1. 引子
  2. 立项
  3. 开发
  4. 收尾

引子

  最近郑州天气慢慢的变暖和了,心情也有点受天气的影响,烦躁的很。这几天,又有技术支持和销售的同事在“缺陷管理系统”给我的XX系统提了几个“建设性”的改进意见。我当时看到那几条所谓的意见之后,真真的是There's a fire starting in my heart了。并不是我听不得别人的意见,只是写这个项目有太多让我憋屈的事了。就像你大学四年为心爱的女生送早餐、占座,可是在大四的时候她却告诉你说“我不喜欢你,因为你不帅。” WTF ! ! !

  这个系统是我进公司以来独立完成的第二个项目,是从去年六七月开始做一个关于旧系统的重写。不过现在看来,那时候的重写不过是换套页面罢了,对于系统中存在的易用性和稳定性并没有多大的提高。后来在开发的过程中,在计划之外的时间和加班时间加入WebSocket通讯机制,从根本上改变了系统的可用性和稳定性。同时在前台页面中大量使用Ajax的方式通讯和通过JavaScript加载页面布局的方式替换之前系统大量使用Asp.net控件和后台代码彻底解决了系统加载速度慢和可用性低的各种问题。总之,在这个系统中投入了我很多的心血,现将在系统开发中遇到的问题和想法一并记录下来,算是对自己这一年以来的交代。

立项

  立项,在我看来是一个软件的重中之重。在立项过程中,我们有几点一定要确立好。正所谓“磨刀不误砍柴工”,如果一个软件的立项没有做好,想在后期通过项目成员的超神发挥把项目做好几乎是不可能的。首先我们要确定的是关于软件的几个基本要素:

  1. 当前软件要解决什么问题
  2. 软件的使用场景
  3. 软件的使用人员
    这几个条件看着貌似并不苛刻,可是在我们做项目中却很少有人能严格执行。之前做过一个项目关于气体行业的ERP,其实就是个很简单的供销软件。可后来在开发的过程中,因为客户的需求,就加入了各种模式的供销模式,再后来加OA,最后各种乱七八糟的管理系统也集成了进来。最终成了一个“巨无霸”的软件,按说这种要什么功能有什么功能的软件应该很好用的。可事实是:功能多而无用,一个工厂的供销模型一般都有很大的差异,关于报表的统计就更加的有差异化了。可是我们的报表为了兼容多种业务模式就显示了很多无用的数据,最终的结果就是很多人用的都不爽。再到后来这个软件就是bug比功能都多,客户不想用,开发人员不想开发。

明确软件的使用场景和使用人员对于后期功能的开发能够更加明确,避免软件使用性不高和关于功能的把控不足、不能精准的解决用户的需求或者过度开发某项产出不高的功能。

开发

  1. 开发打好提前量
  2. 开发人员协调
  3. 联合调试

开发过程中一些基础性的东西一定要提前确定好不然真的是要死人的。这次重写这个系统让我蛋疼的就是页面了,来来回回换了三四回。其实,在我看来这几套页面并没有多么好看或者有辨识度,跟思聪哥的女朋友一样:看着确实不一样,但是仔细一看都差不多。就因为倒腾这几个破页面,有段时间右手的食指根本都弯曲不了。

还有就是开发成员的组成了,开发这个系统由两部分的人员组成。一部分是C++,主要负责客户端的开发。我主要开发Web端的数据交互和数据展示。这个系统的主要一部分就是还得要跟他们有接口交互,关于这个接口其中设计到了一个加密的模块。当时的情况是:客户端不懂服务端的开发模式,服务端不懂客户端的开发模式。客户端加密之后的数据只管往服务器扔,其他的就都不管了。其实,当时我的程序跟客户端之间还有一个IIS服务器,有些请求根本就是IIS拒绝掉了或者自动处理掉。可是他们当时并不知道,而我也不了解他们c++,也不知道具体问题出在哪里或者应该怎么改进当前的加密方式。就因为这个加密的问题,当时耽误了有两周时间多,双方都闹的很不愉快。出现这样的情况,很大的原因要归于没有一个真正的技术带头人或者决策者。都是两个愚蠢且爆炸的程序员在言语的嘶吼和心中的谩骂中一步一步的熬出来的,当时如果有个真正的决策者。确定研究的方向:到底是客户端服从服务端还是服务端服从客户端?我想就算刚开始的研究方向是错误的,最终也会解决问题的,而不会像这样在撕逼中完成工作。

联合调试是这个项目必不可少的部分了。可以说,这个部分出现的问题最多,也最明显,也更容易改正。比如,两个人工作进度不一致导致不能同时联调,或者客户端没有正确的响应等。不过,联合调试的时候出现的问题很明显,也很直接。很多问题几乎就是只出现一次,以后就很很好的避免。联合调试中重要的就是开发人员要保持良好的心态和正确的沟通方式。也是程序员最欠缺的与人打交道的正确方式。

收尾

现在这套系统已经做完了,剩下的基本就是功能的维护和改进。通过这样的一个完整的项目开发周期,踩过了很多的坑。有自己的开发模式上的、有与人协调上的。也学到了很多技术上的知识,与人沟通交流的方式方法、在联合开发中的正确甩锅姿势。年纪大了,有些东西不记录下来就容易忘记。本来有好多东西要说的,现在实在是憋不出来。先记录这么多吧

2017-06-03

posted @ 2017-06-03 19:20  贾世唯  阅读(233)  评论(0编辑  收藏  举报