- 认识面向对象
- 从最初的面向过程编程到全面的学习面向对象已经很长时间了,对软件开发也有了整体/全面地认识,记得第一个做的项目是机房上网管理系统,主要是对在学校机房上网的学生进行管理按时间收费,经常去网吧的人都知道网吧怎么计费的,一般是一个小时多少钱,还会把会员用户和临时用户区别出来,临时用户的收费要比会员便宜一些,这个软件就是类似于网吧的收费系统。
- 在面向对象中,将一切东西看作对象类来处理,把某一类对象封装成类对象与现实世界的实物相对应,用对象来展示一个现实的世界。
- C/S结构
- 做了很长时间的BS之后,再来看CS部分总是按着BS的方式来开发和思考,在CS中通常没有后台只是开发一个前台界面,把需要的模块和功能都分类后显示在界面上,可能是因为CS多半是不联网的应用,只是企业内部或者在专门应用在某个方面,应用领域狭隘以及需求比较固定,完成之后需要的改动较小,然而,CS/BS并没有明显的界限,一个CS系统也可以当作BS来开发。
- 从目前很多在线程序的增多(比如格式转化/PS工具等)逐渐增多,从这一趋势可以看出BS系统是主要趋势,以后开发的项目也都是BS系统。
- 系统结构设计
- 权限管理
- 几乎每个系统中都包括权限部分的功能,在OA中用到的最多而且也很复杂,不同的公司具有不同的组织机构和人员组织结构,它们通常是一个树形或者网状结构,然而,在这个系统中一般用户/操作员/管理员之间并没有明确的谁管谁的说明,他们是人员对应功能,不同的角色对应不同的功能,角色之间没有什么管理关系,这样就不易设计成树形结构。
- 将每个功能独立出来,并写在配置文件里面做成可以配置的,当需要添加新功能了也可以手动添加,每个角色具有的功能之间也就不会有很明显的区分。
- 业务逻辑
- 逻辑部分重要的是一个结帐,怎么根据不同类型的用户(临时用户/会员用户/VIP用户等)来结帐。
- 报表
- 报表是每个公司财务/物料等每个部门都常常用到的数据,报表将最终的结果显示出来给客户等人员预览,做的时候用的是reporter一个免费报表工具,仅仅是将计算结果显示了出来,在java中也提供了很多报表工具,如jasper等,还有很多框架也集成了报表插件如hibernate。
- 恍然想想很多系统都是由这三部分组成,这个系统虽然挺小的但是包括了一个大系统具有的功能,很适合拿来练手。
- 权限管理
- 结束语
- 做一个系统没有最好只有更好,当你做完一个系统随着时间和认识提高你会发现很多不足,有时进行重新开发也是有必要的,不断地思考/重构才会让系统更完美,少一些瑕丝。