经历了第二个小组项目后,对今后在工作中会遇到的技术实现、团队合作、实际上线等问题的理解更近了一步。了解了软件团队的大体工作流程,网站开发常用框架及工具,体会到了沟通协作的必要性和重要性。下面就在这段时间总结下:


第一阶段:需求分析阶段。其实我们以后在企业去,拿到一个项目都是从需求分析开始的,只有充分了解了用户的需求才能开发出功能完整,性能良好的项目。然而对于这样一个项目的开发来说不是一件容易的事情,必须作好这个阶段。因为这次是承接前人的项目,而且参照了市面上一些成熟的网站而设计的,并没有牵扯到实际应用中和客户沟通和配合。项目做完了,回过头来看自己的项目文档,确实还有很多不合理和需要改进地方。

第二阶段:项目分析设计阶段。在整个项目中直接关系到后一阶段的编码,所以它在总体上起到了承上启下的作用。这一阶段的主要任务包括分析项目中对象,再根据对象设计数据库,在完成数据库后就是数据流图了,它大体上描述了程序走的流程,以及大体的一个架构。

第三阶段:编码阶段。在整个项目中注重的是设计思想以及其中的业务逻辑。在实训期间,项目规模有限,逻辑也并不复杂,而在实际工作中,一些大型项目之所以难其实也就是在业务逻辑上难以理解。对于我们开发这个项目占用了整个开发时间的绝大部分,由于缺乏经验,导致过多的精力分配在视图层的实现上,真正留给后期整合和调试的时间甚是不足,在最后答辩期间暴露出林林总总的问题,无法实际上线。应该吸取教训,在今后的学习和工作中引以为戒。

第四阶段:测试及整合。这一阶段差不多也就是整个项目的最后一个阶段了,因为它没有涉及到具体的维护。由于前期安排每个人做的功能互有交叉且进度不统一,合项目的时间又仅有不到一周的时间,导致没有充分地测试每个功能,甚至有些功能的逻辑实现都不完整。也是到了这个阶段,才发现最初需求分析时有些功能的设计是不合理的,数据库建表也存在重复的现象。

到此,这两个月的时间我就大概经历了这四个阶段,体会了一个项目开发从需求分析到发布的整个过程,同时也对前面所学的知识得到了全面的巩固与复习,学到了一些以后经常用到的技术。
开发技术总结

此项目中使用的技术和工具:

1 Tomcat 7.0

Tomcat 是一个易于安装的 Apache 发行版,提供轻量级的Java服务器环境,需要自己加载SQL外部包。绿色、便捷。

2 MySQL

MySQL 是一个关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (关系数据库管理系统) 应用软件之一。关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库,搭配 PHP 和 Apache 可组成良好的开发环境。


3 MyEclipse 2014

MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。


4 基于MyEclipse 环境的CVS

CVS是一个C/S系统,是一个常用的代码版本控制软件。主要在开源软件管理中使用。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。


5 Spring框架

Spring是一个轻量级的控制反转和面向切面的容器框架,它是为了解决企业应用开发的复杂性而创建的,它使用基本的JavaBean来完成以前只可能由EJB完成的事情。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。


6 Struts2框架

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器来建立模型与视图的数据交互。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开。


7 Hibernate 框架

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。


 技术总结:

在整个项目完成的过程中,用的了前面学习的80%知识点。对整个技术有了一个很好的结构体系,不再像在学习过程中知识点那么分散,正是由于是对整体结构的认知,所以对自己技术的薄弱环节就在整个项目中凸显出来。这对以后学习有很大的帮助。

再有一个就是对解决问题的方法思路的整理,在原来工作中好的解决问题方法得到了更好地应用,比如说上网自己查询,或者问网友,同时又养成了时时查手册的习惯。

深刻的体会到中间缺课的影响之大,从最开始的对Spring和Hibernate一无所知,通过参考同学们的代码块,同时看课件和网上资料才慢慢摸清了大体原理和实际用法。虽说最后大体上完成了预定任务,但深感自己对技术理解的不到位、不扎实,应用的不熟练。在此也感谢无数次悉心倾听我的询问并细心解答各种问题的小组成员。

整个项目过程中,对项目初期的掌控不是很好,在项目文档设计的时候部分没有考虑到数据库必要的字段,比如用户地址、库存管理、评论管理等,还有对项目整个文件结构的设计也没有很全面的涉及到。比如功能模块的命名规范。