项目总体情况
本次实训中,我们选择的项目是人事管理系统,在14天的时间里完成了项目立项、需求分析概要设计、详细设计和编码这些流程。总体来说我们对这个系统的业务并不熟悉,导致我们的前期设计非常的不完善,对业务流程和数据库的设计都存在着缺陷,这些问题都在编码阶段暴露的非常明显,给开发工作带来了很多困难。现在更能理解实训老师说的在开发过程中有百分之七十的时间是用在编制文档上面。更准确的说是大部分的时间其实是花费在设计上。
虽然说这次实训中我们组花费在编码阶段的时间也不少,但是编码阶段其实并不难,更多的时间是在学习新的技术,Mybatis、SpringBoot和Vue等等。编码的时候就像工厂里流水线的工人一样,坐着简单重复的工作。还有就是在设计上偷的懒也在编码阶段还了回来。
从我个人来说,作为组长没有把大家组织起来好好进行设计工作,这也是我们在项目中频频遇到问题的原因。大家思想都还没统一,就开始各顾各的做自己的工作,交流和沟通太少,在项目整合的时候就总是出现大问题。
虽然过程磕磕绊绊,最终也还是做了个能实现要求的应用出来,在实训中学到了许多新知识,也吸取很多新的教训。
设计总结
说来惭愧这个学期刚上面向对象设计的课程,结果设计的还是一塌糊涂。这个教训告诉我们,设计不能贪快更不能想当然。设计不是一蹴而就的,是一个需要认真思考和推导的过程,可能需要多次的迭代甚至是推倒重来。
- 需求分析
根据任务书,我们确定了系统所涉及的实体和基础功能。我们没有去探索业务流程的条件,只能根据自己的经验和猜想来模拟一下客户的需求。 - 数据库设计
刚开始的时候数据库的设计是特别随意的,我认为不就是存些数据而已嘛。在后来的详细设计中我们发现最初的数据库存在着缺陷,就不断进行修改,但是在开发中还是会遇到因为数据库的缺陷而导致的问题。
比如说在登录的时候,要根据这个账号的身份给他开放不同的权限,在这里应当给用户表设置一个用作身份标识的字段。而我们是通过比对用户的职位名来分配权限,这样并不合适。
再比如,我们有个需求是部门经理可以在当前部门下开设下属部门。在我们的设计下,部门经理是通过员工所属部门编号来获取员工信息的。那么问题来了,当A部门经理设置了一个下属B部门,并且让员工C来当B部门的经理,那么这时候员工C的所属部门编号是A部门的还是B部门的。如果是A部门,那么他就查不到B部门的员工信息;如果是B部门,那么A部门经理就查不到员工C的信息。这就产生了冲突。这里应该有一个上司编号之类的字段,来让上司查询下属信息。
数据库还有一个很重要的作用就是用在Mybatis的逆向工程中用来生成代码,如果数据库设计的不完善,到了编码阶段出现了问题就会很麻烦。 - 详细设计
详细设计阶段。。。我们压根就没设计出啥。直接就闷着头开发了。这样的操作非常不可取!!!
因为所以,我们的编码过程就变得非常的繁琐。前后端分离开发,然而我们没有做好接口设计,大家各自做各自,结果就是前后端真的分离了。。。所以我们在前后端的整合过程中花费了大量的时间。这个教训非常的深刻啊!下次再也不敢了5555。