这里我想从影响我们项目开发进度的一些因素来反思这次我们项目的一些不足。期待各位大虾批评指教.
1、数据库设计:
这次在项目开发中,碰到一个较大的问题是,有的表没有,这就给我们的业务扩张带来了一些麻烦,例如这次在用户与订单这块,没有设计一张用户收货信息表,在商品上,没有设计一张商品类型表,这样使得对于信息数据的重用和业务的扩展出现了一些瓶颈。在表的字段设计方面,这次也有一些的问题,例如在用户表方面,应该具有性别,所在地,邮箱一些字段,这些对于接下来与用户相关的一些业务开发是必须要用到的,也是可以扩展的。对于表与表由于存在外键关联,特别是进行删除操作的时候,需要注意从从表开始操作。关于表的设计:针对业务开发的需要,利用面向对象的思想,找出与整个业务相关的一些对象,尽可能的找出更多对象,然后在进行筛选整合,初步确定要设计哪些数据库表。关于表的字段的设计:对于每一张的表的字段确定,可以通过与这张表的相关业务服务操作来确定。关于表与表之间的联系:由于一些表之间存在一个从属关系这里主要是外键的确定。



2、关于VO对象的设计:
 一般VO的设计是与数据库表相对应的,而仅仅这样就会造成一个问题,在前台显示数据时,不能给出一个直观数据表达。如在订单表中只需要设计与一个用户的编号相关联,而在
前台的业务逻辑的显示中是需要将用户名给显示出来,这样在设计VO对象时就应该将用户名也作为订单表中的一个属性,这样就能够前台显示的需要。另外一种情况是,如果一个业务需要多个表的信息,这里就可以将业务需要的字段组成一个VO对象,而在数据库中并不需要有这样的一张表,可以通过创建视图,或者直接通过连接查询得大VO对象所需要的数据信息。从上面的分析可以知道,在VO对象的设计时应该更多与业务的数据需求相关联,而VO对象数据信息的需求则可以同过数据库或是数据访问层来处理。
 



3、关于开发环境
版本使用:这次出现一个小的问题是,我们这组除了我之外,其他成员都是用的MyEclipse9或Myeclipse10,我用的是Myeclipse6,我写的代码在他们的上面运行时,由于版本问题,会给出错误提示,例如最让我郁闷的一个“错误”是,当我Form表单中使用οnsubmit="return check();"是没有错误的,但是在Myeclipse10中却给出错误的提示,去掉return,则不提示错误,但是这样onsubmit就没有任何作用,而忽略这个错误提示,添加上return,onsubmit函数才能起作用。例外一个与版本相关的问题是Tomcat与JDK的搭配使用。如果出现Bad Version的错误,则是JDK版本的问题,所以在Myeclipse6.0中不用自带的JDK,而使用自己安装的对应的JDK版本。
我的想法是,不要使用过高版本的开发工具,高版本的开发工具可能不稳定,这次就更深的体会,还有就是项目开发文档使用的Office软件的版本,也不要使用Office2007或是Office2010那样的版本,会存在一个兼容性的问题。所以在今后的开发过程中,要形成一个稳定的,一致的开发环境。




4、代码规范与整合



这次在代码整合方面不得不说是做了较多的无用功,由于在修改了数据访问层的代码,没有给出具体的标记,致使更新的时候不好操作;另外,在写文档注释是作者应该标上作者自己的名字以及时间,到时有什么问题就可以找代码的实现者就行交流,并且要有方法的注释,以及关键代码行的注释。如果不是按照功能模块的分工,做好不要随意修改底层的实现方法,可以的话定义新的方法,或者要给出即使的反馈。
 



5、功能分析
对于整个项目的功能模块进行具体分析时,我想比较重要的一个方面是一定要结合用户的使用需求以及体验感,而对于代码的实现,正如舒老师所说的这个不是最重要的,但是在一个较大功能的分析实现的时候,应该首先要给出一个向前以及一个向后的考虑,向前是用这个功能要先做一些什么处理,向后是当一个功能使用后,还要对哪些数据进行处理。如购物功能的实现,向前要考虑当我点击放入购物车的时候或者购买的时候,要做的是判断用户是否已经登录,如果登录,则可以查看购物车,当提交订单后,显示订单提交成功,这里我们还要做的一个操作是,将保存在session会话中订单项信息给清空,避免当前用户再次购买的时候,出现先前放入购物车的商品以及在同一个浏览器中的另外一个用户登录后出现上一个用户所购的商品。这里我想主要是要注意一些细节方面和逻辑方面的处理。
 



6、项目反馈
首先一个是要注意将自己所遇到的问题进行记录,可以使用一个txt文件进行记录,如果问题已经解决,记录问题的解决办法。其次,在方法或是业务功能的方面不足的地方,如果来不及处理,则应该记录下来,或者是先写好一个类或者方法。另外,对于一些小的Bug可以先提出来,先大家一起解决。最后,将自己的记录结果,进行汇总反馈,一起讨论,马上解决,或是给出解决方法,以及确定项目在先前做好的那一部分还是需要做什么样的改进。通过反馈能够及时的发现项目中的一些不足,此外,每个人遇到的问题是不一样的,通过学习别人解决这个问题的办法,就增加了自己的经验。