Posted on 2007-02-27 17:43
冰浪 阅读(2032)
评论(5) 编辑 收藏 所属分类:
WEB开发
本无意要写这个日记,但随着设计的深入,收获越多,感想越多,于是想把这一整个过程简要地记录下来,也是作为自己这个时期的一个总结吧。这个日记并不是严格意义上的日记,只是记录下主要的该记录的东西,所以也就没有按日期进行,而按阶段分点叙述的形式进行。
开发日记连载1:“系统架构”
我的毕业设计的课题为:高校学生会自动化办公系统(CSUOA:College Student Union Office Automatism)。这是我的自拟课题,这个想法是由于自己在学院学生会两年的工作经历所得,学生会的事务比较繁杂,很是需要OA一类的办公系统来装备;再者,在院学生会的两年,我收获不少,很是希望能在离开生活了四年的大学校园之前,给培育自己的母校献上一份薄礼,以至于自己不会愧对“网络技术部部长”一职。值得一提的是,我们班的毕业设计课题100%是我们学生自拟的,而其它五个班自拟毕业设计课题的很少,先不管自拟课题的质量如何,至少我们有了自己的想法,这点就是一种成功,而且都已通过指导老师的审核。这点也深得系里领导老师的认可。作为班级成员之一的我,深感自豪!
CSUOA课题的设计组有三人,泽远,松金也是其中之一。由于是我提出的来,所以需求分析之类的前期工作基本上就是由我来负责了。在学校时要实习,所以那里就没有去想,既然决定提前回家了,我就计划在家里着手准备一下毕业设计的事了。
按我一开始的设想,CSUOA用JSF+Spring+Hibernate三个框架组合来完成。其实最常见的组合是Struts+Spring+Hibernate,为什么我不选择Struts而选择JSF?当时在决定学习Struts还是JSF时我看了很多两者相关的文章,Struts流行了几年了,似乎成了主流,但随着发展,JSF也是因为Sun的推动,有意让其成为JavaEE的标准,而使JSF慢慢抬头。JSF加入了事件驱动等等更为便捷的技术,可以说是很大的一种进步,但至今仍不甚完善。我觉得要学就学习更新更有前途的技术(我认为JSF是有前途的),所以选择了JSF。JSF作为客户层,Spring完成业务层,Hibernate作为持久层。其实最为人所推崇的组合应该是JSF+EJB3。但由于EJB3也是一个不太完善的技术,最重要的是它需要JBoss等应用服务器的支持,我所能用的服务器并不能做出支持,在毕业答辩时,我无法完成程序的演示,所以我并没有采用这种方案。
在毕业实习时,公司采用struts来开发,分配下来的开发任务也是基于struts的,所以为了工作需要,我又投入到了struts的学习中,struts没有什么很难理解地方,所以看了下基本知识,结合公司的实际项目源代码学习,很快就上手了。分下来的任务也很顺利地完成了。在这个过程中我认识到了struts在处理web表单数据的方便以及它清晰的MVC层次,因此自己喜欢上了struts!值得一提的是,在阅读公司实际项目源代码时,我体会到了用DAO模式作为数据持久层进行数据库操作带来的便捷,这也被我后来设计CSUOA所采用。
随着对项目思考的推进,我最终确定了CSUOA的系统架构为:JSP+Struts+Hibernate。对于这个决定,我在此也简单说明一下。
1、Struts替代JSF。在中国,Struts还是主流,我应该更多地为自己将来的工作着想,让自己更快地融入公司的开发团队;JSF对于web表单元素的完全封装,已经让我们看不到了html表单本来的面目,换句话说,已经完全舍弃了JSP,JSF与JSP没有交互。我还是比较喜欢struts的“纯”,自己所写的每一行代码做了什么事自己都清楚地知道,而JSF却把很多东西藏了起来,这让我感到不安。
2、舍弃Spring。在这里,我不是觉得Spring不是主流或者不喜欢什么的,而是,这SSH三个框架对于自己还是不那么熟练,spring可以说完全没用过,之前只用过struts和hibernate。对于这个毕业设计,我并不想把大部分的时间花在对这几个框架的学习上,虽说上手不难,但要熟练掌握却并非朝夕之事,所以我想把注意力缩小在struts和hibernate上。在后来的进行设计的情况,也进一步证明了这个决定的正确。
到此,CSUOA的大体架构已基本确定。有些Java高手或许认为:毕业设计做OA是不是太没意思了,又没什么技术含量。对此,我的想法是:一个小型的OA确实在功能上不具备什么创新或扩展;OA其程序可大可小,你完全可以只用JSP来实现(当然这里我不是说用纯JSP没有技术含量),主要是要看设计者的设计思想及其具体实现。我不会去做什么如人工智能可行性研究或者其它更为高深的技术研究或实现,这并不现实,而且在现阶段自己也不具备这种能力。我还记得,在候捷的《深入浅出MFC》中让我深深牢记的一句话:“勿在浮沙筑高台”。我想做的,应该做的就是把自己大学四年所学的知识浓缩在这个毕业设计上,对自己的知识做一些思考和总结。这就够了。