短短的一个多月的时间已经做出来一个简单版本,可以完成主要的医保流程,其中加上十月一以及周六日放假等,实际上做项目的时间也就是一个月的时间,这个系统是一个大的综合系统,我们做的只是里面的一个小的子系统,到目前为止这个系统可以运行了,里面一些关于统计分析、数据图等补充的内容没有添加外已经都昨晚,可能还会再第二版中把这些功能做上。
系统虽然已经提交测试,可以运行但是在做项目的还是有很多感悟的,这个项目是从前期数据库设计到代码实现都参与了进来,考虑着哪里容易出问题怎么设计等等。有些问题很简单却值得我们在开发中多多注意。
1.实现方式的选择
有很多时候我们在实现某一个功能的时候有好几种方式都可以实现,那么你选择哪一个方式做呢,觉的作为开发人员总想利用自己觉的高点的实现方式做出来,这样像无可厚非,其实从用户角度想他们并不关心你用到了什么技术、他们真正关心的是用户体验度,关心的是界面,界面是直接和用户打交道的通道,因此,并不是你使用了多么高深的技术就会产品做的很好,举一个简单的例子:
我们系统中有一个界面是批量添加数据,每条数据是一个实体,就是从前台往后太批量添加数据,记忆中高校里面做的类似的拿出来看了看,这是DWZ框架为我们封装好了这一功能,只需按照DWZ给的例子做就可以了,现在前台没有使用框架就需要我们自己写一个通用的方法解决这一问题,这个问题其实很好解决我们可以用数组的形式,每个实体有多少个字段我们就使用多少个数组,这样似乎有些麻烦但思路很清晰、简单,还有是自己写方法注入,经回忆DRP中有类似的实现方式,尝试了尝试也实现了传值。
本人觉的如果有多种实现方式时,如果项目不紧可以尝试使用难一些的方法,如果项目紧就需要考虑时间问题了。
2.执行力不足
做项目的前期往往比较慢,执行力弱,当给了任务或者分配给别人任务后,做的不是很着急,没有多少紧迫感,总是领导说要看看系统了、看看系统中的功能做的怎么样了才会着急做,那几天往往是效率比较高的几天,如果做项目一直合理分配时间,应该不会导致前松后紧的情况出现。
做项目都是一到后期就会出现加班严重的现象出现,系统着急上线不得不加班,无论是在哪里都有这样的现象,在提高班做项目也是最后要忙活几天,这几天过去就又好好休息几天。
如果前期做项目对于一些细节规划好点,测试的时候就会少出现很多bug,也就不用很赶那么几天。
3.数据库字段类型选择
觉的一般的字典字段如男女、科长、职工等,最好使用字符串,像一些金钱类型的需要使用double类型,还需要四舍五入保留两位小数,觉的我们系统里面对于数据库类型使用的有些乱,常常出现类型转换错误,看不出来哪些使用了整型、长整型、字符型、double类型等等,在我们自己设计数据库时最好做一些规定或者统一,以便后面开发使用方便,初次之后,对于使用了hibernate映射等,数据库实体以及表结构设计尤为重要,只有后台设计好了前台才好实现,要不有些设计到多张数据表的时候会不好操作,前台也会不灵活。
4.前台样式
关于系统前台样式最好在前期做某一个小模块时就统一起来,省去了后期修改的麻烦,现在我们就是功能做完之后还需要统一调试界面的样式问题,每个界面和每个界面的样式需要我们去调试,不如在前期统一好。一个系统好的设计和不好的设计是差的很远的。
5.前后台代码代码统一
开发中有时前台和后台会分开来写,分开写的好处是系统中代码风格会很统一,写后台的只写后台写前台的只写前台,易于代码的维护和阅读,在一起业务比较复杂大的系统中,往往采用这种分开写的方法,这也让不同的人发挥不同的优势,如果你对于操作数据库、写SQL语句不熟悉,也不用担心开发不了,你可以关心业务。
6.数据库设计冗余字段太多
这个系统中总共十几张表,几乎每个表中都冗余了很多字段,有的两个表几乎是一样的表结构,可以通过关联字段来获取值。
7.职工
在这里的正式职工几乎是不怎么干活的,他们也不是不会干,可能国企里面养成这样的习惯,干活慢、不着急、领导如果不催的话没有人着急做项目,这里的人大部分是维护其他系统的人员,和干开发的相比要显着轻松多了,还有维护12306的一群人也都在这里,想想我们在全国都用的12306服务器旁边开发,12306就在我们身边。
大部分工作是由外包人员来做,为什么说外包比较锻炼人呢,让你做的工作比较多,遇到问题需要你去解决,如此一来得到锻炼和实践的机会比别人多,你积累的东西就比别人多,前几年干干外包也有好处,增长快但是比较累,看你怎么选择了。
8.交流和沟通
在做项目中交流和沟通往往是很重要的一项内容,一边做项目会遇到各种问题需要去找某某个人商量,因此彼此负责的内容不同,即使你们负责的不尽相同那么也会有业务往来,在做一个项目中不交流是不可能的,在做的时候我也是有些问题觉的需要同别人商量的就找人商量一下,我们组有一个211中海石油大学的,也是一个屌丝,挺爱学习的,可以考上本一好大学的同学都有着些爱学习的品质,自己主动学习的欲望强烈一些,要不也不会考上好大学。
在一个项目周期中需要同各类人员打交道,前期需求阶段主要是项目经理、主任、架构师、技术总监等,等项目着手开发后主要打交道的就是经理和开发人员了。有时候是交流推动着项目往前走,在同别人交流中逐步对某些问题的理解主见加深,对业务也有了写了解。
总结
这是出来做的又一个java项目,第一个使用的SSM框架,这个是SSH框架,使用起来都很容易,在做这个项目的过程中也收获了很多东西,更多的是工作中的感悟,需要你去一点一点体验尝试,去学习做项目、同别人交流沟通、大家一起合,其实在工作中学习到的最多的不是技术,而是怎么样在工作中同别人合作;在做项目中,更好的参与到其中、更好的同别人交流,觉的这是学到的最多的,至于一些技术类的知识也加深了理解,多沟通和交流技术自认而然就会上去,两者相互促进。